Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Формула поиска нескольких ключевых слов одновременно - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Manyasha, SLAVICK, китин  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Формула поиска нескольких ключевых слов одновременно (Формулы/Formulas)
Формула поиска нескольких ключевых слов одновременно
АлексейАльтман Дата: Среда, 07.11.2018, 16:39 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Добрый день.
У меня имеется формула поиска нескольких слов одновременно - в блоках по три ячейки. Эти несколько слов, (когда они задаются в ячейке G4) - разделены знаком "+".
Если формула замечает, что в блоке из трех ячеек - встречаются все ключевые слова - то он выдает значение 1, если же нет - то значение 0.
Однако формула работает неточно.

Подскажите, если кто знает - почему в ячейках G28 и G31 - выдается результат "1" ( хотя в них не хватает одного ключевого слова из ячейки G4 ) ?
К сообщению приложен файл: 4418083.xlsx(14.2 Kb)
 
Ответить
СообщениеДобрый день.
У меня имеется формула поиска нескольких слов одновременно - в блоках по три ячейки. Эти несколько слов, (когда они задаются в ячейке G4) - разделены знаком "+".
Если формула замечает, что в блоке из трех ячеек - встречаются все ключевые слова - то он выдает значение 1, если же нет - то значение 0.
Однако формула работает неточно.

Подскажите, если кто знает - почему в ячейках G28 и G31 - выдается результат "1" ( хотя в них не хватает одного ключевого слова из ячейки G4 ) ?

Автор - АлексейАльтман
Дата добавления - 07.11.2018 в 16:39
bmv98rus Дата: Среда, 07.11.2018, 17:09 | Сообщение № 2
Группа: Проверенные
Ранг: Старожил
Сообщений: 1398
Репутация: 235 ±
Замечаний: 0% ±

Excel 2013/2016
каком количестве ячеек найдется символ "" который будет последним в массиве?
Или руками править диапазон column(A:C) на column(A:B) или сперва считать количество + и исходя из этого
Код
=TRANSPOSE(ROW(A1:INDEX(A:A;1+LEN(G4)-LEN(SUBSTITUTE(G4;"+";"")))))

так чуть короче
Код
=COLUMN($A$1:INDEX($1:$1;1+LEN(G4)-LEN(SUBSTITUTE(G4;"+";""))))


Сообщение отредактировал bmv98rus - Среда, 07.11.2018, 18:35
 
Ответить
Сообщениекаком количестве ячеек найдется символ "" который будет последним в массиве?
Или руками править диапазон column(A:C) на column(A:B) или сперва считать количество + и исходя из этого
Код
=TRANSPOSE(ROW(A1:INDEX(A:A;1+LEN(G4)-LEN(SUBSTITUTE(G4;"+";"")))))

так чуть короче
Код
=COLUMN($A$1:INDEX($1:$1;1+LEN(G4)-LEN(SUBSTITUTE(G4;"+";""))))

Автор - bmv98rus
Дата добавления - 07.11.2018 в 17:09
krosav4ig Дата: Среда, 07.11.2018, 17:35 | Сообщение № 3
Группа: Друзья
Ранг: Старожил
Сообщений: 1698
Репутация: 699 ±
Замечаний: 0% ±

Excel 2007,2010,2013
а вдрг пригодится...
Код
=СЧЁТ(1/(МУМНОЖ(ИНДЕКС(МУМНОЖ(ЕСЛИОШИБКА(ПОИСК(СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(G4;"+";ПОВТОР(" ";99));СТОЛБЕЦ(A1:ИНДЕКС(1:1;1+ДЛСТР(G4)-ДЛСТР(ПОДСТАВИТЬ(G4;"+";))))*99-98;99));D7:D33)^0;);ТРАНСП(СТОЛБЕЦ(A1:ИНДЕКС(1:1;1+ДЛСТР(G4)-ДЛСТР(ПОДСТАВИТЬ(G4;"+";)))))^0);Ч(ИНДЕКС(СТРОКА(A1:ИНДЕКС(A:A;ЧСТРОК(D7:D33)/3))*3-3+{1;2;3};;)));{1:1:1})>ДЛСТР(G4)-ДЛСТР(ПОДСТАВИТЬ(G4;"+";))))
К сообщению приложен файл: 3917363.xlsx(14.3 Kb)


(_)Õvõ(_)

Сообщение отредактировал krosav4ig - Среда, 07.11.2018, 17:36
 
