SQL连接或Vlookup

时间:2015-01-23 20:38:53

标签: sql excel

我有一张已插入表格的电子表格。这是联邦快递的运输数据,每包收费一排。每个包裹可以收取很多费用,它们都会共享一个共同的跟踪号码。

我需要做的是创建一个查询,或者提取每个跟踪号码的所有费用,并将它们显示在一行上。每个跟踪号码的费用数量可以从1到8或10不等。

当前表格

  

TrackingNumber ChargeDescription ChargeAmount
  310873570610,预付费,9.32
  310873570610,Ontario PST,2.52
  310873570610,关税,0.08
  540310873037854,性能价格,-4.35
  540310873037854,燃油附加费,0.73
  540310873037854,获得折扣,-5.2
  540310873037861,性能定价,-4.06

需要的输出

  

TrackingNumber,ChargeDescription,ChargeAmount,ChargeDescription,ChargeAmount,ChargeDescription,ChargeAmount
  310873570610,Advancement Fee,9.32,Ontario PST,2.52,Customs Duty,0.08
  540310873037854,性能价格,-4.35,燃油附加费,0.73,赢得折扣,-5.2
  540310873037861,性能定价,-4.06

我在Excel中尝试了几种不同的连接以及许多不同的vlookup。任何关于如何处理这个问题的指针都将非常感激。

谢谢, 约翰

1 个答案:

答案 0 :(得分:0)

您可以使用Excel宏完成此操作。

Sub RowsToColumns()
Dim r As Range

Set r = Selection
For n = 1 To r.Rows.Count
    If r.Cells(n, 1) = r.Cells(n - 1, 1) And Not IsEmpty(r.Cells(n, 1)) Then
        Range(r.Cells(n, 2), r.Cells(n, 3)).Copy r.Rows(n - 1).End(xlToRight).Offset(0, 1)
        r.Rows(n).Delete
        n = n - 1
    End If
Next n
End Sub

请注意一些注意事项:

1)此版本假定数据实际格式化为您的示例数据。最重要的是,它假定所有重复项都组合在一起,因此您需要在运行此列之前对第一列进行排序。

2)您必须选择要对其运行的行和列。 Macro Before

3)它不会自动为创建的新列生成列名 Macro After

但希望这对您有用或让您走上正确的道路!