手机版

三个Excel公式我都看不懂!"

时间:2021-09-19 来源:互联网 编辑:宝哥软件园 浏览:

最近收到一个学生的问题咨询。问题是如何根据单据号和物料长码返回相应的含税金额。下表:

其实学生的问题是如何实现多条件查询。

这里有一个例子可以和大家分享几种常用的多条件查询方法。下表是某电商公司的客户投诉表。现在,您需要按照表A中的客户名称和地区查询表B中的产品型号,然后返回到表A中的E列.

1.LOOKUP函数。

函数公式:=lookup (1,0/(a3=$ I $ 3: $ I $ 19)*(B3=$ J $ 3: $ J $ 19)、$ k $3: $ k $19)。

公式分析:首先将表B第一列的数据与单元格A3进行对比,将表B第J列的信息与单元格B3进行对比。在excel中,如果两个单元格比较相等,则返回TRUE,在四个运算中,用1表示。如果它们不相等,则返回FALSE,用0表示。然后(a3=$ I $333,360 $ I $19) * (B3=$ j $333,360 $ j $19),这部分运算的结果只有0或1,因为只有0*1、1*1和1*0。将0除以0和1。因为分母不能是0,所以0/0返回错误,0/1返回0的结果。查找函数在搜索时会忽略错误,因此只有数据运算结果为1的公式才符合条件。

那么我们就可以很好的理解0/(A3=$ I $333,360 $ I $19) * (B3=$ J $333,360 $ J $19)的目的是将正确的结果表示为0,其他的都成为错误值,所以我们可以利用函数搜索的特性来完成搜索。总结:这个函数使用二分法原理进行搜索,所以如果数据量大,操作会比较慢。

2.VLOOKUP功能。

使用G2单元格在a列搜索,如果找到对应的单元格,则从a列向右返回第二列的数据。简而言之:=VLOOKUP(查找什么,在哪里查找,从条件所在的列查找后返回哪一列数据,精确还是模糊搜索)。vlookup如何完成多条件查询?以客户投诉表为例,按名称和地区匹配产品型号,返回e。

实际上,我们可以在表A和表B中插入辅助列,将名称和区域合并到一个单元格中,然后使用vlookup。

但是,插入两个辅助列后,整个表中的列数会发生变化。在工作中,单元格中往往有很多公式。如果列数发生变化,表中函数公式的计算结果会直接出错。因此,添加辅助列的方式虽然简单,但并不是最好的方式。那么没有辅助列如何完成多条件查询呢?首先,合并搜索值非常简单。当进入函数vlookup时,第一个参数可以写成A3B3,即单元格A3和B3的内容可以合并为搜索值。现在问题发现领域需要合并。如果两列内容合并在一起,可以输入公式=h2:h19i23360i 19,按ctrl shift键输入结果,然后下拉公式,使两个条件合二为一。

然后,通过IF函数提取对应的j列数据,输入公式=if ({0,1},h2:h19i23360i 19,j2:j19),按ctrl shift键输入结果,再下拉公式,其中{0,1}代表逻辑值{FALSE,TRUE}。下面我们来详细分析一下:首先,在excel中,0表示错误,1和所有其他数值都是正确的。以下示例:

通过上面的例子,我看到如果判断为0,就会返回错误,如果判断为1,就会返回正确。现在我们可以将公式拆分为以下两种情况:if (0,h2:h19i23360i 19,j23360j19),其中0表示FALSE,所以只能返回j列的数据。如果(1,h2:h19i23360i 19,j2:j19),1表示真,那么只能返回h列和I列的合并结果。那么如何理解if ({0,1},h2:h19i23360i 19,j2:j19)?因为是数组公式,所以可以理解为同时返回两组数据。0对应J2:J19,1对应H2:H19I2:I19,这样就构造了两列数据。

最后用vlookup函数完成嵌套,=vlookup (A3B3,if ({1,0},H3:H20I3:I20,J3:J20),2,0)。这里我们可以理解为,a3b3是用来在h3:h20i 3360i 20中找到对应的j:i。在公式中,if ({1,0},h3:h20i :i 20,j:j20)返回到h3:h20i :i 20,然后返回到j:j20。

注意:很多人不理解为什么嵌套时IF的第一个参数变成{1,0},因为这里需要返回h和I的合并结果作为搜索区域。PS:输入完所有数组公式后,要用数组三键ctrl shift ener返回运算结果!这样,我们就可以通过vlookup函数完成多条件查询,而不需要辅助列。

3.偏移匹配功能。

给大家分享一个通过抵销函数完成多条件查询的例子。

函数公式:{=offset ($ j $2,match (a3b3,$ h $: $ h $19 $ I $: $ I $19,0))}公式分析:完成多条件查询的第一步是确定表A中的合并名称区域与表B中的名称区域对应的顺序.这里,我们通过MATCH来实现,我们用一个简单的例子来说明。

=MATCH(A2,E:E,0)表示使用A2单元格在e列进行搜索,0表示精确搜索,1小于,-1大于,这通常是精确搜索。Match (A3B3,$ H $3: $ H $19 $ I $: $ I $19,0)表示A3和B3合并为搜索内容,H列和I列合并为搜索区域,0表示精确搜索。

确定序列后,我们使用OFFSET函数返回相应的值,序列数据作为行的偏移量。OFFSET的功能是将指定的单元格引用作为参照系,通过给定的偏移量得到一个新的引用。返回的引用可以是单元格或区域。您可以指定要返回的行数或列数。参考是作为偏移参考系的参考区域。引用必须是对单元格或连接的单元格区域的引用;否则,函数OFFSET返回错误值#VALUE!

=OFFSET(J2,1,0,1,1)表示使用J2单元格作为参考,向下偏移一行,向右偏移0列,返回一行一列的数据区域。=offset ($J$2,MATCH (a3b3,$ h $333,360 $ h $19 $ I $333,360 $ I $19,0)),表示$J$2用作参考单元格,MATCH找到的订单用作要向下偏移的行数。如果省略偏移列数,则表示没有偏移,即第三和第四列。让我们总结一下这三种方法的优缺点。查找功能运行缓慢。VLOOKUP函数使用的是IF({0,1})数组公式,很难理解。偏移函数的公式很简单,可以作为首选方案。

版权声明:三个Excel公式我都看不懂!"是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。