Вы хотите суммировать часть одной строки массива, где дата меньше или равна указанному значению.
Сначала давайте разберемся, как получить одну строку массива. Функция INDEX()
INDEX(array, row_num, [col_num])
вернет всю строку, если col_num установлен в ноль. Так что эта функция
=INDEX(C9:O17,MATCH(403300,B9:B17,0),0))
возвращает строку ваших данных, где Учетная запись (?) 403300 Вы можете проверить это, выделив формулу в строке формул и напечатав F9. Это покажет значение формулы - массив данных в строке 403300.
Теперь вам просто нужно сложить часть той строки, где месяц меньше или равен указанному месяцу. SUMIF()
сделает это.
SUMIF(range,criteria,[sum-range])
SUMIF() проверяет указанный диапазон (ваши даты), соответствующий критериям (<= указанный вами месяц), и суммирует соответствующие ячейки в sum_range (строка, выбранная с помощью формулы INDEX () выше). Собрав все это вместе и используя приведенную ниже таблицу макетов, эта формула
=SUMIF(C7:O7,"<="&$E$4,INDEX(C9:O17,MATCH($D$4,B9:B17,0),0))
в G4 выдает сумму счета в D4 до даты в E4.
Я разместил все на одном листе и без раскрывающихся списков, но вы можете легко добавить эти функции. Если вам действительно нужно указать рабочий лист с выпадающим списком, вам нужно использовать много INDIRECT(), что немного запутанно. Я придумал это, где имя листа в C4:
=SUMIF(INDIRECT(C4&"!"&"C7:O7"),"<="&E4,INDEX(INDIRECT(C4&"!"&"C9:O17"),MATCH(D4,INDIRECT(C4&"!"&"B9:B17"),0),0))
Надеюсь, это поможет, и удачи.