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

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

它们都是这样格式化的。

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

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

我有以下但它只匹配“苹果”的第一个实例。

=IFERROR(MID(B305,FIND("apple",B305,1)-7,1),"") 

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

使用这个公式:

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

根据需要拖放/复制。 看图像以供参考。

在这里输入图像说明

注意: SUBSTITUTE是一个区分大小写的函数,如果在公式中使用Apple作为Apple ,就会得到不正确的结果,正如@gms0ulman在注释中指出的那样。 因此可以用下面的公式代替。

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

我不清楚你是否想要返回苹果被提及的次数,或苹果的总数。

如果你想要苹果的总数,那么试试这个公式(注意,我们必须分别searchapplesapple )。

首先input一个命名公式( 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”
  • 如果匹配,则会将前面的数组元素相加

在这里输入图像说明