用一个标准查找多个结果

我试图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)}