如果列、行和单元格值都符合条件,我如何对值求和?

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=]。如果是这种情况,请更改示例的布局,使其更好地匹配您的真实数据,我可以尝试更新公式。