Профессиональные приемы работы в Microsoft Excel

Пожалуйста, войдите или зарегистрируйтесь.


Расширенный поиск  

Новости:

Теперь на форум можно залогиниться / зарегистрироваться с помощью ВКонтакте. Уже существующие пользователи могут связать свою учетную запись с аккаунтом ВКонтакте одним кликом в профиле пользователя http://forum.msexcel.ru/index.php?action=profile;area=account

Автор Тема: Сравнение текстовых данных, чувствительное к регистру  (Прочитано 96 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Gutstadt

  • Новичок
  • *
  • Уважение: +0/-0
  • Оффлайн Оффлайн
  • Сообщений: 3

Добрый день.
Вопрос вроде бы простой -- как сравнивать текстовые данные на ">", "<" чтобы, например, строчная "А" и прописная "а" не считались одинаковыми. Ну чтобы "Аа22" и "АА345" уже  по второму символу разошлись, "как в море корабли". Понятно, что речь не идет о функции СОВПАД.
Записан

Serge 007

  • Администратор
  • Ветеран
  • *****
  • Уважение: +341/-0
  • Оффлайн Оффлайн
  • Сообщений: 2 961
    • Мир Excel

Здравствуйте

В Excel есть функция НАЙТИ()
Эта функция как раз различает прописные и строчные буквы

Так же можно использовать функцию КОДСИМВ()
У одинаковых букв разные коды в разных регистрах

Например код символа "А" - 192, а  код символа "а" - 224


PS Кстати, функцией СОВПАД() тоже можно воспользоваться, как и побуквенному сравнению с помощью функции ПСТР()
Записан
Бесплатная помощь: www.excelworld.ru
Платная помощь: sergeyizotov@excelworld.ru
Яндекс-деньги: 41001419691823 | WMR:126292472390

Gutstadt

  • Новичок
  • *
  • Уважение: +0/-0
  • Оффлайн Оффлайн
  • Сообщений: 3

Добрый вечер, Сергей.
Из Ваших слов я понял, что встроенной (собственной) функции сравнения (а-ля "<" или ">") в Excel нет. Значит придется писать свою UDF. А функцию EXACT  никак не смогу приспособить: она же говорит лишь "=" или "not =", но никак не "<" или ">". Пороюсь в Инете, может у Пирсона что-то встретится. Но быстрее написать своё. Спасибо, что помогли однозначно определиться с моей проблемкой.
Записан

Serge 007

  • Администратор
  • Ветеран
  • *****
  • Уважение: +341/-0
  • Оффлайн Оффлайн
  • Сообщений: 2 961
    • Мир Excel

...встроенной (собственной) функции сравнения (а-ля "<" или ">") в 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"
Записан
Бесплатная помощь: www.excelworld.ru
Платная помощь: sergeyizotov@excelworld.ru
Яндекс-деньги: 41001419691823 | WMR:126292472390

Gutstadt

  • Новичок
  • *
  • Уважение: +0/-0
  • Оффлайн Оффлайн
  • Сообщений: 3

Добрый вечер, Сергей.
Все Ваши предложения интересны и, не побоюсь этого слова, назидательны. Но раз уж решил уйти в VBA, то попробую набросать функцию  сравнения в отдельном модуле. И там поставлю Option Compare на Binary. Тогда оба операнда сравнения не придется выравнивать по длине. Ну это конечно если все пойдет, как хочется мне. И как крайний случай, возьму у Пирсона его функцию QSortCompare. Нашел-таки я у него такое. Светлая ему память! И кстати, у него там я увидел чисто Excel-ную функцию StrComp. Вот не сумел я в Googl`e корректно сформулировать запрос, поэтому он не смог вывести меня на StrComp. Правильно говорил Шекли: "Чтобы правильно задать вопрос, надо знать половину ответа на него". Но диалог с Вами подвел меня к меня к цели. Еще раз спасибо.
Записан
 



Темы без ответов

24.01.2020 14:03 На диаграмме Ганта несоответствие оси Y 1036
09.08.2019 14:09 Макрос для заполнения таблиц через форму 2779
18.07.2019 16:02 Рассылка почты из Excel при помощи почтовой программы TheBAT! 2403
09.07.2019 20:39 Кредит с уменьшением периода выплат 2496
28.05.2019 21:09 Сделать несколько скриптов для рабочей таблицы 3191
05.03.2019 17:00 Последовательный вывод таблиц Excel в один документ Word без шаблона 3108
05.03.2019 09:29 Нежелательные изменение размеров колонтитула при редактировании 2867
07.02.2019 01:36 Как удалить дубликаты из выпадающего связанного списка? 2985
20.01.2019 12:38 Все варианты частичного суммирования 3193
13.01.2019 12:24 Заполнение диапазона числами - в виде кластеров 2560





Яндекс цитирования msexcel.ru Яндекс.Метрика

Страница сгенерирована за 0.12 секунд. Запросов: 105.