Excel 量化两列VBA之间的比较

Excel 量化两列VBA之间的比较,excel,vba,Excel,Vba,以下是我想做的: 列“a”包含,比方说,汽车的类型,“b”列包含汽车的颜色。我需要做的是格式化一个表格,显示“蓝色公民”的数量,这样我就可以将其与“蓝色吉普车”和“红色路虎”进行比较。有人知道一个简单的方法来实现这一点,而不必初始化一堆变量和做一堆if语句吗 基本上,我会有4种类型的车,每种车都有4种可能的颜色。现在,我有这样的想法: Dim HondaRed As Integer, HondaBlue As Integer For Each a In ary On Error Resu

以下是我想做的: 列“a”包含,比方说,汽车的类型,“b”列包含汽车的颜色。我需要做的是格式化一个表格,显示“蓝色公民”的数量,这样我就可以将其与“蓝色吉普车”和“红色路虎”进行比较。有人知道一个简单的方法来实现这一点,而不必初始化一堆变量和做一堆if语句吗

基本上,我会有4种类型的车,每种车都有4种可能的颜色。现在,我有这样的想法:

Dim HondaRed As Integer, HondaBlue As Integer
For Each a In ary
    On Error Resume Next
    cl.Add a, CStr(a)
    'if statements that ask if column "a" is is honda if column "b" is blue, then incramanets HondaBlue by 1'
Next a

我可以用C++做这个没有问题。问题是,我仍然容忍VB,因此,如果有任何帮助或资源能为我指明正确的方向,我将不胜感激。谢谢

如果您想要一个VBA示例,请假设我们从以下内容开始:

下面是一些非常简单的代码:

Sub TableMaker()
    Dim N As Long, i As Long, j As Long, k As Long
    N = Cells(Rows.Count, "A").End(xlUp).Row
    For i = 1 To N
        ca = Cells(i, 1)
        cl = Cells(i, 2)
        If ca = "Honda" Then j = 2
        If ca = "Toyota" Then j = 3
        If ca = "Chevy" Then j = 4
        If ca = "Ford" Then j = 5
        If cl = "Blue" Then k = 5
        If cl = "Black" Then k = 6
        If cl = "Red" Then k = 7
        If cl = "White" Then k = 8
        'MsgBox j & vbCrLf & k & vbCrLf & Cells(j, k)
        Cells(j, k) = Cells(j, k) + 1
    Next i
End Sub
将产生:

频率表中的标题是手动添加的。
IFs
中的i,j值基于表格的位置


<强>使用枢轴表仍然是最好的方法。< /强>

为什么要比较蓝色公民与“蓝色吉普车”和“红色着陆器”?考虑创建一个数据透视表或使用VBA来创建数据透视表。@ GoththAMSHIVA我不,我只是举个例子。我想将a列和b列中的内容组合起来,然后增加这些组合值中存在的数量。@Gary的学生您能告诉我在哪里查找信息的正确方向吗?我从未使用过数据透视表,谷歌->“如何使用Excel数据透视表”应该会带来奇迹(就像仅仅尝试使用一个数据透视表一样)。然后使用宏记录器来熟悉它的对象模型。这是一个比我计划的好得多的方法,谢谢