答案 0 :(得分:7)
假设您的上述数据位于A2:B13中,则可以:
=MAX(IF(A2:A13="A",1,0)*(B2:B13))
=MAX(IF(A2:A13="B",1,0)*(B2:B13))
=MAX(IF(A2:A13="C",1,0)*(B2:B13))
当您将公式输入单元格时,必须按ctrl + shft + Enter。这将查找包含A
,B
或C
的所有行,如果字母与您的公式匹配,则会将1
与其旁边的值相乘,并{{1}如果它不匹配。然后你取值0
。
<<<编辑>>>
正如@GSerg所建议的那样,如果在每个单元格中输入ctrl + shft + Enter时,也可以使用这些公式:
MAX()
更优雅的方式!
答案 1 :(得分:1)
除了数据透视表之外的任何东西(正如@andy holaday所暗示的那样)似乎是纯粹的受虐狂(除非是非常好的,但可能是非常特殊的原因):
请注意,为了说明,我将B
的OP数据量加倍,而C
的数据量再次加倍。
答案 2 :(得分:0)
这不用ctrl + shift + enter,但你的表应按TYPE列排序。
我们假设您的桌子放在B3:C15,然后放在A4放置
=IF(B4=B3;A3;A3+1)
在E4 - “1”中,在E5 - “2”中,在E6 - “3”中,在F4中放置:
=MAX(INDIRECT("C" & MATCH(E4;$A$1:$A$17;0) & ":C" & MATCH(E4;$A$1:$A$17;1) ))
并将其复制到F5和F6
G4中的:
=MIN(INDIRECT("C" & MATCH(E4;$A$1:$A$17;0) & ":C" & MATCH(E4;$A$1:$A$17;1) ))
并将其复制到G5和G6
MATCH函数错误地处理字符串,所以我必须编号TYPE,你可以使用VLOOKUP将E列中的数字改为字符串
在我的表中,我使用此解决方案以这种方式查找具有最大值的字符串:
答案 3 :(得分:0)
一种相当狡猾但简单的方法是做到这一点
1.创建一个连接Type和Qty的新列,并将其命名为“TypeQty”或任何您想要的内容
2.排序(升序)新表,即Type,Qty和TypeQty,但在TypeQty列上排序。
3.应用一个公式,检查上面一行中的类型是否与当前行相同。如果没有,则标记该行,因为它是当前类型的最后一行。
您最终只会为每种类型的“最大行”添加“标记”。 见截图
答案 4 :(得分:-2)
我建议使用=large(if(...=...;...);k)
来解决这个问题。