Ответить
Сообщениеа вдрг пригодится...
Код
=СЧЁТ(1/(МУМНОЖ(ИНДЕКС(МУМНОЖ(ЕСЛИОШИБКА(ПОИСК(СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(G4;"+";ПОВТОР(" ";99));СТОЛБЕЦ(A1:ИНДЕКС(1:1;1+ДЛСТР(G4)-ДЛСТР(ПОДСТАВИТЬ(G4;"+";))))*99-98;99));D7:D33)^0;);ТРАНСП(СТОЛБЕЦ(A1:ИНДЕКС(1:1;1+ДЛСТР(G4)-ДЛСТР(ПОДСТАВИТЬ(G4;"+";)))))^0);Ч(ИНДЕКС(СТРОКА(A1:ИНДЕКС(A:A;ЧСТРОК(D7:D33)/3))*3-3+{1;2;3};;)));{1:1:1})>ДЛСТР(G4)-ДЛСТР(ПОДСТАВИТЬ(G4;"+";))))

Автор - krosav4ig
Дата добавления - 07.11.2018 в 17:35
АлексейАльтман Дата: Среда, 07.11.2018, 18:29 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
bmv98rus, вроде бы - ваше решение работает.
Большое спасибо.
 
Ответить
Сообщениеbmv98rus, вроде бы - ваше решение работает.
Большое спасибо.

Автор - АлексейАльтман
Дата добавления - 07.11.2018 в 18:29
Светлый Дата: Среда, 07.11.2018, 18:36 | Сообщение № 5
Группа: Проверенные
Ранг: Ветеран
Сообщений: 707
Репутация: 187 ±
Замечаний: 0% ±

Excel 2010
Формула для обоих столбцов:
Код
=Ч(СЧЁТ(ПОИСК(СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(G$4;"+";ПОВТОР(" ";99));СТОЛБЕЦ(СМЕЩ($A$1;;;;ДЛСТР(G$4)-ДЛСТР(ПОДСТАВИТЬ(G$4;"+";""))+1))*99-98;99));$D7:$D9))>ДЛСТР(G$4)-ДЛСТР(ПОДСТАВИТЬ(G$4;"+";"")))
Автоматически учитывает сколько плюсов в образце.


Программировать проще, чем писать стихи.
 
Ответить
СообщениеФормула для обоих столбцов:
Код
=Ч(СЧЁТ(ПОИСК(СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(G$4;"+";ПОВТОР(" ";99));СТОЛБЕЦ(СМЕЩ($A$1;;;;ДЛСТР(G$4)-ДЛСТР(ПОДСТАВИТЬ(G$4;"+";""))+1))*99-98;99));$D7:$D9))>ДЛСТР(G$4)-ДЛСТР(ПОДСТАВИТЬ(G$4;"+";"")))
Автоматически учитывает сколько плюсов в образце.

Автор - Светлый
Дата добавления - 07.11.2018 в 18:36
АлексейАльтман Дата: Четверг, 08.11.2018, 03:43 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Уточняющий вопрос насчет массивной формулы:

[vba]
Код
{=Ч(СЧЁТ(ПОИСК(СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(G$4;"+";ПОВТОР(" ";99));СТОЛБЕЦ($A13:ИНДЕКС(13:13;1+ДЛСТР(G$4)-ДЛСТР(ПОДСТАВИТЬ(G$4;"+";))))*99-98;99));D13:D15))>ДЛСТР(G$4)-ДЛСТР(ПОДСТАВИТЬ(G$4;"+";)))}
[/vba]

Формула эта - хорошо работает только если диапазон, который она анализирует - включает один столбец (например D7:D9). Если же этот диапазон - захватывает два столбца и более - например C7:D9 - то формула начинает глючить и выдавать неверные результаты.

Я в качестве эксперимента - в ячейках G7 и G19 - внедрил в формулы - анализ массива на два столбца. В результате одна и та же формула - показала в двух случаях - разный результат.
Почему формула - в ячейке G19 - выдает "1" (что есть правильно), а в ячейке G7 - уже выдает "0" (что есть неверно) ?
То есть почему в одном случае формула срабатывает, а в другом нет ?
К сообщению приложен файл: 9624542.xlsx(14.7 Kb)
 
Ответить
СообщениеУточняющий вопрос насчет массивной формулы:

[vba]
Код
{=Ч(СЧЁТ(ПОИСК(СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(G$4;"+";ПОВТОР(" ";99));СТОЛБЕЦ($A13:ИНДЕКС(13:13;1+ДЛСТР(G$4)-ДЛСТР(ПОДСТАВИТЬ(G$4;"+";))))*99-98;99));D13:D15))>ДЛСТР(G$4)-ДЛСТР(ПОДСТАВИТЬ(G$4;"+";)))}
[/vba]

Формула эта - хорошо работает только если диапазон, который она анализирует - включает один столбец (например D7:D9). Если же этот диапазон - захватывает два столбца и более - например C7:D9 - то формула начинает глючить и выдавать неверные результаты.

Я в качестве эксперимента - в ячейках G7 и G19 - внедрил в формулы - анализ массива на два столбца. В результате одна и та же формула - показала в двух случаях - разный результат.
Почему формула - в ячейке G19 - выдает "1" (что есть правильно), а в ячейке G7 - уже выдает "0" (что есть неверно) ?
То есть почему в одном случае формула срабатывает, а в другом нет ?

