Excel - Return 最常出现的值基于基于多个条件

Excel - Return most occurred value based on based on multiple condition

我有三个主要栏目 NameSizeDiameter。我想要的是针对 Size 中的特定值过滤名称和 return Diameter 中出现次数最多的值。例如,我有一个 table 如下所示:

| Name | Size     | Diameter |
------------------------------
|  A   |    30    | 2232.23  |
|  A   |    30    | 2232.23  |
|  A   |    30    | 5382.98  |
|  A   |    29    | 1123.44  |
|  A   |    29    | 9323.42  |
|  A   |    29    | 1123.44  |
|  B   |    31    | 1232.11  |
|  B   |    31    | 1232.11  |
|  B   |    10    | 1111.00  |
------------------------------

对于 Size 为 30 的 Diameter 我应该从 Diameter 收到的值是 2232.23 而对于 B 我应该收到Diameter 1232.11 的值 Size 31

这只是其中的一个示例。实际数据超过9000+行。 谢谢。

尝试在单元格 D2 中粘贴并拖动到最后一行:

=COUNTIFS(A:A,A2,B:B,B2,C:C,C2)

它returns每行出现的次数。

使用这个公式。公式首先创建通过 2 个设置条件的值数组。然后 IF 公式从数组中删除 0 个值。最后,MODE 公式计算剩余值和 return 出现次数最多的值。

=SUMPRODUCT(IFERROR(MODE(IF(--($A:$A000=G2)*($B:$B000=H2)*$C:$C000<>0,--($A:$A000=G2)*($B:$B000=H2)*$C:$C000,"")),MAX(--($A:$A000=G2)*($B:$B000=H2)*$C:$C000)))

使用 CTRL+Shift+Enter 输入它,因为它是一个数组公式。

如果您想在 ColumnD 中显示最多出现次数,请在单元格 D3 中使用此公式并将其拖到底部。

=SUMPRODUCT(IFERROR(MODE(IF(--($A:$A000=A3)*($B:$B000=B3)*$C:$C000<>0,--($A:$A000=A3)*($B:$B000=B3)*$C:$C000,"")),MAX(--($A:$A000=A3)*($B:$B000=B3)*$C:$C000)))

考虑到您的数据在 A、B 和 C 列中,您可以将此数组公式放在单元格 D1 中

=INDEX(C:C,MODE(IF(A:A=A1,MATCH(B:B,B:B,{0,0}))))

别忘了按 Ctrl+Shift+Enter。

这里是一个数组公式(点击Ctrl + Shift + Enter一起)你可以试试:

=INDEX($C:$C,MATCH(MODE(IF(($A:$A=E2)*($B:$B=F2)*($C:$C),($A:$A=E2)*($B:$B=F2)*($C:$C),"")),$C:$C,0),1)

基本上它是使用 MODE 函数找到最常出现的,然后使用 INDEX/MATCH 到 return 值。