Подстановка по неполному соответствию текста вGoogle Sheets
Ежак
Дата: Пятница, 22.07.2022, 11:04 |
Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация:
0
±
Замечаний:
0% ±
Доброго дня! Столкнулся с проблемой в Google Sheets Есть лист прайсом с тремя типами цен за м2, например У О Р 6 СПК Бронза 5 7 9 4 МПК Зеленый 6 8 11 а на лист расчета стоимости попадает номенклатура с размерами 6 СПК Бронза 2х6 4 МПК Зеленый 4х8 БРАК Сейчас решил вопрос подтягивание цены в зависимости от ее вида формулойКод
=ЕСЛИ(K3="О";ИНДЕКС('Прайс'!$I:$I;ПОИСКПОЗ("*"&ПСТР(C3;1; ДЛСТР(C3)-11)&"*";'Прайс'!$F:$F;0));ЕСЛИ(K3="У";ИНДЕКС('Прайс'!$H:$H;ПОИСКПОЗ("*"&ПСТР(C3;1; ДЛСТР(C3)-11)&"*";'Прайс'!$F:$F;0));ЕСЛИ(K3="Р";ИНДЕКС('Прайс'!$J:$J;ПОИСКПОЗ("*"&ПСТР(C3;1; ДЛСТР(C3)-11)&"*";'Прайс'!$F:$F;0));0)))
Но это костыли, потому что количество символов, которые надо в итоге убрать не фиксировано, и в половине случаев надо его править в ручную (бывают такие позиции, что и по 20 символов). При этом отличие номенклатуры от прайсовых позиций начинаются именно с первой цифры. Может кто то подскажет более оптимальное решение. Благодарствую.
Доброго дня! Столкнулся с проблемой в Google Sheets Есть лист прайсом с тремя типами цен за м2, например У О Р 6 СПК Бронза 5 7 9 4 МПК Зеленый 6 8 11 а на лист расчета стоимости попадает номенклатура с размерами 6 СПК Бронза 2х6 4 МПК Зеленый 4х8 БРАК Сейчас решил вопрос подтягивание цены в зависимости от ее вида формулойКод
=ЕСЛИ(K3="О";ИНДЕКС('Прайс'!$I:$I;ПОИСКПОЗ("*"&ПСТР(C3;1; ДЛСТР(C3)-11)&"*";'Прайс'!$F:$F;0));ЕСЛИ(K3="У";ИНДЕКС('Прайс'!$H:$H;ПОИСКПОЗ("*"&ПСТР(C3;1; ДЛСТР(C3)-11)&"*";'Прайс'!$F:$F;0));ЕСЛИ(K3="Р";ИНДЕКС('Прайс'!$J:$J;ПОИСКПОЗ("*"&ПСТР(C3;1; ДЛСТР(C3)-11)&"*";'Прайс'!$F:$F;0));0)))
Но это костыли, потому что количество символов, которые надо в итоге убрать не фиксировано, и в половине случаев надо его править в ручную (бывают такие позиции, что и по 20 символов). При этом отличие номенклатуры от прайсовых позиций начинаются именно с первой цифры. Может кто то подскажет более оптимальное решение. Благодарствую. Ежак
Сообщение отредактировал Ежак - Пятница, 22.07.2022, 11:05
Ответить
Сообщение Доброго дня! Столкнулся с проблемой в Google Sheets Есть лист прайсом с тремя типами цен за м2, например У О Р 6 СПК Бронза 5 7 9 4 МПК Зеленый 6 8 11 а на лист расчета стоимости попадает номенклатура с размерами 6 СПК Бронза 2х6 4 МПК Зеленый 4х8 БРАК Сейчас решил вопрос подтягивание цены в зависимости от ее вида формулойКод
=ЕСЛИ(K3="О";ИНДЕКС('Прайс'!$I:$I;ПОИСКПОЗ("*"&ПСТР(C3;1; ДЛСТР(C3)-11)&"*";'Прайс'!$F:$F;0));ЕСЛИ(K3="У";ИНДЕКС('Прайс'!$H:$H;ПОИСКПОЗ("*"&ПСТР(C3;1; ДЛСТР(C3)-11)&"*";'Прайс'!$F:$F;0));ЕСЛИ(K3="Р";ИНДЕКС('Прайс'!$J:$J;ПОИСКПОЗ("*"&ПСТР(C3;1; ДЛСТР(C3)-11)&"*";'Прайс'!$F:$F;0));0)))
Но это костыли, потому что количество символов, которые надо в итоге убрать не фиксировано, и в половине случаев надо его править в ручную (бывают такие позиции, что и по 20 символов). При этом отличие номенклатуры от прайсовых позиций начинаются именно с первой цифры. Может кто то подскажет более оптимальное решение. Благодарствую. Автор - Ежак Дата добавления - 22.07.2022 в 11:04
Gustav
Дата: Пятница, 22.07.2022, 11:46 |
Сообщение № 2
Группа: Админы
Ранг: Участник клуба
Сообщений: 2808
Репутация:
1184
±
Замечаний:
±
начинал с Excel 4.0, видел 2.1
Добрый день! Нужен пример - или расшарьте саму таблицу Гугл, хотя бы на просмотр, или скопируйте в Excel и выложите файл. А то на чём помогающему играться?
Добрый день! Нужен пример - или расшарьте саму таблицу Гугл, хотя бы на просмотр, или скопируйте в Excel и выложите файл. А то на чём помогающему играться? Gustav
МОИ: Ник , Tip box: 41001663842605
Ответить
Сообщение Добрый день! Нужен пример - или расшарьте саму таблицу Гугл, хотя бы на просмотр, или скопируйте в Excel и выложите файл. А то на чём помогающему играться? Автор - Gustav Дата добавления - 22.07.2022 в 11:46
Ежак
Дата: Пятница, 22.07.2022, 14:12 |
Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация:
0
±
Замечаний:
0% ±
Ответить
Gustav
Дата: Пятница, 22.07.2022, 17:11 |
Сообщение № 4
Группа: Админы
Ранг: Участник клуба
Сообщений: 2808
Репутация:
1184
±
Замечаний:
±
начинал с Excel 4.0, видел 2.1
У меня для ячейки L3 листа "Продажи" такая формула получилась: [vba]Код
=VLOOKUP(JOIN(" ";ARRAY_CONSTRAIN(SPLIT(C3;" ");1;5)); 'Прайс'!F:J; MATCH(K3;'Прайс'!$F$1:$J$1;0); 0)
[/vba] Не знаю, насколько Вам станет легче, но, вроде, покороче Вашей и даже что-то считает...
У меня для ячейки L3 листа "Продажи" такая формула получилась: [vba]Код
=VLOOKUP(JOIN(" ";ARRAY_CONSTRAIN(SPLIT(C3;" ");1;5)); 'Прайс'!F:J; MATCH(K3;'Прайс'!$F$1:$J$1;0); 0)
[/vba] Не знаю, насколько Вам станет легче, но, вроде, покороче Вашей и даже что-то считает... Gustav
МОИ: Ник , Tip box: 41001663842605
Ответить
Сообщение У меня для ячейки L3 листа "Продажи" такая формула получилась: [vba]Код
=VLOOKUP(JOIN(" ";ARRAY_CONSTRAIN(SPLIT(C3;" ");1;5)); 'Прайс'!F:J; MATCH(K3;'Прайс'!$F$1:$J$1;0); 0)
[/vba] Не знаю, насколько Вам станет легче, но, вроде, покороче Вашей и даже что-то считает... Автор - Gustav Дата добавления - 22.07.2022 в 17:11
Ежак
Дата: Понедельник, 25.07.2022, 14:14 |
Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация:
0
±
Замечаний:
0% ±
Gustav, огромное благодарствую!!!! Только при добавлении новых позиций в прайс, их не видит формула(
Gustav, огромное благодарствую!!!! Только при добавлении новых позиций в прайс, их не видит формула( Ежак
Ответить
Сообщение Gustav, огромное благодарствую!!!! Только при добавлении новых позиций в прайс, их не видит формула( Автор - Ежак Дата добавления - 25.07.2022 в 14:14
Gustav
Дата: Понедельник, 25.07.2022, 17:28 |
Сообщение № 6
Группа: Админы
Ранг: Участник клуба
Сообщений: 2808
Репутация:
1184
±
Замечаний:
±
начинал с Excel 4.0, видел 2.1
Из-за того, что некоторые ячейки "ключа" пустые, при конкатенации генерируются "лишние" пробелы, идущие подряд, которые некоторые умные функции рассматривают как один пробел. К счастью, этим можно несложно управлять. Так можно добавить 3-й и 4-й параметры в функцию SPLIT: [vba]Код
=VLOOKUP(JOIN(" ";ARRAY_CONSTRAIN(SPLIT(C3;" ";0;0);1;5)); 'Прайс'!F:J; MATCH(K3;'Прайс'!$F$1:$J$1;0); 0)
[/vba] Или можно поиграть в почти настоящий частичный поиск со звездочками - внутри и вокруг JOIN: [vba]Код
=VLOOKUP("*"&JOIN("*";ARRAY_CONSTRAIN(SPLIT(C3;" ");1;5))&"*"; 'Прайс'!F:J; MATCH(K3;'Прайс'!$F$1:$J$1;0); 0)
[/vba] Все формулы - для ячейки L3 листа "Продажи".
Из-за того, что некоторые ячейки "ключа" пустые, при конкатенации генерируются "лишние" пробелы, идущие подряд, которые некоторые умные функции рассматривают как один пробел. К счастью, этим можно несложно управлять. Так можно добавить 3-й и 4-й параметры в функцию SPLIT: [vba]Код
=VLOOKUP(JOIN(" ";ARRAY_CONSTRAIN(SPLIT(C3;" ";0;0);1;5)); 'Прайс'!F:J; MATCH(K3;'Прайс'!$F$1:$J$1;0); 0)
[/vba] Или можно поиграть в почти настоящий частичный поиск со звездочками - внутри и вокруг JOIN: [vba]Код
=VLOOKUP("*"&JOIN("*";ARRAY_CONSTRAIN(SPLIT(C3;" ");1;5))&"*"; 'Прайс'!F:J; MATCH(K3;'Прайс'!$F$1:$J$1;0); 0)
[/vba] Все формулы - для ячейки L3 листа "Продажи".Gustav
МОИ: Ник , Tip box: 41001663842605
Ответить
Сообщение Из-за того, что некоторые ячейки "ключа" пустые, при конкатенации генерируются "лишние" пробелы, идущие подряд, которые некоторые умные функции рассматривают как один пробел. К счастью, этим можно несложно управлять. Так можно добавить 3-й и 4-й параметры в функцию SPLIT: [vba]Код
=VLOOKUP(JOIN(" ";ARRAY_CONSTRAIN(SPLIT(C3;" ";0;0);1;5)); 'Прайс'!F:J; MATCH(K3;'Прайс'!$F$1:$J$1;0); 0)
[/vba] Или можно поиграть в почти настоящий частичный поиск со звездочками - внутри и вокруг JOIN: [vba]Код
=VLOOKUP("*"&JOIN("*";ARRAY_CONSTRAIN(SPLIT(C3;" ");1;5))&"*"; 'Прайс'!F:J; MATCH(K3;'Прайс'!$F$1:$J$1;0); 0)
[/vba] Все формулы - для ячейки L3 листа "Продажи".Автор - Gustav Дата добавления - 25.07.2022 в 17:28