跨多个选项卡总和,只有标记为“活动”标签
Sum Across Multiple Tabs, Only If Tab is Flagged as being Active
我有 5 个标签:“开始”“2020”“2019”“2018”“结束”
我想对所有选项卡中的同一个单元格(例如单元格 A2)求和,仅当该选项卡被标记为活动时(例如,每个选项卡的单元格 A1 将具有 1 或 0,具体取决于它是否处于活动状态)。
通常,我会这样做:=sum('Start:End'!A2),但是我只想对处于活动状态的选项卡的单元格求和。然后我希望能够将此公式拖过,以便所有选项卡的 A2、B2 等如果它们是活动选项卡的一部分,则可以汇总。
我还需要它具有灵活性,这样如果我在“结束”选项卡之前添加一个新选项卡,我就可以轻松地将其合并到求和公式中。
我相信这可以通过 Sumproduct 和 Sumifs 的组合来实现,但是我还不能确定公式。我试过了
=SUMPRODUCT(SUMIFS('Start:End'A2,'Start:End'$A,"=1"))
然而 returns #VALUE!错误。
假设:
- 所有单元格
A1
为空(因此为零)或 文字 0 或 1;
- 访问 ms365 的
TOCOL()
。
尝试:
=SUM(TOCOL(Start:End!A1)*TOCOL(Start:End!A2))
由于条目数不太可能超过 TEXTJOIN
和 FILTERXML
的字符限制,因此 non-volatile 选项似乎更可取。更重要的是,这还允许所需的 3D sheet 引用。
=SUM(FILTERXML("<a><b>"&TEXTJOIN("</b><b>",,Start:End!A1:A2)&"</b></a>","//b[preceding::*[1]=1 and position() mod 2 = 0]"))
我假设单元格 A2
中的所有条目在所有 sheet 中都是 non-empty。如果不是这样,修改为:
=SUM(FILTERXML("<a><b>"&TEXTJOIN("</b><b>0",0,Start:End!A1:A2)&"</b></a>","//b[preceding::*[1]=1 and position() mod 2 = 0]"))
我有 5 个标签:“开始”“2020”“2019”“2018”“结束” 我想对所有选项卡中的同一个单元格(例如单元格 A2)求和,仅当该选项卡被标记为活动时(例如,每个选项卡的单元格 A1 将具有 1 或 0,具体取决于它是否处于活动状态)。
通常,我会这样做:=sum('Start:End'!A2),但是我只想对处于活动状态的选项卡的单元格求和。然后我希望能够将此公式拖过,以便所有选项卡的 A2、B2 等如果它们是活动选项卡的一部分,则可以汇总。
我还需要它具有灵活性,这样如果我在“结束”选项卡之前添加一个新选项卡,我就可以轻松地将其合并到求和公式中。
我相信这可以通过 Sumproduct 和 Sumifs 的组合来实现,但是我还不能确定公式。我试过了
=SUMPRODUCT(SUMIFS('Start:End'A2,'Start:End'$A,"=1"))
然而 returns #VALUE!错误。
假设:
- 所有单元格
A1
为空(因此为零)或 文字 0 或 1; - 访问 ms365 的
TOCOL()
。
尝试:
=SUM(TOCOL(Start:End!A1)*TOCOL(Start:End!A2))
由于条目数不太可能超过 TEXTJOIN
和 FILTERXML
的字符限制,因此 non-volatile 选项似乎更可取。更重要的是,这还允许所需的 3D sheet 引用。
=SUM(FILTERXML("<a><b>"&TEXTJOIN("</b><b>",,Start:End!A1:A2)&"</b></a>","//b[preceding::*[1]=1 and position() mod 2 = 0]"))
我假设单元格 A2
中的所有条目在所有 sheet 中都是 non-empty。如果不是这样,修改为:
=SUM(FILTERXML("<a><b>"&TEXTJOIN("</b><b>0",0,Start:End!A1:A2)&"</b></a>","//b[preceding::*[1]=1 and position() mod 2 = 0]"))