Замена формулы массива для формулы суммифов с диапазоном дат и другими критериями

В этой таблице:

Столбцы H и I дают сумму Dr или Cr для каждого Account в диапазоне дат.

Я ищу формулу массива, которая заменяет их, чтобы, если в столбец G (например, «Учетная запись 4») добавить новый Account (например, «Учетная запись 4»), формула массива вычислила бы итоги для этой новой учетной записи вместо того, чтобы копировать существующую формулу =sumifs вниз.

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
57
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Вы можете использовать эту формулу:

    =MAKEARRAY(COUNTA(G3:G),2,LAMBDA(r,c,LAMBDA(sums,
IF(AND(sums>0,c=1),sums,IF(AND(sums<0,c=2),-sums,"")))
(SUMIFS($C$3:$C,$D$3:$D,INDEX(G3:G,r),$A$3:$A,"> = "&$H$1,$A$3:$A,"< = "&$I$1)-SUMIFS($C$3:$C,$E$3:$E,INDEX(G3:G,r),$A$3:$A,"> = "&$H$1,$A$3:$A,"< = "&$I$1))))

ОБНОВЛЕННАЯ ФОРМУЛА:

=MAP(BYROW(G3:G,LAMBDA(gx,IF(gx = "",,SUM(IFERROR(FILTER(C:C,A:A>=H1,A:A<=I1,D:D=gx)))))),BYROW(G3:G,LAMBDA(gx,IF(gx = "",,SUM(IFERROR(FILTER(C:C,A:A>=H1,A:A<=I1,E:E=gx)))))),LAMBDA(ax,bx,IF(ax = "",,IF(ax-bx>0,{ax-bx,IFERROR(1/0)},{IFERROR(1/0),-(ax-bx)}))))

-

Хорошая формула, но она выдаст ошибку, если учетная запись не появляется каждый месяц как в Cr, так и в Dr.

Martín 26.12.2022 14:37

упс.. спасибо мартин:) перепроверю

rockinfreakshow 26.12.2022 14:40

удалите все свои формулы в диапазоне H3:I и используйте это в H3:

=INDEX(LAMBDA(d, c, {IF(d>c, d-c, ), IF(c>d, c-d, )})
 (QUERY({A3:D},       "select sum(Col3) 
 where Col1 >= date '"&TEXT(H1, "e-m-d")&"' 
   and Col1 <= date '"&TEXT(I1, "e-m-d")&"' group by Col4 label sum(Col3)''"), 
 QUERY({A3:C, E3:E}, "select sum(Col3) 
 where Col1 >= date '"&TEXT(H1, "e-m-d")&"' 
   and Col1 <= date '"&TEXT(I1, "e-m-d")&"' group by Col4 label sum(Col3)''")))


ОБНОВЛЯТЬ:

=INDEX(LAMBDA(x, {INDEX(x,,1), {D2:E2; QUERY({
 IF(INDEX(x,,2)<INDEX(x,,3), INDEX(x,,3)-INDEX(x,,2), ), 
 IF(INDEX(x,,3)<INDEX(x,,2), INDEX(x,,2)-INDEX(x,,3), )}, "offset 1", )}})
 (QUERY({A3:D, IFERROR(D3:D/0, D2); A3:C, E3:E, IFERROR(E3:E/0, E2)},
 "select Col4,sum(Col3) 
  where Col1 >= date '"&TEXT(H1, "e-m-d")&"' 
    and Col1 <= date '"&TEXT(I1, "e-m-d")&"' 
  group by Col4 
  pivot Col5")))

Всегда интересны ваши взгляды! Но это будет зависеть от наличия значений как в Cr, так и в Dr, чтобы каждая учетная запись появлялась каждый месяц, а порядок был в алфавитном порядке в G. Я прав?

Martín 26.12.2022 14:48

@Мартин, да и да. обновлено пуленепробиваемым решением

player0 26.12.2022 16:50

Хороший подход 👌

Martín 26.12.2022 17:26

Другие вопросы по теме

Google Sheets ArrayFormula для сравнения нескольких ячеек из разных строк
Найдите строку с наибольшими числами из каждого имени или группы, у которых было некоторое сходство имен, а затем суммируйте их значения группы имен
Объедините два столбца в столбце «B» и столбце «C», а затем объедините их в один столбец в столбце «E» с четным и нечетным положением друг друга
Google Таблицы: использование Query в ArraryFormula
Вычитание из числа каждой нижней строки в столбце AF. Получите минус друг друга постепенно, ряд за рядом, указывая вверх по формуле в G.sheets
Сумма каждого каждого ниже их чисел в столбце «AF». Складываем друг друга постепенно построчно указывая вверх по формуле в G.sheets
Счетчик работает медленно в Google Sheets
Получить несколько значений в одной ячейке с формулой массива
Объединение нескольких массивов в функцию запроса/лямбда
Выберите первое повторяющееся значение ($ R $ 4: $ R), основанное на том, что каждое из них должно иметь большое число в столбце ($ T $ 4: $ T) с формулой массива