Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.05.2016, 09:46   #1
duh96
Пользователь
 
Регистрация: 22.02.2013
Сообщений: 18
По умолчанию Нахождение любого первого символа нижнего регистра в строке

Добрый день, уважаемые!
Подскажите, как я могу найти строки в конкретном столбце, которые начинаются с любого символа нижнего регистра?
То есть необходимо отыскать строку, начинающуюся с маленькой буквы или символа в выделенном столбце.
Версия MSOffice: 2010

Благодарю за ранее!

Пример_1.xlsx

Последний раз редактировалось duh96; 14.05.2016 в 10:24. Причина: Добавление данных
duh96 вне форума Ответить с цитированием
Старый 14.05.2016, 10:40   #2
VictorK
Пользователь
 
Регистрация: 24.05.2008
Сообщений: 64
По умолчанию

Чтобы просто найти первый символ строки в нижнем регистре, можно использовать формулу:
Код:
=КОДСИМВ(A1)>223
если ИСТИНА, значит первый символ в нижнем регистре.
Можно сразу заменить найденный символ на верхний регистр:
Код:
=ЕСЛИ(КОДСИМВ(A1)>223;ПОДСТАВИТЬ(A1;СИМВОЛ(КОДСИМВ(A1));СИМВОЛ(КОДСИМВ(A1)-32);1);A1)
PS Эти формулы верны только для символов кириллицы кроме буквы "ё"
VictorK вне форума Ответить с цитированием
Старый 14.05.2016, 11:02   #3
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

см.вложене
Вложения
Тип файла: xlsx Пример_1.xlsx (10.8 Кб, 16 просмотров)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 14.05.2016, 12:31   #4
VictorK
Пользователь
 
Регистрация: 24.05.2008
Сообщений: 64
По умолчанию

Игорь, здОрово, но не совсем правильно. Латинские символы форматируются наоборот - подсвечивается верхний регистр. Пока соображал, как работает Ваша формула УФ, весь мозг сломал Но разобрался!
Так будет правильнее:
Код:
=ЕСЛИ(НЕ(ЕПУСТО(A1));(КОДСИМВ(A1)-97)*(КОДСИМВ(A1)-122)*(КОДСИМВ(A1)-184)*(КОДСИМВ(A1)-184)*(КОДСИМВ(A1)-224)*(КОДСИМВ(A1)-255)<=0;)
VictorK вне форума Ответить с цитированием
Старый 14.05.2016, 14:16   #5
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Спасибо!

согласен, ошибся)
для диапазона содержащего только 1 символ "ё" в произведении дожны были участвовать и верхняя и нижняя его границы (то что эти границы оказались равны между собой - это частный случай)

использовал свое древнее ноу-хау
имеем 2 диапазона Д11...Д12 и Д21...Д22
причем диапазоны заданы не от меньшего значения к большему, а просто 2-мя значениями (т.е. не обязательно Д11 <= Д22)

вычисляем Х = (Д11-Д21)*(Д11-Д22)*(Д12-Д21)*(Д12-Д22)
так вот,

если Х > 0 - диапазоны НЕ ПЕРЕСЕКАЮТСЯ!
иначе пересекаютсяесли или соприкасаются и образуют 1 диапазон габаритами от Мин(Д11,Д12,Д21,Д22) до мах(Д11,Д12,Д21,Д22)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 14.05.2016, 14:30   #6
duh96
Пользователь
 
Регистрация: 22.02.2013
Сообщений: 18
Радость Задача решена!

VictorK, IgorGO, спасибо вам огромное за помощь! Все работает отлично! Моя задача решена.
duh96 вне форума Ответить с цитированием
Старый 14.05.2016, 14:40   #7
duh96
Пользователь
 
Регистрация: 22.02.2013
Сообщений: 18
По умолчанию

IgorGO, я во вложении увидел только подсвеченные ячейки, начинающиеся с маленькой буквы, но не увидел само решение. Оно в какой-то из ячеек было? VictorK где-то нашел формулу )))
duh96 вне форума Ответить с цитированием
Старый 14.05.2016, 14:54   #8
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

поправил формулу согласно замечания VictorK
формула в условном форматировании
Вложения
Тип файла: xlsx Пример_1.xlsx (11.0 Кб, 13 просмотров)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 14.05.2016, 15:10   #9
duh96
Пользователь
 
Регистрация: 22.02.2013
Сообщений: 18
По умолчанию Спасибо

IgorGO, нашел, спасибо за помощь

Programmers are the gods.jpg
duh96 вне форума Ответить с цитированием
Старый 15.05.2016, 15:52   #10
svsh2016
Форумчанин
 
Регистрация: 16.06.2015
Сообщений: 100
По умолчанию

добрый день,вариант макроса кнопки test и повтор

Код:
Sub test()
    Dim z, i&
    z = Range("A1:A" & Range("A" & Rows.Count).End(xlUp).Row).Value
    With CreateObject("VBScript.RegExp"): .Pattern = "^[a-zа-яё]"
        For i = 1 To UBound(z)
        If .test(z(i, 1)) Then Range("A" & i).Font.Color = -16776961: Range("A" & i).Font.Bold = True
        Next
    End With
End Sub
Вложения
Тип файла: xls example_16_05_2016_pr_1.xls (46.5 Кб, 17 просмотров)
svsh2016 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перевод строки из нижнего регистра в верхний. dima1257 Паскаль, Turbo Pascal, PascalABC.NET 12 04.12.2013 18:04
Поиск в строке первого вхождения символа на СИ dannae Помощь студентам 3 26.11.2013 15:05
Нахождение символа в строке и перенос sariman Общие вопросы Delphi 7 25.07.2012 19:48
Преобразовать все буквы нижнего регистра в буквы верхнего регистра druger Помощь студентам 5 18.09.2011 17:27
Паскаль. Поиск первого отличного символа в строке. ddeman666 Помощь студентам 2 04.05.2010 07:37