【问题标题】:Spreadsheets Reduce JS Like Function with 2d range?电子表格减少了二维范围内的 JS 类函数?
【发布时间】:2020-07-12 09:52:26
【问题描述】:

我有这个表格布局:

我想在单元格 A2 上放置一个函数并获得这个:

目标是在 A 列中获取 B7 在每行中出现的次数。我的目标是能够更改类型(B7)并重新计算。

我知道如果我在每个 A2:A6 单元格中放置一个函数,这很容易,但 我需要能够在 A2 上使用单个函数计算数组结果(我的计算比我正在简化它以使其尽可能简单)。

我尝试在 A2 中使用以下函数:

=arrayformula(countifs(filter(C2:G6;B2:B6=B2);B$7))

使用这个公式,我尝试过滤每一行并计算每一行中出现的次数,但 countifs 在 2d 范围内工作并返回单个元素作为结果(仅第一行的所有出现)

我也知道我可以使用自定义 JS 函数计算我的输出,但我想知道是否有人有使用本机电子表格函数的解决方案。

【问题讨论】:

    标签: arrays google-sheets google-sheets-formula array-formulas counting


    【解决方案1】:

    尝试:

    =ARRAYFORMULA(IF(LEN(B2:B6), 
     MMULT(IFERROR(C2:G6=B7, 0)*1, TRANSPOSE(COLUMN(C2:G2)^0)), ))
    

    【讨论】:

    • 非常聪明!我不知道 MMULT 功能。对 cloumn^0 的转置技巧也 +1,很好!
    • 只是一个问题,为什么第一个IF(LEN(B2:B6),...)检查?
    • 以防万一...(在提供的示例中,它不需要,但据我所知,您的真实数据集可能看起来不同)。如果需要,您可以完全删除 IF 函数。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-15
    • 1970-01-01
    • 1970-01-01
    • 2014-07-16
    • 2014-05-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多