假设我在表格中有以下内容:
A | B | desired_output
----------------------------
1 | 10 | 1 | 0
2 | 20 | 7 | 0
3 | 30 | 3 | 0
4 | 20 | 2 | 0
5 | 30 | 5 | 1
我想为desired_output
列中的每个单元格查找一个公式,该公式查看B1:B5的最大值,但仅适用于A = max(A1:A5)的行
如果不清楚,我将尝试换种说法:
for all the rows in A1:A5 that are equal to max(A1:A5) // so that's rows 3 and 5
find the one which has the max value on B // so between B3 and B5, that's B5
output 1 for this one, 0 for the other
我想说的是,如果存在这样的功能,那么某个地方就会有where
,像= if(B=(max(B1:B5) where A = max(A1:A5)), 1, 0)
之类的东西,但是我找不到怎么做...
我可以在两列中完成一个技巧:
A | B | C | D
----------------------------
1 | 10 | 1 | | 0
2 | 20 | 7 | | 0
3 | 30 | 3 | 3 | 0
4 | 20 | 2 | | 0
5 | 30 | 5 | 5 | 1
使用Cn = if(An=max(A$1:A$5),Bn,"")
和Dn = if(Cn = max(C$1:C$5), 1, 0)
但是我仍然找不到一列的方法
答案 0 :(得分:2)
对于没有MAXIFS的系统,请将其放入C1并填写。
=--(B1=MAX(INDEX(B$1:B$5-(A$1:A$5<>MAX(A$1:A$5))*1E+99, , )))
答案 1 :(得分:2)
=ARRAYFORMULA(IF(LEN(A1:A), IF(IFERROR(VLOOKUP(CONCAT(A1:A&"×", B1:B),
JOIN("×", QUERY(A1:B, "order by A desc, B desc limit 1")), 1, 0), )<>"", 1, 0), ))
或更短:
=ARRAYFORMULA(IF(A:A<>"",N(A:A&"×"&B:B=JOIN("×",SORTN(A:B,1,,1,0,2,0))),))
=ARRAYFORMULA(IF(A:A<>"",N(A:A&B:B=JOIN(,SORTN(A:B,1,,1,0,2,0))),))
答案 2 :(得分:1)