Автор - АлексейАльтман
Дата добавления - 08.11.2018 в 03:43
krosav4ig Дата: Четверг, 08.11.2018, 06:03 | Сообщение № 7
Группа: Друзья
Ранг: Старожил
Сообщений: 1698
Репутация: 699 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Цитата АлексейАльтман, 08.11.2018 в 03:43, в сообщении № 6 ()
почему в одном случае формула срабатывает, а в другом нет ?
потому, что гладиолус так совпало. Вы перенесите значение из ячейки D19 в C19 или(и) из C20 в D20 и в ячейке G19 будет 0
для двух столбцов в G7 должно быть что-то типа этого
Код
=Ч(СЧЁТ(ПОИСК(СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(G$4;"+";ПОВТОР(" ";99));СТОЛБЕЦ($A7:ИНДЕКС(7:7;1+ДЛСТР(G$4)-ДЛСТР(ПОДСТАВИТЬ(G$4;"+";))))*99-98;99));C7:C9&D7:D9))>ДЛСТР(G$4)-ДЛСТР(ПОДСТАВИТЬ(G$4;"+";)))

или этого %)
Код
=Ч(СЧЁТ(ПОИСК(СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(G$4;"+";ПОВТОР(" ";99));СТОЛБЕЦ($A7:ИНДЕКС(7:7;1+ДЛСТР(G$4)-ДЛСТР(ПОДСТАВИТЬ(G$4;"+";))))*99-98;99));ИНДЕКС(C7:D9;Ч(ИНДЕКС(ОКРВВЕРХ(СТРОКА(A$1:ИНДЕКС(A:A;ЧСТРОК(C7:D9)*ЧИСЛСТОЛБ(C7:D9)))/ЧИСЛСТОЛБ(C7:D9);1);0));Ч(ИНДЕКС(ОСТАТ(СТРОКА(A$1:ИНДЕКС(A:A;ЧСТРОК(C7:D9)*ЧИСЛСТОЛБ(C7:D9)))-1;ЧИСЛСТОЛБ(C7:D9))+1;0)))))>ДЛСТР(G$4)-ДЛСТР(ПОДСТАВИТЬ(G$4;"+";)))


(_)Õvõ(_)

Сообщение отредактировал krosav4ig - Четверг, 08.11.2018, 06:04
 
Ответить
Сообщение
Цитата АлексейАльтман, 08.11.2018 в 03:43, в сообщении № 6 ()
почему в одном случае формула срабатывает, а в другом нет ?
потому, что гладиолус так совпало. Вы перенесите значение из ячейки D19 в C19 или(и) из C20 в D20 и в ячейке G19 будет 0
для двух столбцов в G7 должно быть что-то типа этого
Код
=Ч(СЧЁТ(ПОИСК(СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(G$4;"+";ПОВТОР(" ";99));СТОЛБЕЦ($A7:ИНДЕКС(7:7;1+ДЛСТР(G$4)-ДЛСТР(ПОДСТАВИТЬ(G$4;"+";))))*99-98;99));C7:C9&D7:D9))>ДЛСТР(G$4)-ДЛСТР(ПОДСТАВИТЬ(G$4;"+";)))

или этого %)
Код
=Ч(СЧЁТ(ПОИСК(СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(G$4;"+";ПОВТОР(" ";99));СТОЛБЕЦ($A7:ИНДЕКС(7:7;1+ДЛСТР(G$4)-ДЛСТР(ПОДСТАВИТЬ(G$4;"+";))))*99-98;99));ИНДЕКС(C7:D9;Ч(ИНДЕКС(ОКРВВЕРХ(СТРОКА(A$1:ИНДЕКС(A:A;ЧСТРОК(C7:D9)*ЧИСЛСТОЛБ(C7:D9)))/ЧИСЛСТОЛБ(C7:D9);1);0));Ч(ИНДЕКС(ОСТАТ(СТРОКА(A$1:ИНДЕКС(A:A;ЧСТРОК(C7:D9)*ЧИСЛСТОЛБ(C7:D9)))-1;ЧИСЛСТОЛБ(C7:D9))+1;0)))))>ДЛСТР(G$4)-ДЛСТР(ПОДСТАВИТЬ(G$4;"+";)))

Автор - krosav4ig
Дата добавления - 08.11.2018 в 06:03
АлексейАльтман Дата: Четверг, 08.11.2018, 10:24 | Сообщение № 8
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
krosav4ig, теперь вроде все работает. Спасибо.
 
Ответить
Сообщениеkrosav4ig, теперь вроде все работает. Спасибо.

Автор - АлексейАльтман
Дата добавления - 08.11.2018 в 10:24
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Формула поиска нескольких ключевых слов одновременно (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс цитирования
© 2010-2018 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!