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

Я смотрю на изменение диапазона суммы в строке на основе выбранной даты. например, если я выберу 16 октября в раскрывающемся списке ячеек, я получу в общей сложности 10 месяцев в 2016 году для данного 6-значного кода.вечная облигация

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

= IFERROR(SUM(INDEX(INDIRECT("" & $ C $ 3 & "!C:C "), MATCH($ A10, КОСВЕННЫЕ (" "& $ C $ 3 &"!B:B "), 0)):INDEX (INDIRECT(" "& $ C $ 3 &"!C:Z "), MATCH($ A10, КОСВЕННЫЕ (" "& $ C $ 3 &"!В: В "), 0), МЕСЯЦ ($ C $ 2)))," ")

Ценим ваши предложения, пожалуйста

1 ответ1

1

Вы хотите суммировать часть одной строки массива, где дата меньше или равна указанному значению.

Сначала давайте разберемся, как получить одну строку массива. Функция 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))

Надеюсь, это поможет, и удачи.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .