Excel - 基于多个条件返回大多数发生的值

时间:2017-10-10 08:58:06

标签: excel excel-formula ms-office

我有三个主要栏目NameSizeDiameter。我想要的是过滤名称并在Diameter中为Size中的特定值返回最常出现的值。例如,我有一个如下表:

| 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  |
------------------------------

Diameter A Size 2232.23的{​​{1}} B Diameter 1232.11 Size 31我应该收到的值int i; FILE *pFile; pFile= fopen("cat/home/sysadmin/deneme.txt","r"); if(!pFile) return; 1}} /cat/home/sysadmin/deneme.txt cat的值s = 'qwe rty uio'

这只是它的一个例子。实际数据超过9000+行。 感谢。

4 个答案:

答案 0 :(得分:1)

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

  

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

enter image description here

不要忘记按Ctrl + Shift + Enter。

答案 1 :(得分:0)

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

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

返回每行的出现次数。

答案 2 :(得分:0)

使用此公式。公式首先创建通过2个设置条件的值数组。那么IF公式从数组中删除0个值。最后,MODE公式计算剩余值并返回最多出现的值。

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

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

enter image description here

如果要在ColumnD中显示大多数事件,请在单元格D3中使用此公式并将其拖到底部。

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

enter image description here

答案 3 :(得分:0)

这是一个数组公式(单击 Ctrl + Shift + 输入)您可以尝试:

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

基本上它使用MODE函数来查找最频繁的出现,然后使用INDEX/MATCH返回值。