用于执行不同分析的VBA数据结构

时间:2018-08-10 15:03:52

标签: vba excel-vba

是否有某种数据结构可用于以下分析?从视觉上看,这就是我在Excel中的数据

Condition ID       Item1        Item2        Item3        ...
Ex A      1        A            B            C            ...
Ex B      2       
Ex C      3        C     
Ex A      5        D            A    
Ex C      5      

每行对应一个ID,并且可以有多个相同的ID。条件是与任何#个项目相关联的字符串(上面也可能有多个相同的条件)(可以为无,也可以重复)。

我要执行的功能包括确定所有条件中唯一项的总数,查看哪些项出现频率最高/最不频繁,哪个条件和单项组合最频繁以及每个条件的ID细分。

最好的方法是仅仅蛮力对待我要回答的每个问题吗?例如,对于查找所有唯一目标的第一部分,我是否应该仅遍历每一行的单元格,直到该单元格中的Value =“”,否则将每个项目添加到Collection中,除非该项目已存在于Collection中?我想这样做,而我想执行的其他分析可能会在编码和运行时间方面花费太长时间?

1 个答案:

答案 0 :(得分:0)

我想我想出了如何使用字典来做一个部分(计算每个项目的实例数)

For row = 1 To lastRow
    For col = 1 To lastCol
        If arrayOfValues(row, col) <> "" Then
            If rawString.Exists(arrayOfValues(row, col)) Then
                rawString.Item(arrayOfValues(row, col)) = rawString.Item(arrayOfValues(row, col)) + 1
            Else
                rawString.Add arrayOfValues(row, col), 1
            End If
            Debug.Print arrayOfValues(row, col), rawString(arrayOfValues(row, col))
        End If
    Next col
Next row