【问题标题】:Google Sheets Formula - Query multiple rows and cols into one cell on another sheet谷歌表格公式 - 将多行和多列查询到另一张表格上的一个单元格中
【发布时间】:2016-02-23 13:19:09
【问题描述】:

我用来生成发票的邮件合并应用程序只会读取和发送每封电子邮件的 1 行,因此,在生成发票时,我需要动态(因为订单项的数量未知)从invoice items 表放到 invoice 表中,并将结果放到要发送的 invoice 表行中。

如何使用公式而不是脚本来做到这一点?谢谢。

【问题讨论】:

  • 为了方便,这里有一张测试表:docs.google.com/spreadsheets/d/…
  • 我开始玩弄这个想法:=join(CHAR(10),QUERY('Invoice Items'!B2:N, "select H where C = '"&B7&"' order by D,B")),但很快意识到在这种情况下使用“JOIN”只会​​让您查询一列,而不是多列。所以回到绘图板。

标签: google-sheets array-formulas


【解决方案1】:

修改后的答案。在发票表的单元格 A1 中输入下面的公式并将其复制下来,无论您可能需要多少行(可能的项目数)。如果项目为空白,则向下复制的单元格将为空白。然后在发票表的 B1 中将下一个公式合并到一个单元格中。

=if('Invoice Items Sheet'!$A2<>"",(concatenate('Invoice Items Sheet'!$A2,"-",'Invoice Items Sheet'!$B2,"-",text('Invoice Items Sheet'!$C2,"$0.00"),"-",text('Invoice Items Sheet'!$D2,"$0.00"),char(10))),"")

=Concatenate(A:A)

让您的发票更具可读性的另一个想法:

=if('Invoice Items Sheet'!$A2<>"",(concatenate('Invoice Items Sheet'!$A2,"  ",'Invoice Items Sheet'!$B2," x ",text('Invoice Items Sheet'!$C2,"$0.00")," = ",text('Invoice Items Sheet'!$D2,"$0.00"),char(10))),"")

【讨论】:

  • 有趣...虽然按照我提出问题的方式,您在技术上是正确的,但挑战在于项目数量未知,因此不适合手动连接在现实世界的场景中,我需要弄清楚如何让您的示例使用某种动态循环,因为从发票到发票的项目数量将不同且未知。但我认为你的例子正在引导我朝着正确的方向前进。我将修改问题以澄清这一点。
  • 哇兄弟,做到了!你们是如何思考这些东西的!
猜你喜欢
  • 2021-01-08
  • 1970-01-01
  • 2018-02-10
  • 2021-10-03
  • 1970-01-01
  • 1970-01-01
  • 2021-04-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多