Страницы: 1
RSS
Извлечь из ячейки строчные буквы
 
Уважаемые эксперты, у меня стоит с одной стороны тривиальная задача: есть колонка А:А, из неё нужно достать только прописные буквы. Вроде бы просто, но не могу с этим справиться уже второй день.
 
nj t
Цитата
Vladyslav Ivanov написал:
из неё нужно достать только прописные буквы.
то есть из
Насіння дині ГОЛДІ F1 / GOLDI F1
должно  получится
НГОЛДІFGOLDIF
так?
:D
Может даже  лучшему что у вас не получилось.
По вопросам из тем форума, личку не читаю.
 
Прошу прощения, не прописные, а строчные буквы.
То есть Семена дыни КРЕДО F1/ CREDO F1 дожно выйти  "емена дыни"
 
Цитата
Vladyslav Ivanov написал:
не прописные, а строчные буквы.
ну как бы пробел и нашим и вашим выходит, но не суть.

исходя из вашего примера вам нужно получить между первой и второй прописной. Так?
По вопросам из тем форума, личку не читаю.
 
Бывают также такие варианты
"Семена белокачанной капусты БРИГАДИР F1/ BRIGADIR F1" должно стать "емена белокачанной капусты"
или
"Семена огурца РАТНИК (315) F1 / RATNIK (315) F1 корнишон" должно стать "емена огурца корнишон"
 
Версия Excel какая?
По вопросам из тем форума, личку не читаю.
 
2016. :)  
Владимир
 
sokol92,  я про наличие а не про то, в какой файло сделано  :D
По вопросам из тем форума, личку не читаю.
 
Здравствуйте, Михаил! Сейчас, подберу какие-нибудь параметры...
Владимир
 
Владимир, тема другая :-)
По вопросам из тем форума, личку не читаю.
 
Все получилось

Сначала извлек ПРОПИСНЫЕ буквы и символы
Код
Function Zaglav (S As String) As String
Dim I As Long
Dim s1 As String
For I = 1 To Len(S)
s1 = Mid(S, I, 1)
If s1 = UCase(s1) Then Zaglav = Zaglav & s1
Next I
End Function

потом воспользовавшишь формулой ПОДСТАВИТЬ на "" оставил в ячейке только строчные буквы. ;)
 
По вашему решению не понял последней стадии - как вы убрали английские заглавные буквы и цифры? Делали вручную замену?

замените функцию UCase на Like
Изменено: Marat Ta - 13.02.2021 19:31:00
 
Так будет быстрее:

Код
' Возвращает строчные буквы и пробелы
Function LowerLetters(txt As String) As String
  Dim i As Long, j As Long, res As String, s As String
  res = txt
  For i = 1 To Len(txt)
    s = Mid(txt, i, 1)
    If (LCase(s) <> UCase(s) And s = LCase(s)) Or s = " " Then j = j + 1: Mid(res, j, 1) = s   ' строчные буквы и пробелы
  Next i
  If j > 0 Then LowerLetters = Trim(Left(res, j))
End Function
Исправьте, пожалуйста, сообщение #11, выделив код с помощью кнопки <...>
Владимир
 
Насколько я понял, нужен только русский алфавит...
см. 5 сообщение в теме.
Код
Function Zaglav (S As String) As String
Dim I As Long
Dim s1 As String
For I = 1 To Len(S)
s1 = Mid(S, I, 1)
If s1 Like "[а-я ]" then Zaglav = Zaglav & s1
Next I
End Function
 
Цитата
Marat Ta написал:
Насколько я понял, нужен только русский алфавит...
ага, ведь
Насіння дині это русским по белому :-)
По вопросам из тем форума, личку не читаю.
 
Vladyslav Ivanov, здравствуйте
Выделите диапазон (можно несколько областей через Ctrl) и запустите макрос - он оставит только кириллицу в нижнем регистре или пустоту, если её нет
Странно, что никто не вспомнил про регулярки
Изменено: Jack Famous - 15.02.2021 10:27:45 (Коррекция кода)
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
вариант на pq
Код
let
    a = Table.DuplicateColumn(Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content], "Столбец1", "old"),
    b = Table.AddIndexColumn(a, "№", 1),
    c = Table.SplitColumn(b, "Столбец1", Splitter.SplitTextByAnyDelimiter({"А".."Я", "A".."Z"}), {"q", "new"})[[#"№"], [old], [new]]
in
    c
Страницы: 1
Наверх