Страницы: 1
RSS
Текст в ячейке разбить на буквы в ячейках
 
Перелопатил поиск. Нашел только разбиение текста по словам. У меня же задача более заковыристая. Нужно текст разбить по буквам. Пробелы и знаки препинания можно не учитывать. И каждая буква чтобы была в своей заданной ячейке.
Есть мысли по этому поводу?
Заранее спасибо
 
А такая формула не устроит?
Код
=ПСТР($A$2;СТОЛБЕЦ();1)
 
Код
=ПСТР(ПОДСТАВИТЬ($A2;" ";);СТОЛБЕЦ(A1);1)
PS/ Почему в формулы, где "";) и т.п. постоянно проникают смайлы?
приходится редактировать постоянно - не удобно.
в PS даже редактирование не помогло, но ладно - это текст, но тэги?..
Изменено: Catboyun - 19.05.2015 19:19:22
 
Цитата
можно не учитывать
не категорично.
 
Цитата
flettcher написал: Перелопатил поиск.
Да ну?! ) Первая же ссылка в поиске
 
Вот написать "буквенный ряд..." чего то у меня не хватило соображалки))) "Не забивайте камнями..." )
Раз уже тема открылась и у меня появилась дополнительная задача, спрошу:
Catboyun, gling,  спасибо. Оба примера меня вполне устраивают, но выяснилось что текст в ячейке может быть большим, и протягивать вправо формулу до бесконечности неудобно. Есть ли способ задать границу в столбцах, чтобы переносились буквы на следующую строку?

Я заранее извиняюсь, не большой специалист в Excel. В чем могу разобраться - делаю сам. Но тут затык.  
Изменено: flettcher - 21.05.2015 14:05:04
 
flettcher, кнопка цитирования не для ответа.
Исправьте свое сообщение
 
Можно на 15 знаков, Тянуть вправо и вниз.
Код
=ЕСЛИ(СТОЛБЕЦ(A1)>15;"";ПСТР($A$2;(СТРОКА(A1)-1)*15+СТОЛБЕЦ(A1);1))
 
Цитата
flettcher написал: Вот написать "буквенный ряд..." чего то у меня не хватило соображалки
А я тоже такой запрос не писал)) Посмотрите в строке запроса - что у меня написано? :-)
 
gling, Спасибо огромное!!! Все отлично. Все работает. Подправил кое-что. Благодарен.  
 
Код
Sub temp()
Dim arr() As Variant
param = 2
rws = ActiveCell.Row + 1
col = ActiveCell.Column
x = ActiveCell.FormulaLocal
lng = Len(x)
b = 1
prm = 0

ReDim Preserve arr(1 To lng)
For i = 1 To lng
y = Mid(x, i, 1)
arr(i) = y
    Next
 
For i = 1 To lng

Cells(rws + b - 1, col + i - 1) = arr(i)
prm = prm + 1
If prm = param Then
b = b + 1
prm = 0
col = col - param
End If
Next
End Sub

переменной param присваиваете количество столбцов для использования
Изменено: TImmy - 22.05.2015 02:46:51
 
TImmy, код следует оформлять соответствующим тегом.
 
А можно сделать чтобы буквы были автоматически заменены на заглавные
«В начале было Слово, и Слово было у Бога, и Слово было Бог»
В оригинальном тексте на древнегреческом языке на месте «Слова» стоит «ὁ Λόγος (Логос)». Еще оно переводится как «ум», «основа», «утверждение», «разумение», «значение», «доказательство»...
 
Марина Русалева, какие буквы именно? Раз уж подняли тему 15го года то уж более подробно пишите что нужно, если конечно это связано с решением этой темы.
По вопросам из тем форума, личку не читаю.
 
А можно в формуле =ПСТР(ПОДСТАВИТЬ($A2;" ";);СТОЛБЕЦ(A1);1) учитывать пробелы? Чтобы в ячейках по буквам получалось не ИванПетрович, а Иван Петрович, то есть одна из ячеек была пустой в качестве пробела.
 
Для современных версий Excel протягивать не надо
Код
=WRAPROWS(TRANSPOSE(MID(A2,SEQUENCE(LEN(A2)),1)),15,"")
 
В коде и файле формулы отличаются. Разница в языковых версиях excel?
Так же при изменении текста в ячейке А2 формула сразу слетает с ошибкой "недопустимое имя".
Для примера файл со значениями каких добиваюсь. Есть некая анкета с каждой буквой в отдельной ячейке, вот и заморачиваюсь, чтобы на одном листе вносить данные в одну ячейку, а на другом бы получалась каждая буква в отдельной. Уперся только в пробелы.
Изменено: ktcmax - 11.06.2025 10:09:52
 
Power Query
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    #"Replaced Value" = Table.ReplaceValue(Source," ","",Replacer.ReplaceText,{"ТЕКСТ"}),
    #"Split Column by Position" = Table.SplitColumn(#"Replaced Value", "ТЕКСТ", Splitter.SplitTextByRepeatedLengths(1), {"ТЕКСТ.1", "ТЕКСТ.2", "ТЕКСТ.3", "ТЕКСТ.4", "ТЕКСТ.5", "ТЕКСТ.6", "ТЕКСТ.7", "ТЕКСТ.8", "ТЕКСТ.9", "ТЕКСТ.10", "ТЕКСТ.11", "ТЕКСТ.12", "ТЕКСТ.13"})
in
    #"Split Column by Position"
Изменено: jakim - 11.06.2025 11:50:24
 
jakim, спасибо. но в моем случае как-то трудноприменимо. У меня данные в таблицах на разных листах, да и строки с разных столбцов начинаются. Замучаешься запросы делать.
 
Цитата
ktcmax написал:
А можно в формуле =ПСТР(ПОДСТАВИТЬ($A2;" ";);СТОЛБЕЦ(A1);1) учитывать пробелы?

Можно - уберите ПОДСТАВИТЬ
Код
=ПСТР($A2;СТОЛБЕЦ(A1);1)
 
Михаил Нарвич, премного благодарен. Всё в лучшем виде получилось.
Страницы: 1
Читают тему
Наверх