计算包含值的列数

Counting the number columns that contain a value

我有一个 table,其中的列数不断变化,填充的字符串如下所示:

#   A   B   C   D   E   F   G
1  abc xyz abc abc abc xyz xyz
2  xyz xyz abc xyz abc xyz xyz
3  abc abc xyz abc abc xyz xyz
4  abc xyz abc xyz abc xyz xyz

我想知道这些列中有多少列包含值 abc。我对 abc 单元格的数量不感兴趣,只对 abc 列的数量感兴趣。

我正在寻找另一个 sheet 的输出,如下所示:

item to check | # Cols Containing Value
     abc                   5
     xyz                   6

我知道我可以在 GAS 中通过使用一个简单的 for 循环来做到这一点,它是基于最大行数和列数的变量,但我正在寻找使用本机 Google Sheets 函数的解决方案。

这可能吗?

解决方案:

  • 将 presence/absence 个“abc”转换为 1/0
  • 转置生成的矩阵并使用矩阵乘法求和跨列
  • 计算结果数组中大于 0 的单元格数

示例公式:

=ARRAYFORMULA(COUNTIF(MMULT(TRANSPOSE(IF(A1:G4="abc",1,0)),ROW(A1:A4)^0),">0"))