Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
На один код и один цвет установить такую же цену, как в позиции с характеристикой
 

обрый день!

Подскажите, пожалуйста, есть таблица: название, код, цена. Код иногда разный, иногда одинаковый (в примере один код, разные цвета). Задача: на один код и один цвет установить такую же цену, как в позиции с характеристикой Karre. ссылка на пример таблицы.

пример: https://onedrive.live.com/edit.aspx?resid=F4A24ECE75BEB6A2!113&app=Excel&wdnd=1&...

 
Создайте небольшой файл-пример, прикрепите к первому сообщению.
 
Вот файл для примера. буду благодарна за помощь
 
=INDEX(C:C;SUMPRODUCT((RIGHT($A$1:$A$28;5)="Karre")*(IFERROR(SEARCH(LEFT(A1;FIND(",";A1)-1);$A$1:$A$28);0)=1)*($B$1:$B$28=B1)*ROW($A$1:$B$28)))
=INDEX(C:C;MATCH(1;(RIGHT($A$1:$A$28;5)="Karre")*(IFERROR(SEARCH(LEFT(A1;FIND(",";A1)-1);$A$1:$A$28);0)=1)*($B$1:$B$28=B1);0))

Цитата
прикрепите к первому сообщению.
1 <> 3
Изменено: БМВ - 20 Мар 2018 11:42:57
 
спасибо огромное! работает!
убрала в закладки!

еще раз спасибо!
Изменено: Татяна - 20 Мар 2018 17:56:11
 
Решение через формулы массивов. Скорее всего проблема в том, что не все ссылки на диапазоны скорректированы на одинаковое количество ячеек или при вводе нажимаете не Ctrl + Shift + Enter

Разбор формулы по частям
Код
=ИНДЕКС(C:C;
Возврат значения из диапазона C:C (цены) по указанному номеру строки

Код
СУММПРОИЗВ(
Производит суммирование помноженных друг на друга элементов из указанных внутри скобок диапазонов

Код
(ПРАВСИМВ($A$1:$A$29;5)="Karre")
Возвращает 0 для строки, которая не заканчивается на Karre и 1 для нужной строки

Код
*(ЕСЛИОШИБКА(
        ПОИСК(
              ЛЕВСИМВ(A1;НАЙТИ(",";A1)-1)
                      ;$A$1:$A$29);0)
                            =1)*

ЛЕВСИМВ(A1;НАЙТИ(",";A1)-1) определит артикул без цвета - текстовая строка до запятой
ПОИСК(ЛЕВСИМВ(...);$A$1:$A$29) - вернет 1, для строк с отличным от текущей строки артикулом, и цифру в другом случае
ЕСЛИОШИБКА(ПОИСК(...);0) - подменит ошибку на 0
ЕСЛИОШИБКА(...;0)=1 - вернет 1 для строк с совпадающим артикулом, 0 в ином случае

Код
($B$1:$B$29=B1)*
Сравнивает артикул с тем, что указан в текущей строке - по аналогии со частью ПРАВСИМВ вернет 0 для строк с другим артикулом

Код
СТРОКА($A$1:$B$29)))
Самая простая часть - возвращает номер строки
Изменено: YTikhonov - 20 Мар 2018 17:48:57
 
СПАСИБО!!!!! очень помогли!
 
А можно сразу еще вопрос?! В новой теме [МОДЕРАТОР]
 
Цитата
Татяна написал:
А можно сразу еще вопрос?!
Можно, но в отдельной теме. Тут приберитесь, пример удалите, да и текст ненужен, а новую создавайте, милости просим.

По поводу #4 Если б не текстовое  искомое значение, то можно было совсем просто
=SUMPRODUCT((RIGHT($A$1:$A$28;5)="Karre")*(IFERROR(SEARCH(LEFT(A1;FIND(",";A1)-1);$A$1:$A$28);0)=1)*($B$1:$B$28=B1)*$I$1:$I$28)
но можно и так
=TEXT(SUMPRODUCT((RIGHT($A$1:$A$28;5)="Karre")*(IFERROR(SEARCH(LEFT(A1;FIND(",";A1)-1);$A$1:$A$28);0)=1)*($B$1:$B$28=B1)*SUBSTITUTE($C$1:$C$28;" руб.";""));"# ##0,00\ руб.")

но  все равно формула с MATCH подходит для любого варианта
Страницы: 1
Читают тему (гостей: 1)
Наверх