繁体   English   中英

Excel Pivot-给定范围内的不同值计数

[英]Excel Pivot - Count of distinct values in a given range

我有以下数据集,我需要从这些数据集中计算不同值的数量。 我试过一些函数,如FREQUENCY,COUNTIFS等,但我做不到。

输入

输入数据

在此处输入图片说明

产量

预期产量

在此处输入图片说明

我认为这是一个尴尬的情况,因为数据值不止一列,而且它们是文本而不是数字。

我想出的唯一方法是重复获取不同值的标准方法,然后使用COUNTIF获取计数。

所以从F2开始,我有:-

=IFERROR(INDEX($B$2:$B$4,MATCH(0,COUNTIFS($F$1:$F1,$B$2:$B$4),0)),
IFERROR(INDEX($C$2:$C$4,MATCH(0,COUNTIFS($F$1:$F1,$C$2:$C$4),0)),
IFERROR(INDEX($D$2:$D$4,MATCH(0,COUNTIFS($F$1:$F1,$D$2:$D$4),0)),"")))

(这是一个数组公式,必须使用Ctrl Shift Enter来输入

从G2开始:

=COUNTIF($B$2:$D$4,F2)

在此处输入图片说明

为了避免必须指定确切的范围(例如$ B2:$ B4),可以在F2中使用以下内容,并将其调整为可能使用的最大行数:

=IFERROR(INDEX($B$2:$B$10,MATCH(0,IF(ISTEXT($B$2:$B$10),COUNTIFS($F$1:$F1,$B$2:$B$10),1),0)),
IFERROR(INDEX($C$2:$C$10,MATCH(0,IF(ISTEXT($C$2:$C$10),COUNTIFS($F$1:$F1,$C$2:$C$10),1),0)),
IFERROR(INDEX($D$2:$D$10,MATCH(0,IF(ISTEXT($D$2:$D$10),COUNTIFS($F$1:$F1,$D$2:$D$10),1),0)),"")))

在G2中:

=IF(F2="","",COUNTIF($B$2:$D$10,F2))

但是当然它仅限于三列,我认为可能超出此范围的任何内容都可能指向VBA解决方案。

还有一个也是不同的值通式从2D阵列这里但输出包括当空白行和列被包括在内,以便将需要一些修改一个零。

因此,这是上述参考文献中的修改公式,其中错误处理从I2开始:

=IFERROR(INDEX(tbl_text, MIN(IF( IF(ISTEXT(tbl_text),COUNTIF($I$1:$I1, tbl_text),1)=0, ROW(tbl_text)-MIN(ROW(tbl_text))+1)),
 MATCH(0, COUNTIF($I$1:$I1, INDEX(tbl_text, MIN(IF(IF(ISTEXT(tbl_text),COUNTIF($I$1:$I1, tbl_text),1)=0, ROW(tbl_text)-MIN(ROW(tbl_text))+1)), , 1)), 0), 1),"")

从J2开始计数:-

=IF(J2="","",COUNTIF(tbl_text,J2))

其中tbl_text是定义的命名范围(在测试时)为$ B $ 2:$ E $ 10

我认为这应该满足您的通用性要求,因为您可以将tbl_text设置为包括可能使用的最大行数和列数。

需要稍作修改,以忽略表中的空白。

=SUM(IF((B2:D4=C10),1,0))

要在使用公式后获得结果,请按ctrl + shift + enter

http://i.stack.imgur.com/P1COO.jpg

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM