excel 查找最大值并返回相邻单元格,直到另一个单元格中的值发生更改

gmxoilav  于 2022-11-26  发布在  其他
关注(0)|答案(2)|浏览(269)

我是一个excel新手,所以我希望我能足够好地解释我的问题:
exceltable
字段A是候选人参加竞选的选区,字段B是候选人姓名,字段C是候选人获得的选票百分比,我需要字段D来计算选区赢家的姓名。
我试图将地区赢家的名字计算到D区,直到地区发生变化。我知道可能有一个更好的方法来做我正在尝试做的事情,但这里是我迄今为止拼凑起来的公式:=IF(A2="",A1,A2(索引(B2:B3,0,匹配(最大值(C2:C3),C2:C3,0))))
任何帮助都是感激不尽的!

x6492ojm

x6492ojm1#

你可以试试-

=CHOOSE({1,2},UNIQUE(A2:A19),BYROW(UNIQUE(A2:A19),LAMBDA(x,INDEX(SORT(FILTER(B2:C19,A2:A19=x),2,-1),1,1))))

带有页眉-

=LET(a,UNIQUE(A2:A19),b,BYROW(a,LAMBDA(x,INDEX(SORT(FILTER(B2:C19,A2:A19=x),2,-1),1,1))),VSTACK({"Dist","Candidate"},HSTACK(a,b)))

bweufnob

bweufnob2#

您可以在单元格E2中尝试以下操作:

=LET(rng, A2:C19, dists, INDEX(rng,,1), names, INDEX(rng,,2), 
  pcts, INDEX(rng,,3),
  distsUx, UNIQUE(dists),
  result, MAP(distsUx, LAMBDA(dist,
    TEXTJOIN(",",,FILTER(names, (dists=dist) 
    * (pcts = MAX(FILTER(pcts, dists=dist)))))
  )),
  HSTACK(distsUx, result)
)

输出如下:

:如果同一地区内有多个名称具有相同的max pct,则返回以逗号分隔的名称。

相关问题