【问题标题】:What is the best way for refactoring excel formula重构excel公式的最佳方法是什么
【发布时间】:2020-10-21 19:22:48
【问题描述】:

就像我在标题中问的那样,写下面这样的公式的最佳方法是什么。我想要德国所有工作表值的总和(值在 B 列中)

=SUM(SUMPRODUCT(--(First!A2:A11="Germany"),(First!B2:B11)), SUMPRODUCT(--(Second!A2:A11="Germany"),(Second!B2:B11)), SUMPRODUCT(--(Third!A2:A11="Germany"),(Third!B2:B11)))

你的意见是什么?

【问题讨论】:

标签: arrays google-sheets sum google-sheets-formula sumproduct


【解决方案1】:

在 Google 表格中您也可以使用

=QUERY({L1:M9;O3:P7}, 
 "select sum(Col2) where Col1 ='xxx' label sum(Col2) 'Total' ",1)  

(请根据您的需要调整范围)

公式的工作原理。

我们使用大括号 {} 创建一个数组,使用半列 ; 将范围一个在另一个之上,甚至来自其他工作表,例如 {L1:M9;O3:P7;First!A2:B11;Second!A2:B11}。可以根据需要添加任意数量的范围。甚至是开放范围。
公式末尾的,1 表示第一行将被视为标题行。

请阅读有关QUERY 的更多信息。功能

【讨论】:

  • 如果需要更多详细信息,请告诉我。
  • 这会做多张纸吗? OP 正在做 3 张纸
  • 随心所欲。你甚至可以使用开放范围:)
  • 这个想法是,OP 想要一个公式来查看三张纸,并将值添加到另一列中存在“德国”的列中。虽然这显示了 SUMIF() 的替代方法,它更短更简洁。它没有显示如何扩展它以查看同一公式中的三张纸。
  • 这个公式对你有用吗?如果是这样,请记住,根据site guidelines,当答案解决您的问题时,accept 它甚至是upvote 它,这样其他人也可以从中受益。如果不告诉我。
【解决方案2】:

尝试:

=SUM(FILTER({First!B2:B11; Second!B2:B11}, 
            {First!A2:A11; Second!A2:A11}="Germany"))

【讨论】:

    【解决方案3】:

    另一种选择:

    =SUMPRODUCT(({First!A2:A9;Second!A2:A9}="Germany")*{First!B2:B9;Second!B2:B9})
    

    【讨论】:

      猜你喜欢
      • 2012-01-26
      • 1970-01-01
      • 2022-01-19
      • 1970-01-01
      • 1970-01-01
      • 2013-12-03
      • 2010-11-19
      • 1970-01-01
      相关资源
      最近更新 更多