从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中的字符串中“减去”字符串的主要内容,如果未能解决你的问题,请参考以下文章

如何从当前日期中减去一天然后在 Hive 中转换为字符串

如何减去蜂巢中的项目

从 Excel 工作表中查找并替换所有文本文件中的字符串

从excel中的字符串中删除单词的最简单方法是啥?

如何在迭代期间从列表中减去字符串值?扑

java - 如何从Java中存储日期的给定字符串字段中减去X天? [复制]