我有三个主要栏目Name
,Size
和Diameter
。我想要的是过滤名称并在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+行。 感谢。
答案 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}))))
不要忘记按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输入,因为它是一个数组公式。
如果要在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)))
答案 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
返回值。