Excel - Return 最常出现的值基于基于多个条件
Excel - Return most occurred value based on based on multiple condition
我有三个主要栏目 Name
、Size
和 Diameter
。我想要的是针对 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 值。
我有三个主要栏目 Name
、Size
和 Diameter
。我想要的是针对 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 值。