Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 计算一个单元格中列表中出现的单词数_Excel - Fatal编程技术网

Excel 计算一个单元格中列表中出现的单词数

Excel 计算一个单元格中列表中出现的单词数,excel,Excel,我有一列人们给出的文字游戏答案,以及所有可能正确答案的列表。我想知道如何让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, Kal

我有一列人们给出的文字游戏答案,以及所有可能正确答案的列表。我想知道如何让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”不在正确答案列表中),等等


我假设这最好是用宏而不是公式来完成的,但我真的不知道从哪里开始,所以我非常感谢您的帮助。解决方案是基于宏还是基于公式,对我来说并不重要。谢谢大家!

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


=SUMPRODUCT(ISNUMBER(搜索(“&Z$2:Z$20&“,”,“&A1&“,”))+0)
如果列表中有正确的单词,每个单元格一个单词,例如在
Z2:Z20
中没有空格,则可以在B1中使用此公式


=SUMPRODUCT(ISNUMBER(搜索(“&Z$2:Z$20&“,”,“&A1&“,”))+0)
如果列表中有正确的单词,每个单元格一个单词,例如在
Z2:Z20
中没有空格,则可以在B1中使用此公式


=SUMPRODUCT(ISNUMBER(搜索(“&Z$2:Z$20&“,”,“&A1&“,”))+0)
如果列表中有正确的单词,每个单元格一个单词,例如在
Z2:Z20
中没有空格,则可以在B1中使用此公式

=SUMPRODUCT(ISNUMBER(搜索(“&Z$2:Z$20&“,”,“&A1&“,”))+0)
这是一个基于宏(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)非常易于安装和使用:

  • ALT-F11将显示VBE窗口
  • ALT-I ALT-M打开一个新模块
  • 粘贴内容并关闭VBE窗口
  • 如果保存工作簿,则自定义项将与工作簿一起保存。 如果在2003年以后使用Excel版本,则必须保存 文件的格式为.xlsm而不是.xlsx

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

  • 如上所述打开VBE窗口
  • 清除代码
  • 关闭VBE窗口
  • 要使用Excel中的自定义项,请执行以下操作:

    =myfunction(A1)

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

    有关自定义项的详细信息,请参见:

    必须启用宏才能工作

    下面是一个示例,其中正确答案列表位于F列中:

    这是一个基于宏(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)
    非常易于安装和使用:

  • ALT-F11将显示VBE窗口
  • ALT-I ALT-M打开一个新模块
  • 粘贴内容并关闭VBE窗口
  • 如果保存工作簿,则自定义项将与工作簿一起保存。 如果在2003年以后使用Excel版本,则必须保存 文件的格式为.xlsm而不是.xlsx

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

  • 如上所述打开VBE窗口
  • 清除代码
  • 关闭VBE窗口
  • 要使用Excel中的自定义项,请执行以下操作:

    =myfunction(A1)

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

    有关自定义项的详细信息,请参见:

    必须启用宏才能工作

    下面是一个示例,其中正确答案列表位于F列中:

    这是一个基于宏(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)
    非常易于安装和使用:

  • ALT-F11将显示VBE窗口
  • ALT-I ALT-M打开一个新模块
  • 粘贴内容并关闭VBE窗口
  • 如果保存工作簿,则自定义项将与工作簿一起保存。 如果在2003年以后使用Excel版本,则必须保存 文件的格式为.xlsm而不是.xlsx

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

  • 如上所述打开VBE窗口
  • 清除代码
  • 关闭VBE窗口
  • 要使用Excel中的自定义项,请执行以下操作:

    =myfunction(A1)

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

    有关自定义项的详细信息,请参见:

    必须启用宏才能工作

    下面是一个示例,其中正确答案列表位于F列中:

    这是一个基于宏(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)
    非常易于安装和使用:

  • ALT-F11将显示VBE窗口
  • ALT-I ALT-M打开一个新模块
  • 粘贴内容并关闭VBE窗口
  • 如果保存工作簿,则自定义项将与工作簿一起保存。 如果在2003年以后使用Excel版本,则必须保存 文件的格式为.xlsm而不是.xlsx

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

  • 如上所述打开VBE窗口
  • 清除代码
  • 关闭VBE窗口
  • 要使用Excel中的自定义项,请执行以下操作:

    =myfunction(A1)

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

    有关自定义项的详细信息,请参见:

    必须启用宏才能工作

    下面是一个示例,其中正确答案列表位于F列中:


    Wait,所有数据仅在A列中?是的,所有数据仅在A列中,用逗号Wait分隔,所有数据仅在A列中?是的,所有数据仅在A列中,用逗号Wait分隔,所有数据