Как суммировать значения, если оба значения столбца, строки и ячейки соответствуют условиям? - PullRequest
0 голосов
/ 10 марта 2020

У меня есть два листа: контроль полета и общий контроль часов. Ссылка на листы .

Управление полетом:

Flight Control

Всего часов:

Total Hours

Что я хочу : Вкл. Всего часов , Сумма Время полета , если:

Имя столбца (LD1) соответствует строке в Строка ; ряд пилот соответствует ряду пилот ; ячейка имеет значение 1.

Я использую это для ячейки C2, и она работает:

=SUMIFS('Flight Time'!B:B;'Flight Time'!A:A;B2;'Flight Time'!C:C;"1")

И это работает, давая мне это:

enter image description here

Однако это не очень практично. Я должен переделывать формулу каждый раз, когда вводится новый пилот. И если я перемещаю столбцы, он перестает работать.

Что мне нужно : Чтобы основывать свои условия на текстовом поиске. Что-то вроде:

If column name in  {Flight Time!C:F} matches string on {row in col Line}, and Pilot = Pilot, and cell value = 1, SUM

Другими словами, мне нужно масштабировать это. Конечный продукт будет иметь десятки пилотов и LD, поэтому мне нужно иметь возможность передвигаться.

Ответы [ 2 ]

2 голосов
/ 11 марта 2020

Мой ответ такой же, как и у игрока0, но он ожидает вкладку «Время полета», которая расширяется бесконечно в стороны и вниз.

Вы бы открыли новую вкладку и поместили эту формулу в ячейку 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'"))

Иногда в сложных формулах, подобных этой, может быть трудно перевести на ваш реальный лист, если вы не поместили данные образца в точно такой же макет на образце, как и на вашем реальном листе. Если это так, измените макет образца так, чтобы он лучше соответствовал вашим реальным данным, и я могу попытаться обновить формулу.

1 голос
/ 11 марта 2020

использование:

=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)), "♦♣"))

0

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...