Member gok Ответов: 2

как вставить запятую после каждой буквы в Формулу excel


Всем Привет,
Не могли бы вы, пожалуйста, кто-нибудь помочь мне в нижеследующем?

Как вставить запятую после каждой буквы (неограниченный символ) в ячейку с помощью формулы excel, не используя макрос.

например,
Фактический текст : EOAACADA
Мне нужен вывод: E, O, A, A, C,A, D, A

2 Ответов

Рейтинг:
1

Member 12989948

почему бы просто не воспользоваться функцией поиска и замены? Полегче, вот что я сделал,
найдите все или элемент, если его AABBCCDD, а затем замените на A,A, B, B, C, C, D, D

Программирование не требуется.


Рейтинг:
0

CHill60

Если не использовать макрос абсолютно необходимо, то вы будете получать удовольствие ...

Вы можете использовать функцию замены рабочего листа, чтобы заменить "а "на" А " и т. д., Но эта функция очень быстро становится очень длинной...

SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(B4,"A","A,"),"B","B,"),"C","C,"),"D","D,"),"E","E,"),"F","F,"),"G","G,"),"H","H,")

это примерно то же самое, что вы можете получить до того, как Excel 2002 выдаст ошибку.

Таким образом, вам придется иметь скрытые ячейки, чтобы выполнять промежуточные замены.

Я настроил рабочий лист со следующим текстом в ячейке А4
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789

Затем поместил следующие формулы в ячейки от B4 до I4
= SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A4,"A","A,"),"B","B,"),"C","C,"),"D","D,"),"E","E,"),"F","F,"),"G","G,"),"H","H,")
= SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(B4,"I","I,"),"J","J,"),"K","K,"),"L","L,"),"M","M,"),"N","N,"),"O","O,"),"P","P,")
= SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(C4,"Q","Q,"),"R","R,"),"S","S,"),"T","T,"),"U","U,"),"V","V,"),"W","W,"),"X","X,")
= SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(D4,"i","i,"),"j","j,"),"k","k,"),"l","l,"),"m","m,"),"n","n,"),"o","o,"),"p","p,")
= SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(E4,"a","a,"),"b","b,"),"c","c,"),"d","d,"),"e","e,"),"f","f,"),"g","g,"),"h","h,")
= SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(F4,"q","q,"),"r","r,"),"s","s,"),"t","t,"),"u","u,"),"v","v,"),"w","w,"),"x","x,")
= SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(G4,"Y","Y,"),"Z","Z,"),"y","y,"),"z","z,"),"0","0,"),"1","1,"),"2","2,"),"3","3,")
= SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(G4,"4","4,"),"5","5,"),"6","6,"),"7","7,"),"8","8,"),"9","9,")


Ответ, который вам нужен, находится в столбце I, и вам нужно будет скрыть столбцы B - H включительно

Как видите, это действительно ужасно.

Другой вариант-написать надстройку - эта ссылка даст вам отправную точку http://www.pcmag.com/article2/0,2817,715709,00.АСП[^] и вы могли бы просто использовать функцию, подобную
Function AddCommas(s As String) As String

    Dim i As Integer
    Dim sNew As String
    sNew = ""
    For i = 1 To Len(s)
        sNew = sNew + Mid(s, i, 1) + ","
    Next
    AddCommas = sNew
End Function