计算单元格中出现多less个单词

我有一列人们给出的文字游戏答案,以及所有可能的正确答案的列表。 我试图弄清楚我怎样才能findexcel来计算右边答案列表中有多less单词出现在每个人的答复单元格中。

因此,A列包含人们的回复数据,如下所示:

glare, lake, car rag, clear, gear, lear, cake, glare, rack, keg, car, care, leak, ace cake, lake, lark, car, rake, cage, real, ekl, rage Leak, Rage, Gale, Kale, Rag, Lag, Large, Lack, Real, Rake, Race, Car, Care, Leg, Cage 

以下是所有正确答案的列表:

 grackle, calker, lacker, rackle, argle, cager, carle, clear, clerk, crake, creak, glace, glare, grace, lacer, lager, laker, large, regal, acre, ager, alec, cage, cake, calk, care, cark, carl, clag, crag, earl, egal, gale, gear, geck, kale, lace, lack, lake, lark, leak, lear, race, rack, rage, rake, rale, real, reck, ace, age, ale, arc, are, ark, car, cel, ear, elk, era, erg, gae, gal, gar, gel, kae, kea, keg, lac, lag, lar, lea, leg, lek, rag, rec, reg 

所以第一人写了3个正确的答案,所以B1应该说“3”,B2应该说“12”,B3应该说“8”(不是“9”,因为“ekl”不在正确的答案列表中) , 等等。

我假设这是最好的,而不是一个公式,但我真的不知道从哪里开始,所以任何帮助将惊人的赞赏。 如果解决scheme是基于macros观或基于公式的,那对我来说并不重要。 谢谢!

如果你在列表中有正确的单词,每个单元格一个单词,例如在Z2:Z20中没有空格,那么你可以在B1中使用这个公式

=SUMPRODUCT(ISNUMBER(SEARCH(" "&Z$2:Z$20&","," "&A1&","))+0)

这是一个基于macros(UDF)的解决scheme。 在标准模块中input以下UDF

 Public Function CorrectCount(r1 As Range, r2 As Range) As Long Dim v1 As String, v2 As String CorrectCount = 0 v1 = "," & r1.Value & "," For Each r In r2 v2 = "," & r.Value & "," If InStr(1, v1, v2) > 0 Then CorrectCount = CorrectCount + 1 End If Next r End Function 

用户定义的函数(UDF)非常易于安装和使用:

  1. ALT-F11调出VBE窗口
  2. ALT-I ALT-M打开一个新的模块
  3. 粘贴东西,closuresVBE窗口

如果保存工作簿,则UDF将随之保存。 如果您在2003年以后使用的是Excel版本,则必须将该文件另存为.xlsm而不是.xlsx

要删除UDF:

  1. 如上所示调出VBE窗口
  2. 清除代码
  3. closuresVBE窗口

从Excel中使用UDF:

= myfunction的(A1)

要了解有关macros的更多信息,请参阅:

http://www.mvps.org/dmcritchie/excel/getstarted.htm

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

有关UDF的具体信息,请参阅:

http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx

macros必须启用这个工作!

以下是列F中正确答案列表的示例:

演示