从excel中的字符串中“减去”字符串
Posted
技术标签:
【中文标题】从excel中的字符串中“减去”字符串【英文标题】:"Subtracting" strings from a string in excel 【发布时间】:2018-05-14 14:25:12 【问题描述】:我有一个 Excel 工作表只有一列,其中包含 50 行以逗号分隔的文本。逗号的数量在表格中以随机间隔增加。每添加一个逗号,就会在现有字符串的随机位置添加一个新词:
FALSE,TRUE,TRUE,TRUE,FALSE
FALSE,TRUE,TRUE,TRUE,FALSE
FALSE,TRUE,TRUE,FALSE
FALSE,TRUE,TRUE,FALSE
TRUE,TRUE,FALSE
TRUE,TRUE,FALSE
TRUE,TRUE
TRUE,TRUE
TRUE,TRUE
TRUE
我想在每一行中查找要添加到字符串中的内容,例如:
N/A
TRUE
N/A
FALSE
N/A
FALSE
N/A
N/A
TRUE
N/A
到目前为止,我已尝试将每一行(例如第 2 行)与其下方的行(第 3 行)进行比较,并使用搜索功能从第 2 行中删除第 3 行中的文本:
=(ISERROR(SEARCH(Q52,Q51,1)),Q51,RIGHT(Q51,LEN(Q51)-LEN(Q52)))
如果将新文本添加到字符串的开头或结尾,则此方法有效,但如果将新文本添加到字符串的中间,则无效。有人知道解决方法吗?
【问题讨论】:
你能解释一下输入/输出吗?2
在哪里添加TRUE
?看起来和1
一样吗?编辑:哦,你是从下往上开始的吗?新词 always 在字符串的末尾吗?还是可以加在中间?
是的,它是从下往上开始的。新词随机添加到现有字符串中,即可以添加到中间、开头、结尾等。
【参考方案1】:
使用,
=IF(A2="",NA(),IF(LEN(A1)-LEN(SUBSTITUTE(A1,"TRUE",""))<>LEN(A2)-LEN(SUBSTITUTE(A2,"TRUE","")),"TRUE",IF(LEN(A1)-LEN(SUBSTITUTE(A1,"FALSE",""))<>LEN(A2)-LEN(SUBSTITUTE(A2,"FALSE","")),"FALSE",NA())))
将真假数与下面的数进行比较并返回差值。
【讨论】:
对于 TRUE/FALSE 二进制文件,这是一个很好的解决方案。但是,是否有一个模棱两可的解决方案可以用于添加随机文本? @bm13563 那么您的示例应该表明它是随机文本,而不仅仅是 True 或 False。 @bm13563 你需要 vba 而不是公式。 明白,我会将问题标记为已回答,因为您的解决方案适用于发布的示例。然后,我将在 vba 论坛上发布相同的问题,并附上一个改编的示例。【参考方案2】:也许这也有帮助,它允许多次添加
=IF(LEN(SUBSTITUTE(B4,"TRUE","0"))=LEN(SUBSTITUTE(SUBSTITUTE(B4,"TRUE","0"),"0","")),0,LEN(SUBSTITUTE(B4,"TRUE","0"))-LEN(SUBSTITUTE(SUBSTITUTE(B4,"TRUE","0"),"0","")))
https://i.stack.imgur.com/4XlkI.png
https://i.stack.imgur.com/FZlOL.png
【讨论】:
【参考方案3】:在非 TRUE/FALSE 绑定的情况下,即文本是随机的而不是 TRUE/FALSE,这是一个非常优雅的解决方案。
How can I tell the differences between two strings in Excel?
【讨论】:
以上是关于从excel中的字符串中“减去”字符串的主要内容,如果未能解决你的问题,请参考以下文章