【问题标题】:google sheets - Arrayformula谷歌表格 - Arrayformula
【发布时间】:2014-12-18 20:21:35
【问题描述】:

我使用谷歌表单创建了一个表单,我想在完成新提交时自动检查答案。 当用户提交他/她的问题时,响应表中会添加一个新行。这是我需要添加一些魔法的地方;)

所以,在我的回复表中,我在第二行有正确的答案......像这样

      A               B             C
1

2 RightAnswer1, RightAnswer2, RightAnswer3....

使用 arrayformula 函数,我在每一行添加了新的列(列 D、E、F、G 等),以检查第 2 行的正确答案。

公式是这样的;

=IF(ARRAYFORMULA(A3:A=A2),1,0)

它就像一个魅力:)

但是,然后我想在每一行的末尾添加一列,其中包含所有正确答案的总和,让我们说每一行的 Z 列...这是我想要对所有 1 求和的地方(正确答案)。

我尝试过这样的事情;

=IF(ARRAYFORMULA(<any kind of check that is true>),sum(D3:Z3),0)

这将始终返回每行 D3:Z3 的总和,这不是我想要的。我想对刚刚添加的行号上的列求和。因此,我尝试以多种方式更改此表达式,将所有内容都包含在 arrayformula 表达式中,将 sum 表达式更改为 (D3:D) 以希望让它在当前行上工作,但没有任何运气。

我在网上搜索了答案,但没有找到任何帮助我... 你有什么建议吗?

【问题讨论】:

    标签: google-sheets array-formulas


    【解决方案1】:

    一种方式:

    =ArrayFormula(IF(LEN(D3:D),SUMIF(IF(COLUMN(D3:Z3),ROW(D3:D)),ROW(D3:D),D3:Z),))

    虽然可以“跳过中间人”并单独处理原始数据;假设答案在 A2:Z2 中,而要求和的数据在 A3:Z 中,则:

    =ArrayFormula(IF(LEN(A3:A),COUNTIF(IF(A3:Z=A2:Z2,ROW(A3:A)),ROW(A3:A)),))

    【讨论】:

      猜你喜欢
      • 2017-11-12
      • 2021-03-29
      • 2020-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-07
      相关资源
      最近更新 更多