首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Split At @ in excel

Split At @ in excel
EN

Stack Overflow用户
提问于 2017-11-13 04:39:38
回答 2查看 31关注 0票数 0

BOS@TOR 11/10/2017 07:00 ET

LA@TB 11/10/2017 07:00 07

上面是数据,我希望在@处拆分,而不是在列中显示“to”。第一个是离开,第二个是家。

代码语言:javascript
复制
=LEFT(L2,FIND("@",L2)-1)
=RIGHT(L2,FIND("@",L2)*1)

它返回家园: TOR,Home: BOS。太棒了!洛杉矶和结核病也是如此。但是,如果它的BOS@LA,它将返回家园@LA和道路BOS。不管字符数多少,我如何才能删除@?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-11-13 07:11:58

我认为你混淆了=RIGHT(L2,FIND("@",L2)-1)在做什么(我假设你在这个公式上输入错误,认为问题中的那个不能给出你提到的结果)。FIND("@",L2)获取字符串中第一个@的位置,RIGHT从提供的字符串的右侧获取_n_th字符。您会注意到,只有当@位于某个位置时,您才会注意到您当前的公式只会给出一个与您想要得到的部分长度相同的数字加一个。即BOS@TOR在第4位有@,TOR有3个字符长,LA@TB在第3位有@,TB有2个字符长。

拟议解决办法:

使用公式

代码语言:javascript
复制
=MID(L2,FIND("@",L2)+1,LEN(L2))

MID是一个类似于LEFTRIGHT的公式,但它需要一个额外的参数:字符串的长度。FIND("@",L2)+1获取第一个@之后的下一个字符的位置,并且字符串的长度可以至少等于您想要得到的字符串的长度(如果它更大,它仍然很好)。

下面是另一个使用SUBSTITUTE的选项,假设M2是存储主值的地方:

代码语言:javascript
复制
=SUBSTITUTE(L2,M2&"@","",1)

相反,这将获取原始文本,并删除伴随的@签名处的主值,并带有一个空白。最后一个参数表示它只删除"Home+@“的第一个实例(如果您知道只有一个,则可以完全忽略最后一个参数,从而使公式变为=SUBSTITUTE(L2,M2&"@",""))

使用文本到列

选择该列,并在“数据”选项卡中单击“文本到列”选项,选择“分隔”,然后单击下一步:

取消选中所有内容,然后选中最后一个选项“Other”,在框中键入@,然后下一步:

点击finish:

注意:此方法覆盖原始文本,因此如果要保留原始文本,请先在新列中复制文本,然后在该列上拆分。

票数 0
EN

Stack Overflow用户

发布于 2017-11-13 05:01:51

=RIGHT(L2,FIND("@",L2))的问题(顺便说一句,“乘一”是多余的),当您有以下内容时:

代码语言:javascript
复制
BIGSTRING@X

@的位置取决于BIGSTRING的长度,而不是X@的位置是10,BIGSTRING@X的最右边的10个字符不是X,而是IGSTRING@X

这意味着它将适用于类似XYZZY@PLUGH的东西(@两边的大小相同),而不适用于NINECHARS@FOUR (大小不同)。

第一种计算是正确的。对于第二种计算,您应该删除BIGSTRING@的大小,以获得要在右侧提取的所需字符数:

代码语言:javascript
复制
=RIGHT(L2,LEN(L2)-FIND("@",L2))

如果Excel足够聪明地提供了MID公式函数的变体,其中缺少的长度意味着“取字符串的余数”(VBA有此功能),那么您也可以使用=MID(L2,FIND("@",L2)+1)

但是,由于公式MID似乎需要长度,所以我只选择上面提到的RIGHT变量。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47257156

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档