【问题标题】:Excel countifs any random cell from given range has the same valueExcel计算给定范围内的任何随机单元格具有相同的值
【发布时间】:2022-11-23 02:54:32
【问题描述】:

不确定如何提出我的问题,所以我将从一个例子开始。 我有一个看起来像这样的数据集(整个数据集有 ~150000 行)——突出显示了一些值以便于查看:

我想要做的是计算“Johnson, Jim, 10”和“Gordon, Tom, 15”出现在同一个 SUBDATA 集中的次数,其中第一列单元格具有相同的值。

我使用 COUNTIFS 分别计算了各个值在整个数据集中出现的次数:

但我想做的是以某种方式计算给定数据(“Johnson, Jim, 10”和“Gordon, Tom, 15”)的两次迭代出现的次数,如果第一列值相同(该值应该是日期,格式为 YYYYMMDD)。

我不想给公式一个日期,例如20221005 并查看这两个实例是否一起出现,因为我有数百个日期。如果存在 DATE 相同的实例并计算它,我只想以某种方式告诉公式在找到这两个记录中的任何一个时进行检查。

例如如果“Johnson, Jim, 10”和“Gordon, Tom, 15”的相关 A 单元格具有相同的值 (20221010),则计算它。并查看这种情况在整个数据集中发生了多少次。

我想知道是否可以仅使用公式而不使用宏来执行此操作。

PS:对不起,如果我说得不够清楚,我会回答你的每一个问题。

【问题讨论】:

    标签: excel excel-formula


    【解决方案1】:

    这是一个很长的路要走:

    K2中的公式:

    =LET(x,FILTER(A1:A12,BYROW(B1:D12,LAMBDA(a,SUM(--(MMULT(--(a=H1:J2),{1,1,1})=3))))),COUNT(UNIQUE(FILTER(x,MAP(x,LAMBDA(y,SUM(--(x=y))))=2))))
    

    【讨论】:

      【解决方案2】:

      假设每个日期组内没有重复值(如果没有可以调整公式),那么可以在I3中使用如下公式:

      =LET(dates, A1:A12, values, B1:B12&C1:C12&D1:D12, lkUp, F2:F3&G2:G3&H2:H3,
        REDUCE("", UNIQUE(dates), LAMBDA(acc,ux, LET(
          set, FILTER(values, dates=ux), match, IF(COUNT(XMATCH(lkUp, set))=2, 1, 0), 
          IF(acc="", match, acc + match))))
      )
      

      这是输出:

      它所做的是针对每个唯一的dates,它使用连接通过XMATCH 查找索引位置。如果找到两个查找值 (lkUp),则将其计为 1,否则计为 0REDUCE 计算所有匹配项的总和。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-06-06
        • 2013-12-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-04-11
        相关资源
        最近更新 更多