【问题标题】:Google Sheets Arrayformula for maxifs用于 maxifs 的 Google 表格数组公式
【发布时间】:2020-09-07 12:57:33
【问题描述】:

G'day 人,

我是一个长期的支持者/读者,但这是我第一次在 Stackoverflow 上发帖,所以请多多包涵。

Example of the Sheet I am working in

=if(E2="",,If(maxifs($E:$E,$K:$K,K2)=E2,K2,""))

在转换上面的这个 maxifs 公式时我有点难过,我正试图在 Google 表格中转换为数组公式。此公式检查以确保 E2(时间戳)不为空,然后进行比较,然后在整个时间戳列中查找不同标识符的较新时间戳(列 K 示例:'43909Ben Johns'(参考号和客户的 CONCAT) ) 查看是否有该标识符的新版本。如果找不到它,它将使用与同一行的 K 列中相同的标识符填充 L 列(公式所在的位置)中最新的行。如果它确实找到了更新的版本,它将填充“”。

我尝试设置一个数组公式,但是我可以看到它在我尝试转换它时不起作用。它计算了第一行,但将所有其他行(约 10,000)留空,我怀疑这是因为它试图将 E2 和 K2 上的数据与 E 和 K 列中的其他行进行比较。下面是我尝试过的数组公式:

=arrayformula(if(E2:E="",,If(maxifs(E2:E,K2:K,K2:K)=E2:E,K2:K,"")))

我们将不胜感激,如果您需要我进一步解释,请告诉我。

编辑:添加工作表样本https://docs.google.com/spreadsheets/d/1k1qK2BuYOwDPCtHedg7zV72JmE3_TQYu9EBwZVogQbU/

亲切的问候, 本

【问题讨论】:

  • 请提供您的工作表
  • 该表包含真实世界的个人健康信息。我将创建一个经过清理的版本并上传
  • @RafaGuillermo 请查看链接表:docs.google.com/spreadsheets/d/…
  • 感谢您的更新。不过,您的描述似乎与您的工作表不匹配 - 例如,您说 H2 是一个时间戳,但在工作表中,H 列被标记为“喉咙痛”,答案是是/否。你能确切地确认这是如何构成的吗?
  • @RafaGuillermo - 我更新了描述中的公式列地址以匹配共享的示例。 (差异的原因是我必须删除可以个人识别真实人物的列)。这一切都与现在描述的一致。

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


【解决方案1】:

这是一个可以放在标题单元格中的公式 (L1):

={
  "Valid Check (Most Recent)";
  ARRAYFORMULA(IF(E2:E = "",, IF(E2:E = VLOOKUP(K2:K, SORT({K2:K, E2:E}, 2, False), 2, 0), K2:K, "")))
}

【讨论】:

  • 谢谢,这很奏效,而且它在大型数据集上的计算速度也更快。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-01-09
  • 1970-01-01
  • 2021-06-04
  • 1970-01-01
  • 2020-06-04
  • 1970-01-01
  • 2023-02-03
相关资源
最近更新 更多