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"}
。