如果列、行和单元格值都符合条件,我如何对值求和?
How do I sum values if both column, row and cell value match conditions?
我有两张表:飞行控制和总时数控制。 Link to sheets.
飞控:
总时数:
我想要的:在总时数上,对飞行时间求和,如果:
列名(L.D.1) 匹配行上的行;行 Pilot 匹配行 Pilot; 单元格 的值为 1。
我将其用于单元格 C2,并且有效:
=SUMIFS('Flight Time'!B:B;'Flight Time'!A:A;B2;'Flight Time'!C:C;"1")
它起作用了,给了我这个:
但是,这不是很实用。每次引入新飞行员时,我都必须重做公式。如果我四处移动列,它就会停止工作。
我需要什么:让我的条件基于文本搜索。类似于:
If column name in {Flight Time!C:F} matches string on {row in col Line}, and Pilot = Pilot, and cell value = 1, SUM
换句话说,我需要扩展它。最终产品将有几十个飞行员和 L.D.s,所以我需要能够移动东西。
使用:
=ARRAYFORMULA(SPLIT(
TRANSPOSE(QUERY(TRANSPOSE(QUERY(SPLIT(TRANSPOSE(SPLIT(QUERY(TRANSPOSE(QUERY(
IF(C2:F="",,"♠"&C1:F1&"♦"&A2:A&"♣♥"&B2:B),,999^99)),,999^99), "♠")), "♥"),
"select Col1,sum(Col2) group by Col1 label sum(Col2)''")),,999^99)), "♦♣"))
我的回答与 player0 的类似,但它预期飞行时间选项卡会横向和向下无限扩展。
您将打开一个新选项卡并将此公式放在单元格 A1 中。
=ARRAYFORMULA(QUERY(SPLIT(TRANSPOSE(TRIM(SPLIT(QUERY(TRANSPOSE(QUERY('Flight Time'!C1:1&"|"&'Flight Time'!A2:A&"|"&OFFSET('Flight Time'!C2;;;ROWS('Flight Time'!C2:C);COLUMNS('Flight Time'!C2:2))*'Flight Time'!B2:B&CHAR(10);;9^99));;9^99);CHAR(10);0;0)));"|";0;0);"select Col1,Col2, SUM(Col3) where Col3>0 group by Col1,Col2 label Col1'Line',Col2'Pilot',SUM(Col3)'Total Hours'"))
有时在像这样的复杂公式中,如果您没有将示例数据放置在与真实 sheet =17=]。如果是这种情况,请更改示例的布局,使其更好地匹配您的真实数据,我可以尝试更新公式。
我有两张表:飞行控制和总时数控制。 Link to sheets.
飞控:
总时数:
我想要的:在总时数上,对飞行时间求和,如果:
列名(L.D.1) 匹配行上的行;行 Pilot 匹配行 Pilot; 单元格 的值为 1。
我将其用于单元格 C2,并且有效:
=SUMIFS('Flight Time'!B:B;'Flight Time'!A:A;B2;'Flight Time'!C:C;"1")
它起作用了,给了我这个:
但是,这不是很实用。每次引入新飞行员时,我都必须重做公式。如果我四处移动列,它就会停止工作。
我需要什么:让我的条件基于文本搜索。类似于:
If column name in {Flight Time!C:F} matches string on {row in col Line}, and Pilot = Pilot, and cell value = 1, SUM
换句话说,我需要扩展它。最终产品将有几十个飞行员和 L.D.s,所以我需要能够移动东西。
使用:
=ARRAYFORMULA(SPLIT(
TRANSPOSE(QUERY(TRANSPOSE(QUERY(SPLIT(TRANSPOSE(SPLIT(QUERY(TRANSPOSE(QUERY(
IF(C2:F="",,"♠"&C1:F1&"♦"&A2:A&"♣♥"&B2:B),,999^99)),,999^99), "♠")), "♥"),
"select Col1,sum(Col2) group by Col1 label sum(Col2)''")),,999^99)), "♦♣"))
我的回答与 player0 的类似,但它预期飞行时间选项卡会横向和向下无限扩展。
您将打开一个新选项卡并将此公式放在单元格 A1 中。
=ARRAYFORMULA(QUERY(SPLIT(TRANSPOSE(TRIM(SPLIT(QUERY(TRANSPOSE(QUERY('Flight Time'!C1:1&"|"&'Flight Time'!A2:A&"|"&OFFSET('Flight Time'!C2;;;ROWS('Flight Time'!C2:C);COLUMNS('Flight Time'!C2:2))*'Flight Time'!B2:B&CHAR(10);;9^99));;9^99);CHAR(10);0;0)));"|";0;0);"select Col1,Col2, SUM(Col3) where Col3>0 group by Col1,Col2 label Col1'Line',Col2'Pilot',SUM(Col3)'Total Hours'"))
有时在像这样的复杂公式中,如果您没有将示例数据放置在与真实 sheet =17=]。如果是这种情况,请更改示例的布局,使其更好地匹配您的真实数据,我可以尝试更新公式。