excel的公式

时间:2014-03-23 10:05:29

标签: excel excel-formula

请帮助我,找到excel的公式,它会获取文本中的所有单词(例如,来自A列的文本)并提供文本中的所有单词,而不会在B列中重复。

例如,

A栏 文字

虽然简单是一种美德,但如果它们是黑白的,那么关于教育学的理论在实践中就不起作用。要说最好的教学方法只是赞扬积极的行为,而忽视消极的行为就像是说草莓可以减少患癌症的风险,所以人们应该从他们的饮食中减少苹果,只吃草莓。在这两种情况下,都没有必要做出选择。

B栏 - 来自文字的文字

虽然
 简单

 一个
 美德,
 理论
关于
 教育学
 做
 不
工作

实践
如果
他们



白色。
为了



最好
方式



只有

好评
积极
行动


忽略

那些




草莓
减少
一个人的
风险
对于
癌症
所以

应该

苹果


的 他们
饮食

只有

草莓。


的情况下,

确实




一个
选择。

2 个答案:

答案 0 :(得分:1)

对于单个公式来说,这是一个相当复杂的事情....这是一个方法......

第1部分:将文字拆分为单个字词:

  • A1:你的文字
  • A3:=SUBSTITUTE(A1,",","") ....删除逗号
  • A5 = =SUBSTITUTE(A3,".","") ....删除句号(对于您可能有的其他标点重复此操作
  • A8:常数0
  • A9:=FIND(" ",$A$5,A8+1) ....在上面的单元格指示的位置后找到$ A $ 5中的第一个空白....将此公式复制下来,直到您收到第一个#VALUE错误< / LI>
  • B9:=MID($A$5,A8+1,A9-A8-1) ....在之前和此空白位置之间提取单词....将此公式复制下来,直到您收到第一个#VALUE错误

如果您对拆分列表感到满意,请复制/粘贴列表中的值并执行一些标题

enter image description here

第2部分:找到独特的字词:

您需要准确找到每个唯一单词一次。严格没有VBA的方法包括以下内容:

  • 对B列中的文字进行升序排序
  • 输入C8:=IF(B8=B7,C7+1,1)并复制到列表末尾...您创建一个“以1开头的运行编号,只要该单词保持不变,就会继续增加
  • autofilter column C for value = 1 ...这将显示每个单词的第一个出现
  • 将过滤后的列表复制/粘贴到您希望存储的位置以供进一步处理...我建议使用与原始数据不同的表格

enter image description here

您可以通过对A列中的数值进行排序来恢复结果的原始排序顺序。

正如您在单词“in”,“to”的示例中所看到的,此方法不区分大小写。限制是“一个”和“一个”之间可能的错误分离......这需要决定。

答案 1 :(得分:0)

您可以尝试以下公式:

=TRIM(MID(SUBSTITUTE($A$1;" ";REPT(" ";LEN($A$1)));1+(ROW(A1)-1)*LEN($A$1);LEN($A$1)))

假设在A1中测试,在B1中写下公式并向下复制,直到你得到最后一个字

根据您的区域设置,您可能需要替换“;”通过“,”