работает так же, как и верхние две. С функцией НАЙТИ() вместо ПОИСК() - всё то же самое Пробовала ПОИСКПОЗ() для нахождения точного соответствия условию поиска, но, почему-то, ПОИСКПОЗ(".";G2;0) благополучно игнорирует точку, если она находится в составе числа, например, 58.1 Прибегать к VBA нежелательно
Маска: ??.?????????, ??.????????? Объединяем два условия - соответствие маске и число: =И(ПОИСК(маска;G2); --ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(G2;",";);".";);" ";))
Маска - это "слепок" значения, которое нужно проверить. В маске знак ? - один любой символ; точка, запятая, пробел указаны на своих местах. Первое условие - если значение в ячейке совпадает с маской. Второе условие - если после удаления точки, запятой и пробела оставшиеся символы образуют число.
P.S. Нужно добавить еще одно условие - проверку на длину текста. ПОИСК найдет значение по маске, даже если оно будет записао с другим фрагментом
Но дело в том, что в таком варианте мне необходимо обязательно заполнять все "?" цифрами, хотя координаты бывают и в виде 55.1239, 38.19 или даже 57.11, 31.447741 То есть количество символов в дробной части может доходить до нескольких десятков. Нет ли другого способа?
Almera написал: У меня теперь работает как я и хотела.
Вместо любой цифры впишите точку, пробел или запятую...
Цитата
Он, видимо, ставит запятые вместо точек
Да. Если у Вас разделитель - точка, уберите замену: =И(--ЛЕВБ(A2;ПОИСК(", ";A2)-1); --ПСТР(A2;ПОИСК(", ";A2)+2;20); ДЛСТР(ПОДСТАВИТЬ(A2;" ";))=ДЛСТР(A2)-1)