首页 > Office专区 > Excel教程 >

Excel如何使用内插法查表(纵2横1)

来源:互联网 2023-02-20 18:24:26 498

修法布施得聪明智慧,多分享让生活更美好。在工作中经常要查表处理数据,特别是两数中内插法查表需要计算十分麻烦,使用Excel处理查表数据方便了,但内部函数公式还不能快速处理,需要自定义函数公式处理。下面通过一实例分享这个内插法查表的自定义函数处理方法。6vd办公区 - 实用经验教程分享!

工具/原料

  • Microsoft Office Excel 2007
  • Excel VBA

实例问题

  • 1

    如下图材料、厚度、温度下的许用应力表,纵向一是确认材料,二是确认厚度,横向某温度下的应力值,如下使用TR函数求值错误。6vd办公区 - 实用经验教程分享!

    Excel如何使用内插法查表(纵2横1)6vd办公区 - 实用经验教程分享!

  • 1本页面未经授权抓取自百度经验
  • 处理方法/步骤

  • 1

    首先打开上例文件,如下图。6vd办公区 - 实用经验教程分享!

    Excel如何使用内插法查表(纵2横1)6vd办公区 - 实用经验教程分享!

  • 2

    然后按下快捷键ALT F11打开VBA(宏)编辑界面,然后点菜单栏【插入】下拉中列表中点【模块(M)】如图。6vd办公区 - 实用经验教程分享!

    Excel如何使用内插法查表(纵2横1)6vd办公区 - 实用经验教程分享!

  • 3

    插入了一个模块1,在代码框中复制如下代码:6vd办公区 - 实用经验教程分享!

    Function Y2XCRCB(ByVal y1 As Range, ByVal y2 As Range, ByVal x As Range, ByVal cb As Range)6vd办公区 - 实用经验教程分享!

    '2020-1-9 22:48:426vd办公区 - 实用经验教程分享!

    Dim i As Long, r1 As Long, c1 As Long, k As Long, n As Long, z1, z2, x1, x26vd办公区 - 实用经验教程分享!

    r1 = cb.Rows.Count6vd办公区 - 实用经验教程分享!

    c1 = cb.Columns.Count6vd办公区 - 实用经验教程分享!

    k = 06vd办公区 - 实用经验教程分享!

    For i = 1 To r16vd办公区 - 实用经验教程分享!

    If y1.Value = cb.Cells(i, 1).Value And y2.Value = cb.Cells(i, 2).Value Then6vd办公区 - 实用经验教程分享!

    k = i6vd办公区 - 实用经验教程分享!

    Exit For6vd办公区 - 实用经验教程分享!

    End If6vd办公区 - 实用经验教程分享!

    Next i6vd办公区 - 实用经验教程分享!

    n = 06vd办公区 - 实用经验教程分享!

    If k = 0 Then6vd办公区 - 实用经验教程分享!

    Y2XCRCB = "材料、厚度/mm不符合表!"6vd办公区 - 实用经验教程分享!

    Else6vd办公区 - 实用经验教程分享!

    If x.Value cb.Cells(1, 3).Value Or x.Value > cb.Cells(1, c1).Value Then6vd办公区 - 实用经验教程分享!

    Y2XCRCB = "温度不符合表!"6vd办公区 - 实用经验教程分享!

    Else6vd办公区 - 实用经验教程分享!

    For i = 3 To c16vd办公区 - 实用经验教程分享!

    If x.Value = cb.Cells(1, i).Value Then6vd办公区 - 实用经验教程分享!

    n = i6vd办公区 - 实用经验教程分享!

    Exit For6vd办公区 - 实用经验教程分享!

    End If6vd办公区 - 实用经验教程分享!

    Next i6vd办公区 - 实用经验教程分享!

    If n = 0 Then6vd办公区 - 实用经验教程分享!

    For i = 3 To c1 - 16vd办公区 - 实用经验教程分享!

    If x.Value > cb.Cells(1, i).Value And x.Value cb.Cells(1, i 1).Value Then6vd办公区 - 实用经验教程分享!

    n = i6vd办公区 - 实用经验教程分享!

    Exit For6vd办公区 - 实用经验教程分享!

    End If6vd办公区 - 实用经验教程分享!

    Next i6vd办公区 - 实用经验教程分享!

    x1 = cb.Cells(1, n).Value6vd办公区 - 实用经验教程分享!

    x2 = cb.Cells(1, n 1).Value6vd办公区 - 实用经验教程分享!

    z1 = cb.Cells(k, n).Value6vd办公区 - 实用经验教程分享!

    z2 = cb.Cells(k, n 1).Value6vd办公区 - 实用经验教程分享!

    If z1 = 0 Or z2 = 0 Then6vd办公区 - 实用经验教程分享!

    Y2XCRCB = "无值"6vd办公区 - 实用经验教程分享!

    Else6vd办公区 - 实用经验教程分享!

    Y2XCRCB = (x.Value - x1) * (z2 - z1) / (x2 - x1) z16vd办公区 - 实用经验教程分享!

    End If6vd办公区 - 实用经验教程分享!

    Else6vd办公区 - 实用经验教程分享!

    If cb.Cells(k, n).Value = "" Then6vd办公区 - 实用经验教程分享!

    Y2XCRCB = "无值"6vd办公区 - 实用经验教程分享!

    Else6vd办公区 - 实用经验教程分享!

    Y2XCRCB = cb.Cells(k, n).Value6vd办公区 - 实用经验教程分享!

    End If6vd办公区 - 实用经验教程分享!

    End If6vd办公区 - 实用经验教程分享!

    End If6vd办公区 - 实用经验教程分享!

    End If6vd办公区 - 实用经验教程分享!

    End Function6vd办公区 - 实用经验教程分享!

    Excel如何使用内插法查表(纵2横1)6vd办公区 - 实用经验教程分享!

  • 4

    最后回到工作表窗口,写公式计算了。公式语法:Y2XCRCB(数据区域第一列值,第二列值,第一行的3列起值,数据区域)6vd办公区 - 实用经验教程分享!

    D14填写公式:=Y2XCRCB(A14,B14,C14,A3:M11)6vd办公区 - 实用经验教程分享!

    计算结果是:110.644386vd办公区 - 实用经验教程分享!

    Excel如何使用内插法查表(纵2横1)6vd办公区 - 实用经验教程分享!

  • 5

    动态操作过程如下:6vd办公区 - 实用经验教程分享!

    Excel如何使用内插法查表(纵2横1)6vd办公区 - 实用经验教程分享!

  • 其他应用

  • 1

    数据区域的第1列、第2列和第一行第3列起查对应值。6vd办公区 - 实用经验教程分享!

    Excel如何使用内插法查表(纵2横1)6vd办公区 - 实用经验教程分享!

  • 2

    如果觉得这篇经验帮到了您,请点击下方的 “投票点赞" 或者“收藏”支持我!还有疑问的话可以点击下方的 “我有疑问”,谢谢啦!6vd办公区 - 实用经验教程分享!

  • 以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!6vd办公区 - 实用经验教程分享!


    标签: VBAexcel使用

    办公区 Copyright © 2016-2023 www.bgqu.net. Some Rights Reserved. 备案号:湘ICP备2020019561号统计代码