Excel功能拆分单元格

时间:2019-03-10 06:09:06

标签: excel

如果我们不使用VBA,可以使用任何方法在excel中拆分以下单元格吗?

请告知将文本“ ParisFrancePeter”拆分为3个单独的词“ Paris”,“ France”和“ Peter”的方法。

2 个答案:

答案 0 :(得分:0)

'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

答案 1 :(得分:0)

如果您还需要分割三个单词以外的其他单词,则将原始字符串放在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