根据多行中多个单元格的匹配条件以及Google表格中其他表格的排名返回值

时间:2019-01-01 14:48:27

标签: sorting filter google-sheets ranking

如何根据匹配条件(ColA-日期和ColB-客户)和Google表格中的排序顺序(MasterItemRanking标签ColA)将不同的值(Y或N)返回到不同的单元格(ColD-主菜单)?

https://docs.google.com/spreadsheets/d/1Yar31N__3jkHH3y6qn_XZ0cvkEg-gG0ALeT0FF8qEQE/edit?usp=sharing

在工作表“ MasterItemRanking” ColA上,ColA中的值越低,排名越高。 #1的排名优于#2或#5等的排名(这意味着ColB项目应在其他任何项之前返回“ Y”)。

我已经在ColD中尝试了各种表达式,但到目前为止却失败了。有什么想法吗?谢谢。

1 个答案:

答案 0 :(得分:0)

这是一个复杂的答案,但似乎该公式有效。 = arrayformula(if(A2 =“” ,, iferror(if(C2 = vlookup(MIN(if(countA(vlookup(filter(C $ 2:C $ 10,A $ 2:A $ 10 = A2,B $ 2:B $ 10 = B2 ),{MasterItemRanking!B:B,MasterItemRanking!A:A},2,false))= 1,“ N”,vlookup(filter(C $ 2:C $ 10,A $ 2:A $ 10 = A2,B $ 2:B $ 10 = B2),{MasterItemRanking!B:B,MasterItemRanking!A:A},2,false)))),MasterItemRanking!A:B,2,false),“ Y”,“ N”),“ N”) ))

我把它放到您的工作表中,这似乎很有意义,尽管如果有任何缺失,请告诉我。基本上,它仅针对该行的数据过滤表,以查看是否有多个具有相同日期和个人的项目。然后,它执行vlookup以返回每个项目的排名。然后,它获取最小值的排名,并对照该行中的项目检查该值。例如,如果返回排名第一,则检查该行项目是否也排名第一。它为每一行执行此操作。这是一个非常令人费解的答案,很难解释这个问题。

相关问题