我有一列人们给出的文字游戏答案,以及所有可能的正确答案的列表。我试图找出如何让excel计算正确答案列表中的单词中有多少出现在每个人的响应单元格中。
因此,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“不在正确答案列表中)等等。
我假设这是最好的一个宏,而不是一个公式,但我真的不知道从哪里开始,因此,任何帮助将是令人惊讶的感谢。对于我来说,解决方案是基于宏还是基于公式并不重要。谢谢!
发布于 2014-12-30 17:12:38
如果列表中有正确的单词,每个单元格有一个单词,例如在Z2:Z20中没有空格,那么您可以在复制的B1中使用这个公式。
=SUMPRODUCT(ISNUMBER(SEARCH(" "&Z$2:Z$20&","," "&A1&","))+0)
发布于 2014-12-30 17:13:53
下面是一个基于宏(UDF)的解决方案。在标准模块中输入以下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)非常容易安装和使用:
如果您保存了工作簿,那么UDF将与它一起保存。如果您在2003年晚些时候使用Excel版本,则必须将该文件保存为.xlsm而不是.xlsx。
要删除UDF,请执行以下操作:
要使用Excel中的UDF:
=myfunction(A1)
要了解有关宏的更多信息,请参见:
http://www.mvps.org/dmcritchie/excel/getstarted.htm
和
http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx
关于联合发展基金的具体情况,见:
http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx
必须启用宏才能使其工作!
下面是一个示例,其中正确答案的列表在F列中:

https://stackoverflow.com/questions/27709285
复制相似问题