Excel 从没有一致模式的数据中提取

Excel 从没有一致模式的数据中提取

数据快照

我有一个巨大的数据集,其中有一列的格式如上所示。问题是我想从该列中提取(剪切)城市名称(例如,如下所示的梵蒂冈)并将其复制到其右侧另一列,该列为空。

但是这里的问题是,许多记录都没有关于城市的信息。那么是否可以从列中剪切(如果列的前几个字符中有“-”或“:”,则从该列剪切并粘贴到同一行但相邻的列中)?或者还有其他方法可以做到这一点?

期望输出在此处输入图片描述

答案1

=LEFT()您可以使用和的组合=SEARCH()

SEARCH给出字符串中字符的位置并LEFT返回所需位置左侧的每个字符。

例如,对于 A1 中的单元格内容 =VATICAN - The Pope...
=SEARCH("-",A1)将为您提供6
=LEFT(A1,6)将为您提供VATICAN -
并且组合
=LEFT(A1,SEARCH("-",A1))将返回VATICAN -

对于任何其他字符,例如 ie;:

请注意,该LEFT()函数还会获取搜索到的字符。您可以在函数-1后面附加一个SEARCH()以避免这种情况。


如果找不到该字符,您将收到一个错误,这是解决它的方法:
=IFERROR(RETURN,RETURN_IF_ERROR)

例如,如果您想写(未知),您应该使用
=IFERROR(LEFT(A1,SEARCH("-",A1)-1),"unknown"),但您也可以只输入 ,将其留空""


级联:

您可以多次连接此公式以获得不同的字符。请记住,Excel 将使用公式 ltr。

如果您要搜索"-",并且未找到,则":"可以使用:

=IFERROR(LEFT(A1,SEARCH("-",A1)-1),IFERROR(LEFT(A1,SEARCH(":",A1)-1),"unknown"))

编辑:

如果你只想查看前 20 个字符,只需更改SEARCH("-",A1)SEARCH("-",LEFT(A1,20))

相关内容