Доброго времени суток! Возникли некоторые трудности с подсчётом значений, найденных через ВПР. Итак, в столбце А есть список артикулов товаров (типа 1_0001 или 2_0003); в столбце В - соответствующая стоимость этих товаров. В столбце D перечислены заказы товаров (в виде этих артикулов/названий), причём некоторые из заказов содержат несколько артикулов, разделённых точкой с запятой (типа 1_0001; 1_0003; 2_0001). Задача, по сути, простая - найти стоимость в столбце Е каждого заказа. Через ВПР (вместо таблицы выделяя просто столбцы А и В, так как между строками артикулов могут быть другие типы данных - возможно, описание товара) я могу найти стоимость каждого заказанного товара, но только если он один в ячейке. У меня не получается заставить ВПР подсчитать сумму всех заказанных позиций в одной ячейке, товары в которой разделены точкой с запятой. Файл примера прилагаю. Заранее спасибо за любые ответы и помощь!
Суммирование нескольких значений, найденных через ВПР
|
13.03.2026 13:14:48
|
|
|
|
|
|
13.03.2026 13:44:36
варианты:
=СУММ((СУММЕСЛИ(A:A;ФИЛЬТР.XML("<I><i>"&ПОДСТАВИТЬ(D1;";";"</i><i>")&"</i></I>";"//i");B:B))) или =СУММ((СУММЕСЛИ(A:A;СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(D1;";";ПОВТОР(" ";99));{0:1:2:3:4:5:6:7:8:9}*99+1;99));B:B))) |
|
|
|
|
|
13.03.2026 13:45:42
Вариант макросом.
|
|||
|
|
|
|
13.03.2026 13:47:40
Здравствуйте.
А может быть без ВПР попробовать?
Изменено: - 13.03.2026 16:12:23
|
|||
|
|
|
|
13.03.2026 14:31:42
МатросНаЗебре, ПавелW, gling, благодарю, всё работает! Дополнительный вопрос: что, если мне нужно найти не сумму этих товаров в столбце Е, а среднее значение их стоимости? Как тогда переделать эти формулы?
|
|
|
|
|
|
13.03.2026 14:38:54
|
|||||
|
|
|
|
13.03.2026 14:42:41
Формула из сообщения #2 примет вид:
|
|||
|
|
|
|
13.03.2026 14:55:46
Макрос примет вид:
|
|||
|
|
|
|
13.03.2026 15:09:57
Попаразитирую на на формуле gling, массивная
|
|||
|
|
|
|
13.03.2026 15:21:49
Wergulla, можно заменить СУММ() в на СРЗНАЧ() ...ну или на другую агрегирующую функцию
...возможно потребуется ввести как |
|
|
|
|
|
13.03.2026 15:46:35
тогда тоже попаразитирую на ответах..
вариант в E1 формула массива, далее протянуть вниз =СРЗНАЧ(ЕЧИСЛО(ПОИСК($A$1:$A$12;D1))*$B$1:$B$12) =СУММ(ЕЧИСЛО(ПОИСК($A$1:$A$12;D1))*$B$1:$B$12)
познакомился с Excel
|
|
|
|
|
|
13.03.2026 15:59:19
|
|||
|
|
|
|
13.03.2026 16:07:35
Msi2102,
Изменено: - 13.03.2026 16:10:51
|
|
|
|
|
|
13.03.2026 16:13:51
Среднее:
Изменено: - 13.03.2026 16:15:20
|
|||
|
|
|
|
13.03.2026 16:43:48
Можно ещё поизголяться с ФИЛЬТР.XML (массивная)
|
|||
|
|
|
|
14.03.2026 16:21:38
вариант прям по теме:
=СУММ(ВПР(Т(ИНДЕКС(ФИЛЬТР.XML("<I><i>"&ПОДСТАВИТЬ(D1;";";"</i><i>")&"</i></I>";"//i");));A:B;2;)) или =СУММ(ЕСЛИОШИБКА(ВПР(Т(ИНДЕКС(СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(D1;";";ПОВТОР(" ";99));{0:1:2:3:4:5:6:7:8:9}*99+1;99));));A:B;2;);"")) ...и здесь можно заменить СУММ на СРЗНАЧ и пр... |
|
|
|
|
|
19.03.2026 04:35:36
Вопрос на форуме нашёл, а вот решение не получается. Имеется формула: =ЕСЛИОШИБКА(ВПР(E7;'[Остатки.xlsx]TDSheet'!$B$13:$D$215;3;ЛОЖЬ);"0")
Но теперь в столбце В13 появились строки с одинаковым значением. Как сделать так, чтобы эти значения из столбца D суммировались? |
|
|
|
|
|
19.03.2026 05:34:16
ronyman, если Ваш вопрос совпадает с Темой этого топика, то приложите свой файл-пример (Excel), в которм покажите Как есть - Как надо
Согласие есть продукт при полном непротивлении сторон
|
|
|
|
|
|
19.03.2026 07:01:31
Используйте не ВПР(), а СУММЕСЛИ(). |
|||
|
|
|
|
19.03.2026 07:35:01
Ну вот, собственно сделать так, чтобы в правой части таблицы строки с одинаковым кодом из левой части суммировались. В оригинале таблицы на разных листах.
|
|
|
|
|
|
19.03.2026 07:41:47
Попробуйте без ВПР, так:
Или сводной таблицей.
Изменено: - 19.03.2026 07:42:25
|
||||
|
|
|
|||
Читают тему