ArrayFormula выполняет итерацию только первого значения по всему столбцу, нужны все значения, соответствующие критериям

#google-sheets #google-sheets-formula #vlookup #array-formulas

#google-sheets #google-sheets-формула #vlookup #массив-формулы

Вопрос:

Проблема:

У меня есть два листа, авторасходы и бизнес-расходы (повторяющиеся листы с разными категориями расходов), столбец J представляет стоимость расходов, столбец F представляет дату расхода

Я пытаюсь создать функцию, которая будет суммировать все расходы между обоими листами с учетом даты начала и даты окончания и выполнять итерацию по столбцу

Вот функция, которую я написал:

 =ArrayFormula(if(isblank(F2:F),"",SUMIFS('Auto Expenses'!$J$7:$J,'Auto Expenses'!$F$7:$F,">="amp;O2:O,'Auto Expenses'!$F$7:$F,"<="amp;P2:P) SUMIFS('Business Expenses'!$J$7:$J,'Business Expenses'!$F$7:$F,">="amp;O2:O,'Business Expenses'!$F$7:$F, "<="amp;P2:P)))
 

O2: Oсписок дат начала и P2: Pсписок дат окончания>

Когда я запускаю функцию, она возвращает только первую сумму расходов и выполняет итерацию до конца с тем же значением.

Что я делаю не так?

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

 =SUMIFS('Auto Expenses'!$J$7:$J,'Auto Expenses'!$F$7:$F,">="amp;O2,'Auto Expenses'!$F$7:$F, "<="amp;P2) SUMIFS('Business Expenses'!$J$7:$J,'Business Expenses'!$F$7:$F,">="amp;O2,'Business Expenses'!$F$7:$F, "<="amp;P2)
 

Вот ссылка на копию электронной таблицы для справки: https://docs.google.com/spreadsheets/d/1Lbrvsrz90RSYhedwA8IkyoYlHqWy5Lw7Ngxw5eRjAKs/edit?usp=sharing[ введите описание изображения здесь][1]

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

1. SUMIFS не поддерживается ARRAYFORMULA .

2. Невозможно получить доступ к листу по ссылке — пожалуйста, сделайте его общедоступным

3. @TomSharpe Теперь я предоставил доступ к электронной таблице. Вы должны иметь возможность просматривать и редактировать

4. @idfurw о, я забыл о том, что sumif не поддерживаются arrayformula. Итак, должен ли я делать sumif для каждого условия и просто добавлять их все вместе?

Ответ №1:

Поскольку все ваши временные интервалы составляют семь дней, один из подходов заключается в разработке 2d-массива с 7 столбцами, где каждый столбец представляет другой день недели, и использовать его в sumif для получения итогов за каждый день. Затем используйте Mmult для суммирования за 7 дней:

 =ArrayFormula(if(O2:O="",,mmult(sumif('Auto Expenses'!F7:F,O2:O sequence(1,7,0),'Auto Expenses'!J7:J),sequence(7,1,1,0))))
 

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

Затем сделайте то же самое для бизнес-расходов (которые еще не заполнены в вашем примере листа).

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

1. Вау, я даже не знал, что =SEQUENCE — это функция, которую я мог бы использовать! Я новичок в изучении массивов Google Sheets / Excel, поэтому это очень полезно знать. Спасибо