Функция Excel для разделения ячеек - PullRequest
0 голосов
/ 10 марта 2019

Если мы не используем VBA, можно ли использовать какие-либо методы для разделения следующей ячейки в Excel?

Посоветуйте, пожалуйста, способы разделения текста «ParisFrancePeter» на 3 отдельных слова «Paris», «France» и «Peter».

Ответы [ 2 ]

0 голосов
/ 10 марта 2019

Если вам нужно разделить не три слова, а затем, с вашей исходной строкой в ​​A1, введите формулу ниже в B1 и заполните до нужного значения:

=IFERROR(MID($A1,IFERROR(AGGREGATE(15,6,1/((CODE(MID($A1,seq,1))>=65)*(CODE(MID($A1,seq,1))<=90))*(seq),COLUMNS($A:A)),""),IF(IFERROR(AGGREGATE(15,6,1/((CODE(MID($A1,seq,1))>=65)*(CODE(MID($A1,seq,1))<=90))*(seq),COLUMNS($A:B)),"")="",99,IFERROR(AGGREGATE(15,6,1/((CODE(MID($A1,seq,1))>=65)*(CODE(MID($A1,seq,1))<=90))*(seq),COLUMNS($A:B)),"")-IFERROR(AGGREGATE(15,6,1/((CODE(MID($A1,seq,1))>=65)*(CODE(MID($A1,seq,1))<=90))*(seq),COLUMNS($A:A)),""))),"")

, где seq - это Именованная формула , которая генерирует массив чисел {1...255} и ссылается на:

  =ROW(INDEX($1:$65535,1,1):INDEX($1:$65535,255,1))

Код вернет начальную точку каждой буквы в верхнем регистре, а затем использует функцию MID для возврата подстроки между этой и следующей заглавной буквой. Затем происходит проверка ошибок.

enter image description here

0 голосов
/ 10 марта 2019
'first word
=REPLACE(A1, AGGREGATE(15, 7, ROW(2:99)/(CODE(MID(A1, ROW(2:99), 1))<=90), 1), LEN(A1), "")
'middle word
=MID(A1, AGGREGATE(15, 7, ROW(2:99)/(CODE(MID(A1, ROW(2:99), 1))<=90), 1), LEN(A1)-AGGREGATE(14, 7, ROW(2:99)/(CODE(MID(A1, ROW(2:99), 1))<=90), 1)+2)
'last word
=REPLACE(A1, 1, AGGREGATE(14, 7, ROW(2:99)/(CODE(MID(A1, ROW(2:99), 1))<=90), 1)-1, "")

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...