Страницы: 1
RSS
Как отобразить в ячейке букву со знаком ударения?
 
Добрый день! Подскажите,есть ли способ формулой поставить ударение всем заглавным буквам в ячейке? Я прошу прощения, если данный вопрос поднимался ранее и буду благодарен за ссылку или любую помощь в данном вопросе. Спасибо!

Дополню... в html данная задача решается добавлением спецсимвола, например, вот так: О́ Таким образом к букве О(О) добавляется спецсимвол О́ (О). Есть ли подобное решение в excel?
 
Можно проверить:

Код
="О" & ЮНИСИМВ(769)

Для модераторов - Название темы: Как отобразить в ячейке букву со знаком ударения?

В юникоде есть целый раздел "Комбинируемые диакритические знаки".
Изменено: sokol92 - 28.05.2021 14:14:11
Владимир
 
так для русского языка в А1 текст
Код
=ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1;"Ё";"Ё́");"Е";"Е́");"А";"А́");"О";"О́");"Э";"Э́");"Я";"Я́");"И";"И́");"Ю";"Ю́")
Изменено: Тимофеев - 28.05.2021 14:21:29
 
Тыква, Умник (10 гласных звуков). :)

Но автор спрашивал, вроде бы, о заглавных буквах. Возможно, формулисты придумают изящное решение для подстановки символа легкого ударения (ЮНИСИМВ(769)) после всех заглавных букв Юникода (у меня получается только с помощью очевидной UDF-функции).
Изменено: sokol92 - 28.05.2021 15:10:57
Владимир
 
ТЫква, Умник - удлиняем, не все гласные на клавиатуре нашел сразу
Код
=ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1;"Ё";"Ё́");"Е";"Е́");"А";"А́");"О";"О́");"Э";"Э́");"Я";"Я́");"И";"И́");"Ю";"Ю́");"Ы";"Ы́");"У";"У́")
Изменено: Тимофеев - 28.05.2021 14:38:15
 
Как можно сразу подставить/заменить не прописывая 10 раз?
{"Ё":"Е":"А":"О":"Э":"Я":"И":Ю";:"Ы":"У"};{"Ё́":"Е́":"А́":"О́":"Э́":"Я́":"И́":"Ю́":"Ы́":"У́"}
Изменено: Тимофеев - 28.05.2021 14:38:44
 
Подождем "пограничников"? :)  
Изменено: sokol92 - 28.05.2021 14:55:53
Владимир
 
del
Изменено: Hugo - 28.05.2021 15:04:50
 
Цитата
sokol92 написал:
Подождем "пограничников"?
они на страже
Код
=ПОДСТАВИТЬ(A3;ИНДЕКС($I$2:$I$11;МАКС(ЕЧИСЛО(НАЙТИ($I$2:$I$11;A3))*СТРОКА($A$1:$A$10)));ИНДЕКС($J$2:$J$11;МАКС(ЕЧИСЛО(НАЙТИ($I$2:$I$11;A3))*СТРОКА($A$1:$A$10))))
Лень двигатель прогресса, доказано!!!
 
а без доп столбцов как?
СИМВОЛ({168:192:197:200:206:211:219:221:222:223}) на СИМВОЛ({168:192:197:200:206:211:219:221:222:223})&ЮНИСИМВ(769)
 
Отлично. А для #4 (ударение после всех заглавных букв всех алфавитов)?
Владимир
 
Цитата
Тимофеев написал:
а без доп столбцов как?
прописать эту бадягу внутрь формулы
Код
=ПОДСТАВИТЬ(A3;ИНДЕКС({"Ё":"Е":"А":"О":"Э":"Я":"И":"Ю":"Ы":"У"};МАКС(ЕЧИСЛО(НАЙТИ({"Ё":"Е":"А":"О":"Э":"Я":"И":"Ю":"Ы":"У"};A3))*СТРОКА($A$1:$A$10)));ИНДЕКС({"Ё́":"Е́":"А́":"О́":"Э́":"Я́":"И́":"Ю́":"Ы́":"У́"};МАКС(ЕЧИСЛО(НАЙТИ({"Ё":"Е":"А":"О":"Э":"Я":"И":"Ю":"Ы":"У"};A3))*СТРОКА($A$1:$A$10))))
Лень двигатель прогресса, доказано!!!
 
Чтобы добро не пропало (UDF функция для заглавных букв):
Код
Option Explicit
' Проставляeт знак ударения после заглавных букв текста.
' txt исходный текст
' stressMark символ(ы), который(е) будут проставлены после заглавных букв (умолчание ChrW(769))
Function BoldStressMark(ByVal txt As String, Optional ByVal stressMark) As String
  Dim res As String, mark As String, s As String, n1 As Long, n2 As Long, i As Long, j As Long
  If IsMissing(stressMark) Then
    mark = ChrW(769)
  Else
    mark = stressMark
  End If
  n1 = Len(txt)
  n2 = Len(mark)
  If n1 = 0 Or n2 = 0 Then BoldStressMark = txt: Exit Function
 
  res = Space(n1 * (1 + n2))  ' результат
  j = 0                       ' смещение в res
  For i = 1 To n1
    s = Mid(txt, i, 1)
    j = j + 1
    Mid(res, j, 1) = s
    If s = UCase(s) And s <> LCase(s) Then ' заглавная буква
      Mid(res, j + 1, n2) = mark
      j = j + n2
    End If
  Next i

  If j > 0 Then BoldStressMark = Left(res, j)
End Function
Владимир
 
Цитата
Сергей написал:
прописать эту бадягу внутрь формулы
Код
дополню для таких нубасов как я
вводить нажимая ctrl+shift+Enter
 
Цитата
ander написал:
нажимая ctrl+shift+Enter
Формула должна, вроде бы, и без этого работать.
Изменено: sokol92 - 28.05.2021 16:13:58
Владимир
 
Цитата
sokol92 написал:
Формула должна, вроде бы, и без этого работать.
У меня не сработала, только через массив. Excel 2016
 
Да, Вы правы, нужно вводить как формулу масссива.
Изменено: sokol92 - 28.05.2021 16:13:19
Владимир
 
Формула из 9 не корректно считает допишите еще пару слов с пробелом в столбце А
Изменено: Тимофеев - 28.05.2021 17:09:59
 
Кому корректно кому не корректно автор темы вообще забил на это
Лень двигатель прогресса, доказано!!!
Страницы: 1
Наверх