Excel 统计选择唯一值的次数

Excel 统计选择唯一值的次数

我有一个包含三列的长文件,第一列包含机构名称,第二列包含每个机构内的客户名称,第三列包含“是/否”字段,用于指示是否选择了特定机构内的特定客户

Inst.   Cust.   Selected
INST_1  CUST_1  Yes
INST_1  CUST_2  Yes
INST_1  CUST_3  
INST_1  CUST_4  
INST_2  CUST_5  Yes
INST_2  CUST_6  
INST_2  CUST_7  
INST_3  CUST_8  Yes
INST_3  CUST_9  
INST_3  CUST_10 
INST_3  CUST_11 
INST_3  CUST_12 Yes
INST_3  CUST_13 
INST_3  CUST_14 
INST_4  CUST_15 
INST_4  CUST_16 Yes
INST_4  CUST_17 Yes
INST_4  CUST_18 Yes

我感兴趣的是计算选择一个、两个或两个以上客户的机构数量。

我熟悉使用数据透视表的解决方案,但就我而言,通过公式生成结果更为实用。在示例中,所需的输出为:

选定一位客户的机构数量:1

拥有两名选定客户的机构数量:2

拥有三名或以上选定客户的机构数量:1

答案1

我会使用 VBA 插件中的宏编码函数。我不会给出确切的代码,因为它经常会更改。但这里有一些基本的伪编码。

  1. 首先从要查看的单元格“获取”数据。一旦你搞清楚了 Excel 如何获取数据,就搞清楚如何循环这个操作。
  2. 设置分析公式然后“放入”数据单元
  3. 前进到下一个单元格或将其增加到下一个单元格。注意:您可以使用 READ 和 WRITE 代替 GET 和 PUT。我相信两者之间的区别在于一个读取二进制值,另一个读取字符串值。大多数程序员使用字符串值来存储值,并将其处理为浮点数或整数。

答案2

我花了更多时间研究这个问题,并找到了一个解决方案,利用了帖子中说明的方法根据条件计算唯一数值

为了实现该公式,我添加了一个附加列,将 Inst. 列转换为仅包含数字 ID 的列。这是使用该FREQUENCY函数所必需的。

Inst.   Inst_ID Cust.   Selected
INST_1     1    CUST_1  Yes
INST_1     1    CUST_2  Yes
INST_1     1    CUST_3  
INST_1     1    CUST_4  
INST_2     2    CUST_5  Yes
INST_2     2    CUST_6  
INST_2     2    CUST_7  
INST_3     3    CUST_8  Yes
INST_3     3    CUST_9  
INST_3     3    CUST_10 
INST_3     3    CUST_11 
INST_3     3    CUST_12 Yes
INST_3     3    CUST_13 
INST_3     3    CUST_14 
INST_4     4    CUST_15 
INST_4     4    CUST_16 Yes
INST_4     4    CUST_17 Yes
INST_4     4    CUST_18 Yes

仅被选中一次的院校数量可计算为SUM(1*(FREQUENCY(IF(Selected="Yes",Inst_ID),Inst_ID)=1))。被选中两次及以上的院校数量可按类似方式计算。

函数中的 bin 数组FREQUENCY也可以指向唯一的 Inst_ID 列表。

相关内容