【问题标题】:Sum Each Row in Array (Google Sheets)对数组中的每一行求和(Google 表格)
【发布时间】:2020-07-16 08:15:08
【问题描述】:

我有一个复杂的公式可以生成一个数组(10+ 行和 10+ 列)。 为简单起见,我们就说它是=unique(a1:z10)

我正在寻找可以counta() 数组的每一行单独的公式。它基本上应该返回一个 1 列数组,该数组计算每行中的值的数量。 因为我会将其包装在 max() 函数中,以查看其中最高的计数。

谢谢各位。我希望我的问题是可以理解的。 如果需要进一步说明,请告诉我。

【问题讨论】:

  • 你能分享一个谷歌表格的例子吗,也许是虚拟数字?
  • 分享您的工作表副本

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


【解决方案1】:

获取 m 行 x n 列数组的总行数的标准方法是

=mmult(<array>,<colvector>)

其中&lt;array&gt; 是一个数字数组,&lt;colvector&gt; 是一个 n 行高、一列宽包含所有数字的数组。

获取&lt;colvector&gt; 的标准方法是

=row(<range>)^0

但这不适用于数组,因为您只能使用带范围的行函数。

所以我认为您必须以另一种方式生成&lt;colvector&gt; - 最简单的方法是使用序列,但不幸的是,这意味着为您的&lt;array&gt; 重复公式以获取列数。

示例

假设我们选择这个作为我们的复杂数组:

=ArrayFormula(if(mod(sequence(10,10),8),"",sequence(10,10)))

一个 10 X 10 的数组,其中包含一些空格。

获取行数的整个公式是:

=ArrayFormula(mmult(n(if(mod(sequence(10,10),8),"",sequence(10,10))<>""),
sequence(columns(if(mod(sequence(10,10),7),"",sequence(10,10))))^0))

【讨论】:

    【解决方案2】:

    尝试:

    =MAX(ARRAYFORMULA(MMULT(IFERROR(LEN(B:K)/LEN(B:K), 0), TRANSPOSE(COLUMN(B:K)^0))))
    

    如果您想一步完成所有操作,请使用:

    =MAX(ARRAYFORMULA(MMULT(IFERROR(LEN(B:K)/LEN(B:K), 0), 
     ROW(INDIRECT("A1:A"&TRANSPOSE(COLUMNS(B:K))))^0)))
    

    用输出数组的公式替换 B:K 范围

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-27
      • 1970-01-01
      • 1970-01-01
      • 2020-10-22
      相关资源
      最近更新 更多