Добавление значений к сумме по каждому множественному критерию

#google-sheets #google-sheets-formula

#google-таблицы #google-таблицы-формула

Вопрос:

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

  • Именованный диапазон от B2 до E2
A B C D E F
1 День 1 День 2 День 3 День 4 Итого
2 Янв. F B F F 11
3 Февраль B B 4

Я просто собираюсь показать код в F2, потому что F3 такой же, только с другим диапазоном имен

 INDIRECT($A2) -> This is a named range there's multiple of them
'Info'!$B$9 -> F
'Info'!$B$10 -> B
'Info'!$C$9 -> 3
'Info'!$C$10 -> 2

=SUM(
        COUNTIFS(INDIRECT($A2);'Info'!$B$9)*'Info'!$C$9;
        COUNTIFS(INDIRECT($A2);'Info'!$B$10)*'Info'!$C$10;
)
 

Что я хотел бы сделать сейчас, так это создать вторую строку (3) ниже, где я могу добавить дополнительные значения к счетчику и добавить эти значения к этому конкретному ключу выше, чтобы, например, умножение выполнялось правильно:

A B C D E F
1 День 1 День 2 День 3 День 4 Итого
2 Янв. F B F F 26
3 JanExtra 1 6 15
4 Февраль B B 4
5 FebExtra 0

Есть идеи о том, как я могу добиться этого с помощью приведенного выше кода? Я на самом деле застрял здесь и не имею никаких идей, заранее спасибо.

Комментарии:

1. поделитесь копией своего листа

2. Вот оно: Лист

3. как вы вычислили 15 в F3 в примере вашего вопроса?

4. Давайте подумаем в терминах часов, поэтому F всегда должно быть 3 часа, поэтому суммируйте все F и сделайте x * 3, то же самое для B, но B — всего 2 часа, числа 1 и 6 означают, что я хочу добавить еще 1 час к этой дневной смене, а 6 — то же самое, но на другой деньВ январе я работал 11 часов, если суммировать все стандартные смены, но я работал дополнительные часы в 2 разных дня, допустим, 2-й день я проработал на 6 часов больше, поэтому в строке 2 он просто выполняет 1 * 2, но теперь, поскольку я добавляю эту строку 3, а 6 ниже, я хочу добавитьэто 6 для вычисления B и то же самое для F с соответствующим значением

5. Я вижу. итак, между строкой 2 и строкой 3 происходит умножение. не должно ли быть сложение вместо умножения?

Ответ №1:

попробуйте:

 =ARRAYFORMULA(IF(REGEXMATCH(A2:A; ".*Extra"); 
 IFERROR(1*FLATTEN(SPLIT("♀♂"amp;MMULT(FILTER(B2:AF; REGEXMATCH(A2:A; ".*Extra"))*
 FILTER(IFNA(VLOOKUP(B2:AF; Info!A2:B; 2; 0)); NOT(REGEXMATCH(A2:A; ".*Extra"))); 
 TRANSPOSE(COLUMN(B:AF))^0); "♂")); 0); 
 MMULT(IFNA(VLOOKUP(B2:AF; Info!A2:B; 2; 0); B2:AF)*1; TRANSPOSE(COLUMN(B:AF))^0) 
 IFERROR(1*FLATTEN(SPLIT(MMULT(FILTER(B2:AF; REGEXMATCH(A2:A; ".*Extra"))*
 FILTER(IFNA(VLOOKUP(B2:AF; Info!A2:B; 2; 0)); NOT(REGEXMATCH(A2:A; ".*Extra"))); 
 TRANSPOSE(COLUMN(B:AF))^0)amp;"♂♀"; "♂")); 0)))
 

введите описание изображения здесь