首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计算一个列表中显示在一个单元格中的单词数。

计算一个列表中显示在一个单元格中的单词数。
EN

Stack Overflow用户
提问于 2014-12-30 16:49:16
回答 2查看 808关注 0票数 0

我有一列人们给出的文字游戏答案,以及所有可能的正确答案的列表。我试图找出如何让excel计算正确答案列表中的单词中有多少出现在每个人的响应单元格中。

因此,A列包含了人们的响应数据,如下所示:

代码语言:javascript
复制
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

以下是所有正确答案的清单:

代码语言:javascript
复制
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“不在正确答案列表中)等等。

我假设这是最好的一个宏,而不是一个公式,但我真的不知道从哪里开始,因此,任何帮助将是令人惊讶的感谢。对于我来说,解决方案是基于宏还是基于公式并不重要。谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-12-30 17:12:38

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

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

票数 2
EN

Stack Overflow用户

发布于 2014-12-30 17:13:53

下面是一个基于宏(UDF)的解决方案。在标准模块中输入以下UDF

代码语言:javascript
复制
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. 粘贴内容并关闭VBE窗口

如果您保存了工作簿,那么UDF将与它一起保存。如果您在2003年晚些时候使用Excel版本,则必须将该文件保存为.xlsm而不是.xlsx。

要删除UDF,请执行以下操作:

  1. 打开上面的VBE窗口
  2. 清除代码
  3. 关闭VBE窗口

要使用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列中:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27709285

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档