【问题标题】:How do you find the difference between one cell in a column and the last non-empty cell in the same column in Google Sheets?您如何在 Google 表格中找到一列中的一个单元格与同一列中最后一个非空单元格之间的区别?
【发布时间】:2020-04-27 14:02:32
【问题描述】:

我对电子表格非常缺乏经验,只能做非常基本的函数和公式。我和我的朋友们正在跟踪我们在接下来的几个月里的体重减轻情况,所以我们每天都在增加体重。我正在寻找一个公式,我可以在其中找到我们的起始重量(我的开始于 G8)和最近输入的重量(我的最后一个输入将在 G67)之间的差异。澄清一下,我想随时跟踪我的进度,而不仅仅是第一个和最后一个条目之间的区别。

我对这个问题进行了相当多的研究,但似乎只能找到 Microsoft Excel 的答案(不适用于 Google 表格)。

我已经包含了一个测试电子表格的链接,所以你可以看到我们的样子:https://docs.google.com/spreadsheets/d/1RRMsauNAnC8PVjP5ieuHQUDawN33ybzSioajfQxwf_w/edit#gid=0

【问题讨论】:

  • 澄清一下;您正在寻找一个公式,该公式会根据您最近输入的体重计算出您当前的总减重,而只是您达到 G67 后的最终总减重?如果是这样的话,我搜索的第一个 Google 结果给了我=G8-index(G:G,max(row(G:G)*(G:G<>"")))
  • 没错,是的。感谢您的澄清。不幸的是,我找到了一个类似的公式,但是当我尝试它时,它给了我一个#REF!错误。我不确定为什么。你的公式也出现了同样的错误。
  • 它适用于我为测试公式而制作的示例表。没有看到你的工作表,我想我将无法提供更多帮助
  • 这是我制作的测试电子表格的链接,您可以看到我们的电子表格是什么样子。 docs.google.com/spreadsheets/d/…
  • 啊,我明白了。这是因为“总计”单元格与数据位于同一列。由于公式索引了整个列,它也索引了自己。那可能不太好。要解决此问题,请将公式替换为 =G8-index(G8:G67,max(row(G8:G67)*(G8:G67<>""))),并根据需要替换数字以扩展公式引用的单元格数量

标签: google-sheets google-sheets-formula


【解决方案1】:

你可以这样做:

=arrayformula(
 {"Begin", B8:H8;
  "Last", {
  indirect("B" & max(filter(row(B8:B67),B8:B67<>""))),
  indirect("C" & max(filter(row(C8:C67),C8:C67<>""))),
  indirect("D" & max(filter(row(D8:D67),D8:D67<>""))),
  indirect("E" & max(filter(row(E8:E67),E8:E67<>""))),
  indirect("F" & max(filter(row(F8:F67),F8:F67<>""))),
  indirect("G" & max(filter(row(G8:G67),G8:G67<>""))),
  indirect("H" & max(filter(row(H8:H67),H8:H67<>"")))}
  ;"Different",{B8:H8}-{
  indirect("B" & max(filter(row(B8:B67),B8:B67<>""))),
  indirect("C" & max(filter(row(C8:C67),C8:C67<>""))),
  indirect("D" & max(filter(row(D8:D67),D8:D67<>""))),
  indirect("E" & max(filter(row(E8:E67),E8:E67<>""))),
  indirect("F" & max(filter(row(F8:F67),F8:F67<>""))),
  indirect("G" & max(filter(row(G8:G67),G8:G67<>""))),
  indirect("H" & max(filter(row(H8:H67),H8:H67<>"")))}})

您必须在 H 列之后继续添加其他列(包括将 B8:H8 更改为 B8:~8),如果有任何其他行,您必须将第 67 行更改为下一个未来的最后一行数据

=arrayformula({
               {"Stage";"First";"Last";"Diff"},
               {B7:H7;
                B8:H8;transpose(
                  query(split(
                    query(transpose(
                      query(text(row(A8:A66)*not(isblank(B8:H66)),"0000") & ":" & B8:H66,
                        "Select " & join(",","max(Col" & column(B7:H7)-COLUMN(B7)+1 & ")"))
                  ),"Select Col2"),":",true,false),"Select Col2"));
                B8:H8-transpose(
                  query(split(
                    query(transpose(
                      query(text(row(A8:A66)*not(isblank(B8:H66)),"0000") & ":" & B8:H66,
                         "Select " & join(",","max(Col" & column(B7:H7)-COLUMN(B7)+1 & ")"))
                  ),"Select Col2"),":",true,false),"Select Col2"))
               }})

【讨论】:

  • 非常感谢!我真的很感激!
猜你喜欢
  • 2011-12-28
  • 2021-12-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-02
  • 1970-01-01
  • 2021-12-12
相关资源
最近更新 更多