Добрый день.
Вопрос вроде бы простой -- как сравнивать текстовые данные на ">", "<" чтобы, например, строчная "А" и прописная "а" не считались одинаковыми. Ну чтобы "Аа22" и "АА345" уже по второму символу разошлись, "как в море корабли". Понятно, что речь не идет о функции СОВПАД.
Здравствуйте
В Excel есть функция НАЙТИ()
Эта функция как раз различает прописные и строчные буквы
Так же можно использовать функцию КОДСИМВ()
У одинаковых букв разные коды в разных регистрах
Например код символа "А" - 192, а код символа "а" - 224
PS Кстати, функцией СОВПАД() тоже можно воспользоваться, как и побуквенному сравнению с помощью функции ПСТР()
Добрый вечер, Сергей.
Из Ваших слов я понял, что встроенной (собственной) функции сравнения (а-ля "<" или ">") в Excel нет. Значит придется писать свою UDF. А функцию EXACT никак не смогу приспособить: она же говорит лишь "=" или "not =", но никак не "<" или ">". Пороюсь в Инете, может у Пирсона что-то встретится. Но быстрее написать своё. Спасибо, что помогли однозначно определиться с моей проблемкой.
Цитата: Gutstadt от 05.04.2021, 19:38
...встроенной (собственной) функции сравнения (а-ля "<" или ">") в Excel нет.
Такая функция в Excel есть. Однако она не учитывает регистры
А Вашу задачу можно решить так:
В А1 значение "
Аа222", в А2 - "
АА245". Формула:
=КОДСИМВ(ПСТР(A1;СТОЛБЕЦ(A:E);1))=КОДСИМВ(ПСТР(A2;СТОЛБЕЦ(A:E);1))
вернет массив
{ИСТИНА;ЛОЖЬ;ИСТИНА;ЛОЖЬ;ЛОЖЬ}
, поскольку только 1-й ("
А") и 3-й ("
2") символы сравниваемых значений одинаковы
Так же можно сравнивать текст на ">" "<" (больше/меньше), например
=КОДСИМВ(ПСТР(A1;СТОЛБЕЦ(A:E);1))>КОДСИМВ(ПСТР(A2;СТОЛБЕЦ(A:E);1))
вернет
{ЛОЖЬ;ИСТИНА;ЛОЖЬ;ЛОЖЬ;ЛОЖЬ}
поскольку код символа "
а" (224) больше чем код символа "
А" (192), а коды остальных символов значения "
Аа222" меньше или равны кодам символа значения "
АА245"
Добрый вечер, Сергей.
Все Ваши предложения интересны и, не побоюсь этого слова, назидательны. Но раз уж решил уйти в VBA, то попробую набросать функцию сравнения в отдельном модуле. И там поставлю Option Compare на Binary. Тогда оба операнда сравнения не придется выравнивать по длине. Ну это конечно если все пойдет, как хочется мне. И как крайний случай, возьму у Пирсона его функцию QSortCompare. Нашел-таки я у него такое. Светлая ему память! И кстати, у него там я увидел чисто Excel-ную функцию StrComp. Вот не сумел я в Googl`e корректно сформулировать запрос, поэтому он не смог вывести меня на StrComp. Правильно говорил Шекли: "Чтобы правильно задать вопрос, надо знать половину ответа на него". Но диалог с Вами подвел меня к меня к цели. Еще раз спасибо.