用一个标准查找多个结果
我试图find一个function,可以帮助我与这种情况下!
ID Number Wage 1 Wage 2 Wage 3 Wage 4 Wage 5 100 200
我正在寻找可以帮助我的function,以便填补工资。 工资数据将来自另一张表格,例如这样的例子
ID Number Wage 100 500 100 600 100 700 200 600 200 700 200 800 200 900
程序是我会插入身份证号码,所以工资的价值将自动显示。
情况是:
身份证号码100,将得到:
- 工资1为500,
- 工资2为600
- 700的工资3。
对于身份证号码200,将得到:
- 工资1为600,
- 700工资2,
- 800工资3
- 900的工资4。
工资的数量可以变化到5。
你可以使用这个公式:
=IFERROR(INDEX($B$2:$B$8,SMALL(IF($A$2:$A$8=$D2,ROW($B$2:$B$8)-1),COLUMNS($D$2:D$2))),"")
以数组公式的formsinput,即按Ctrl + Shift + Enter 。
这有点复杂,但它:
- 首先检查与ID号码匹配的行。
- 从那些匹配的,它返回他们的行号。
-
SMALL
根据您input公式后的列数取第一,第二等。 -
INDEX
取这些行号并返回相应的值。 -
IFERROR
处理没有适当值的情况。
这是一个GoogleSpreadsheet样本
除了它不同地处理数组公式。 你必须把arrays公式的ArrayFormula
工作(或者它会自动插入它,如果你按Ctrl + Shift + Enter ),否则,它是一样的。
您只需要根据需要更改范围。
如果工资1下面的单元格是I7,那就是放置第一个公式的位置,那么可以使用下面的数组公式。
{=LARGE(IF($D$8:$D$11=$H8,$E$8:$E$11,""),1)}
这是一个简单的if函数,在$ H8(在这种情况下是100),$ D $ 8:$ D $ 11。 然后它返回所有的工资结果在一个数组(你没有看到)。
大元素和1,最后是说回归最大的数字。 在工资2的公式中,改变公式,所以1是2(第二大),然后下一个单元格是3等等。
你必须记住,当你粘贴这个公式时,你不能进入,你必须按回车,所以它成为一个数组函数。
所以粘贴
=LARGE(IF($D$8:$D$11=$H8,$E$8:$E$11,""),1)
然后按Ctrl + Shift + Enter ,它会变成
{=LARGE(IF($D$8:$D$11=$H8,$E$8:$E$11,""),1)}