任何想法如何显示单元格A1中的值:
English; German; French; Spanish; Finnish; Russian
以这种方式使用Excel公式吗?
A2 English
A3 German
A4 French
A5 Spanish
A6 Finnish
A7 Russian
答案 0 :(得分:4)
从Excel 2013开始,您可以使用FILTERXML
。您可以将此公式放在A2
中:
=INDEX(FILTERXML("<t><s>"&SUBSTITUTE($A$1,"; ","</s><s>")&"</s></t>","//s"),ROW(A1))
向下拖动...
但是,另一个答案是减少键入=)
答案 1 :(得分:3)
将此内容放入A2并复制下来:
=TRIM(MID(SUBSTITUTE($A$1,";",REPT(" ",999)),(ROW(1:1)-1)*999+1,999))
ROW(1:1)
只是一个计数器,对于第一个单元格,无论其放在公式的位置还是引用单元格的位置,都应始终为1:1
。它会自动复制到2:2
,然后移到3:3
。公式就是这样知道要返回哪个。
一旦发布了动态数组公式(当前仅适用于Office Insiders),我们可以使用SEQUENCE代替ROW,只需将公式放在第一个单元格中,而无需向下复制,Excel会填写休息:
=TRIM(MID(SUBSTITUTE(A1,";",REPT(" ",999)),SEQUENCE(LEN(A1)-LEN(SUBSTITUTE(A1,";",""))+1,,0)*999+1,999))
为了缩短公式,我们可以使用简单的UDF使用Split()
返回值的数组:
Function MYSPLIT(STR As String, del As String) As String()
MYSPLIT = SPLIT(STR, del)
End Function
然后它是一个简单的INDEX公式:
=INDEX(MYSPLIT($A$1,";"),ROW(1:1))
然后抄下来。
或者释放动态阵列时:
=TRASPOSE(MYSPLIT($A$1,";"))
仅在第一个单元格中。
答案 2 :(得分:1)
仅供参考,如果您使用的是Excel 2010 Professional Plus或更高版本的Excel,则可以使用 Power Query 解决此问题(但是,如果您只处理一个单元格或少量单元格数据,这种方法可能是一个过大的选择。
首先,将数据加载到电源查询编辑器中;
其次,突出显示相关的列,使用Transform
标签下的 Split Columns 功能用分号;
分隔值,然后在高级设置中选择将结果进入行。然后,您应该具有所需的列表。
最后关闭输出并将其加载到新的工作表中(默认情况下)。
如果您有任何疑问,请告诉我。干杯:)
答案 3 :(得分:0)
假设输入A1:
English; German; French; Spanish; Finnish; Russian
然后,复制A1
并粘贴到A2
选择A2 >> Ctrl + H >>查找内容:输入:“ ;
”(不带引号)>>替换为:(保留空白)>>按“全部替换” >>关闭
A2变为:
English German French Spanish Finnish Russian
将列A的宽度减小到宽:8.00
(61像素)
选择A2
>> Editing
>> Fill
,选择Justify
>>确定>>完成
最终成为:
A2 English
A3 German
A4 French
A5 Spanish
A6 Finnish
A7 Russian