Excel:如何计算和添加FIND结果的数量?

时间:2017-07-24 09:33:39

标签: excel

我有几行包含文本的单元格。

它们的格式都是这样的。

A1:我的妻子有2个苹果,我有4个苹果 A2:我的狗喜欢3个苹果,我有2个苹果 A3:我们有1个苹果

我想通过" FIND"来传递每个行/单元格文本。公式并返回文本中提到的每行苹果总数。

我有以下内容,但它只匹配" apple"。

的第一个实例
=IFERROR(MID(B305,FIND("apple",B305,1)-7,1),"")

任何人都可以帮我解决这个(看似简单的)问题吗?

2 个答案:

答案 0 :(得分:1)

使用此公式:

=(LEN(A1)-LEN(SUBSTITUTE(A1,"apple","")))/LEN("apple")

根据需要拖动/复制。见图片以供参考。

enter image description here

注意: SUBSTITUTE是一个区分大小写的函数,如果apple在公式中用作Apple,则结果不正确,正如@ gms0ulman在评论中指出的那样。因此可以使用以下公式。

=(LEN(A1)-LEN(SUBSTITUTE(UPPER(A1),UPPER("Apple"),"")))/LEN("Apple")

答案 1 :(得分:1)

我不清楚你是否想要返回提到苹果的次数,或者该行中苹果的总数。

如果您想要该行中的苹果总数,请尝试使用此公式(请注意,我们必须分别搜索applesapple)。

首先输入命名公式(Formula --> Define Name

,其中

seq_99  Refers to   =IF(ROW(INDEX(Sheet1!$1:$65535,1,1):INDEX(Sheet1!$1:$65535,255,1))=1,1,(ROW(INDEX(Sheet1!$1:$65535,1,1):INDEX(Sheet1!$1:$65535,255,1))-1)*99)

然后你可以使用这个公式:

C1: =SUM(IFERROR((TRIM(MID(SUBSTITUTE($A1," ",REPT(" ",99)),seq_99,99))="apples")*TRIM(MID(SUBSTITUTE($A1," ",REPT(" ",99)),seq_99-99,99)),0))+
SUM(IFERROR((TRIM(MID(SUBSTITUTE($A1," ",REPT(" ",99)),seq_99,99))="apple")*TRIM(MID(SUBSTITUTE($A1," ",REPT(" ",99)),seq_99-99,99)),0))

公式是数组公式所以必须通过按 ctrl + shift 输入 Enter

进入

您可以根据需要填写。

公式

  • 将句子拆分为数组
  • 将数组中的每个元素与" apple"
  • 进行比较
  • 如果匹配,则将前面的数组元素
  • 相加

enter image description here