计算包含值的列数
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"))
我有一个 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"))