Задача такая: имею столбец с совершенно криворукими названиями клиентов, которые записаны черти как, абсолютно не системно и не однотипно, но в какой то части их названия присутствует ИНН, который собственно нужно извлечь.
Задача упрощается тем, что слава богу кто-то все-таки догадался перед числовым номером ИНН писать сами буквы "ИНН", поэтому начальную позицию забора текста вычислить не сложно. Но после самого номера ИНН-на еще может продолжаться текст, и ИНН после своего окончания отделен от этого текста либо запятой, либо пробелом, либо открывающей или закрывающей скобкой.
И вот конечную позицию ИНН-на собственно нужно определить позицией первой встречающейся запятой, пробела или открывающей/закрывающей скобки в строке, в которой все до начала самого номера ИНН-на уже откинуто. Как то никогда не доводилось использовать комбинацию =ПОИСК(ИЛИ(искомый текст1; искомый текст2)... Сейчас к своему удивлению выяснил, что такая комбинация не работает.
Можно конечно это решить через ЕСЛИОШИБКА(ПОИСК(",";текст где ищем);ЕСЛИОШИБКА(ПОИСК(" ";текст где ищем);ЕСЛИОШИБКА(ПОИСК("(";текст где ищем);ЕСЛИОШИБКА(ПОИСК(")";текст где ищем)... Но это в данном случае у меня всего 4 варианта окончания номера ИНН. А если их будет 100? Не вариант 100 раз писать ЕСЛИОШИБКА (да и длины ячейки не хватит).
тоже не работает.
Как можно емко определить номер позиции одного из четырех искомых символов, который первым встретится в тексте ячейки?
Задача упрощается тем, что слава богу кто-то все-таки догадался перед числовым номером ИНН писать сами буквы "ИНН", поэтому начальную позицию забора текста вычислить не сложно. Но после самого номера ИНН-на еще может продолжаться текст, и ИНН после своего окончания отделен от этого текста либо запятой, либо пробелом, либо открывающей или закрывающей скобкой.
И вот конечную позицию ИНН-на собственно нужно определить позицией первой встречающейся запятой, пробела или открывающей/закрывающей скобки в строке, в которой все до начала самого номера ИНН-на уже откинуто. Как то никогда не доводилось использовать комбинацию =ПОИСК(ИЛИ(искомый текст1; искомый текст2)... Сейчас к своему удивлению выяснил, что такая комбинация не работает.
Можно конечно это решить через ЕСЛИОШИБКА(ПОИСК(",";текст где ищем);ЕСЛИОШИБКА(ПОИСК(" ";текст где ищем);ЕСЛИОШИБКА(ПОИСК("(";текст где ищем);ЕСЛИОШИБКА(ПОИСК(")";текст где ищем)... Но это в данном случае у меня всего 4 варианта окончания номера ИНН. А если их будет 100? Не вариант 100 раз писать ЕСЛИОШИБКА (да и длины ячейки не хватит).
Код |
---|
ПОДСТАВИТЬ(текст;ИЛИ(",";" ";"(";")");"*") |
Как можно емко определить номер позиции одного из четырех искомых символов, который первым встретится в тексте ячейки?