Excel:检查值的发生,比较内容与范围和设定值

我尝试在Excel中结合几个函数,对于那个特殊的问题,我找不到解决scheme。

我想检查一个值是否包含在一个行中多次 。 如果是这样,我必须得到所有匹配的值。 我不想给出所有匹配的内容! 但我想比较这些值与另一个范围的值,然后确定匹配是否都是相同的types

例:

我有一张桌子,像:

动物| 数
 ___________ | ___________
狗|  2
            |
猫|  1
            |
兔子|  2
            |
猫|  1
            |
狗|  3
            |
狗|  2

现在我想要创build一个表格,表示数字是否只出现一次,或者如果它们出现的次数多于同一个动物或多次混合:

数字| 一次| 更多次单狗| 更多次单身猫| 多次混合
 _________ | ___________ | _________________________ | _______________________ | ____________________
   1 |  O |  O |  X |  Ø
          |  |  |  |
   2 |  O |  O |  O |  X
          |  |  |  |
   3 |  X |  O |  O |  Ø

要检查这个数字是否有多个发生,我可以使用:

=IF(COUNTIF('table1'!B:B;A1)>1;"X";"") 

然后我读了如何打印出一个范围内的所有值的出现。

但是我既不能将这个解决scheme转移到我的问题上,也不能找出任何替代scheme

预先感谢您的帮助!

编辑:

所以我的主要问题是如何获得所有发生的内容,例如数字“2”我想在一个表单中的结果{“狗”,“兔子”}与这些值(为了比较他们与另一个值)

关于如何获得所有的事件,你在编辑中提到。 这里是一个例子:

 Sub Test() Dim objResult As Object Dim arrAllNumbers() Dim arrAllAnimals() Dim lngNumber As Long Dim arrAnimals() Dim strAnimals As String ' processing the table Set objResult = ExtractOccurrences(Range("A2:B7")) ' example how to get array of the numbers arrAllNumbers = objResult.Keys ' example how to get array of the dictionaries containing corresponding animals arrAllAnimals = objResult.Items ' example how to get all animals for certain number lngNumber = 2 arrAnimals = objResult(lngNumber).Keys ' convert to the string representation strAnimals = "{""" & Join(arrAnimals, """,""") & """}" End Sub Function ExtractOccurrences(rngTable As Range) As Object Dim arrTable() As Variant Dim objList As Object arrTable = rngTable Set objList = CreateObject("Scripting.Dictionary") For i = 1 To UBound(arrTable, 1) If IsEmpty(objList(arrTable(i, 2))) Then Set objList(arrTable(i, 2)) = CreateObject("Scripting.Dictionary") objList(arrTable(i, 2))(arrTable(i, 1)) = "" Next Set ExtractOccurrences = objList End Function 

Sub Test()作用域具有本地窗口中显示的variables,如下所示:

当地人

所以对于第二2结果是{"Dog","Rabbit"}