Имя: Пароль:
IT
Админ
Формула в Excel
0 ogion83
 
14.11.22
14:17
Помогите составить формулу. Надо чтобы в зависимости от найденного значения выдавало нужный текст.
Поиск производится в тексте. Пробовал так =ЕСЛИ(НАЙТИ("Сорт: АВС";Q737)>0;"1–3 (ABC)";ЕСЛИ(НАЙТИ("Сорт: АВ";Q737)>0;"1–2 (AB)";"С")). Если АВС в тексте то его находит, а если АВ, то ошибка.
1 ogion83
 
14.11.22
14:24
Вроде нашел, нужна функция ЕСЛИМН, но она только с 2016 офиса.
2 Ryzeman
 
14.11.22
14:28
Excel тебе не позволяет искать 9-символьную строку в 8-символьном значении ячейки.
Это неочевидно, но если посмотришь этапы вычисления - увидишь. Либо пиши формулу наоборот, либо проверяй по-другому.
3 Ryzeman
 
14.11.22
14:28
Вариант - просто экранируй на ошибки, потому что очевидно что нельзя найти большее в меньшем. Это тоже ложь.
4 ogion83
 
14.11.22
14:44
Я ищу в большом тексте в ячейке Q737 текст "Сорт: АВС", если функция выдала числовое значение, значит он найден вывожу АВС, если не найден, то снова поиск, но уже "Сорт:АВ". Но что то не идет.
5 Доминошник
 
14.11.22
14:46
(1) а ЕОШИБКА есть?
Если есть - то оборачивай в неё НАЙТИ
6 Доминошник
 
14.11.22
14:51
С ЕОШИБКА вот так получается


=ЕСЛИ(ЕОШИБКА(НАЙТИ("Сорт: АВС";A2)>0);ЕСЛИ(ЕОШИБКА(НАЙТИ("Сорт: АВ";A2)>0);"С";"1–2 (AB)");"1–3 (ABC)")
7 kittystark
 
14.11.22
14:58
(0) это вся задача или упрощение для нас?
сдается мне, что задача поширше будет и тогда регулярные выражения помогут
8 Ryzeman
 
14.11.22
15:08
(4) Блин, миллиард лет в Excel не влезал. Это вообще документированное поведение для этой функции

If find_text does not appear in within_text, FIND and FINDB return the #VALUE! error value.

Ты пробовал хоть =НАЙТИ("Хрен"; "Редька") Сделать посмотреть что вернёт?) С чего ты решил что будет 0?)
9 Ryzeman
 
14.11.22
15:12
(5) ЕслиОшибка есть с 2007-го офиса. ЕОШИБКА как минимум с 99-го
10 ogion83
 
14.11.22
15:13
(7) Это вся задача: нашел А выведи А, нашел в том же тексте В выведи В.
11 ogion83
 
14.11.22
15:14
=ЕСЛИМН(НАЙТИ("Сорт: АВС";Q737);"1–3 (ABC)";НАЙТИ("Сорт: АВ";Q737);"1–2 (AB)")
Вот формула, когда в тексте находится "СОРТ: АВ", в условии где ищет АВС выводит #ЗНАЧ! и его выводит, хотя в следующем условии находит АВ
12 ogion83
 
14.11.22
15:17
(11) Похоже формула все же не подходит для задачи
13 ogion83
 
14.11.22
15:45
=ЕСЛИ(НАЙТИ("Сорт: АВС";Q738);"1–3 (ABC)";ЕСЛИ(НАЙТИ("Сорт: АВ";Q738);"1–2 (AB)"))
Вот тут, если не нашел АВС, почему вместо значения ЛОЖЬ выводится #ЗНАЧ?
14 evgeniy_n
 
14.11.22
15:45
=ЕСЛИ(ЕОШИБКА(НАЙТИ("Сорт: АВС";Q737));ЕСЛИ(ЕОШИБКА(НАЙТИ("Сорт: АВ";Q737));"С";"1–2 (AB)");"1–3 (ABC)")
15 evgeniy_n
 
14.11.22
15:48
(14) В принципе, в (6) почти то же самое. Работает.
16 ogion83
 
14.11.22
15:52
(15) Работает, но у меня походу уже мозг клинит не могу понять как оно работает))))
17 ogion83
 
14.11.22
15:55
Надо как то сюда теперь добавить условие для сорта ВС))
18 ogion83
 
14.11.22
16:14
(14) Благодарю.
Вот так сделал, работает. =ЕСЛИМН(ЕОШИБКА(НАЙТИ("Сорт: АВС";Q737))=ЛОЖЬ;"1–3 (ABC)";ЕОШИБКА(НАЙТИ("Сорт: АВ";Q737))=ЛОЖЬ;"1–2 (AB)";ЕОШИБКА(НАЙТИ("Сорт: BC";Q737))=ЛОЖЬ;"2–3 (BC)";ЕОШИБКА(НАЙТИ("Сорт: С";Q737))=ЛОЖЬ;"3 (C)")