【问题标题】:Repeating a Range in Google Sheets在 Google 表格中重复范围
【发布时间】:2020-07-09 18:53:50
【问题描述】:

这个问题是关于在 Google 电子表格中重复范围。这是我目前使用的公式:

=ARRAYFORMULA(ARRAYFORMULA(SUM(COUNTIFS(SPLIT(REPT("Attendence!B:B;", 2), ";"), {"Name1", "Name2", "Name3"}, Attendence!O:P, "=P"))))

这是我需要的一个例子:

=ARRAYFORMULA(ARRAYFORMULA(SUM(COUNTIFS({Attendence!B:B, Attendence!B:B, Attendence!B:B, Attendence!B:B}, {"Name1", "Name2", "Name3"}, Attendence!O:R, "=P"))))

基本上,Attendence!B:B 需要在{ } 内重复与Attendence!O:R 中的列相同的次数。问题是,第二个公式可以工作,除了公式需要访问列C:JY,这意味着我必须重复Attendence!B:B 的次数是荒谬的。

所以我尝试使用这个:SPLIT(REPT("Attendence!B:B;", 2), ";") 并将2 替换为列数,但它一直告诉我们两个参数的长度不相等。

简化表: https://docs.google.com/spreadsheets/d/1PFEz3wz5HOP1cD6HBE-N00yoM1reLwlOpo905cMRW8k/edit?usp=sharing

这个问题和这个很相似:How to make a range repeat n-times in Google SpreadSheet

但是,尽管我尝试实施其中提到的解决方案,但它对我不起作用。

【问题讨论】:

  • 几个问题。您能否分享一个样本表,其中显示了您拥有什么以及您想要实现的目标?您的示例中没有 C:JY 范围,因此很难说出如何处理它。为什么你需要重复列Attendence!B:B?只是为了与{Name1, ...} 范围比较?这个{Name1, ...} 范围来自哪里?
  • 现在问题中分享了
  • 好的,尝试将(在您的工作表中完成)REPT("Attendence!B:B;", 2) 更改为 REPT(Attendence!B:B & ";", 2)
  • 您需要统计总出席人数还是要获取每个姓名的出席人数列?
  • 工作表是私有的

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


【解决方案1】:

如果C:JY 列中的每个姓名和日期都有"P",那么这里是总数的公式:

=ARRAYFORMULA(SUM(--(C:JY = "P")))

这是为每个名称获取一列的公式:

=ARRAYFORMULA(MMULT(--(C:JY = "P"), SEQUENCE(COLUMNS(C:JY), 1, 1, 0)))

这是将矩阵乘以单位向量(大小为n x 1 的列) - 得到一列行和。如果您需要一行列的总和,那么您需要将相同的矩阵乘以另一个单位向量(一行大小为1 x n),就像这样(更改MMULT 中的参数顺序很重要):

=ARRAYFORMULA(MMULT(SEQUENCE(1, ROWS(C:JY), 1, 0), --(C:JY = "P")))

如果您有从第二行开始的数据,您可能需要将它们修复为一个 bin。就像C:JY -> C2:JY 一样,如果是的话,可能会过滤掉空行。

您可以在this question 中找到替代解决方案:

=ARRAYFORMULA(COUNTIFS(IF(COLUMN(C:JY), ROW(C:JY)), ROW(C:JY), C:JY, "P"))

【讨论】:

  • 非常感谢!这对我很有用(第三个公式)。但是,如何只获得 C2、C4、C5 等特定行的出席率。即只有某些名称的每列总和?
  • 您可以在AAA1 中使用它(或在另一张纸上,只需正确的范围名称):=ARRAYFORMULA(MMULT(--(FILTER(C:JY, IFERROR(MATCH(B:B, ZZ:ZZ, 0), 0) > 0) = "P"), SEQUENCE(SUM(--(IFERROR(MATCH(B:B, ZZ:ZZ, 0), 0) > 0)), 1, 1, 0)))。其中ZZ:ZZ 是您以某种方式选择名称的列。 screenshot of your demo sheet
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-07
  • 1970-01-01
  • 2021-10-14
相关资源
最近更新 更多