2015-01-23 3 views
-1

У меня есть таблица, которую я вставил в таблицу. Это данные о доставке Fedex, и у нее есть строка за каждую плату. Там может быть много сборов за упаковку, и все они будут иметь общий номер отслеживания.SQL join или Vlookup

Что мне нужно сделать, так это создать запрос или извлечь все издержки за номер отслеживания и показать их в одной строке. Количество зарядов на идентификационный номер может варьироваться от 1 до 8 или 10.

Current таблице

Trackingnumber ChargeDescription ChargeAmount
310873570610, улучшению Плата, 9,32
310873570610, Онтарио ПСТ, 2,52
310873570610 , таможенная пошлина, 0,08
540310873037854, Производительность Ценообразование, -4,35
540310873037854, топливо, 0,73
540310873037854, Заработанные D iscount, -5,2
540310873037861, Производительность Ценообразование, -4,06

Необходим выход

Trackingnumber, ChargeDescription, ChargeAmount, ChargeDescription, ChargeAmount, ChargeDescription, ChargeAmount
310873570610, УЛУЧШЕНИЕ Плата, 9,32, Онтарио PST, 2.52, Таможенная пошлина, 0.08
540310873037854, Эксплуатационная цена, -4.35, Доплата за топливо, 0.73, Заработанные скидки, -5.2
540310873037861, Оценка производительности, -4.06

Я пробовал несколько разных объединений, а также множество разных vlookup в Excel. Будет оценен любой указатель на то, как подойти к этой проблеме.

Спасибо, Джон

+0

Один из способов, который приходит на ум, представляет собой сводную таблицу, которая имеет «TrackingNumber» в стороне, «ChargeDescription» в верхней части и «ChargeAmount» в качестве значений в центре. Это также даст вам общее количество в верхней и боковых частях для каждой категории (сколько было сделано надзаправкой за топливом/сколько было наложено на этот заказ) – SeanC

+0

Да, это называется стержнем.Вы хотите вывести данные из таблицы или листа Excel? Просьба уточнить. –

ответ

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

Но, надеюсь, это либо работает для вас, или ставит вас на правильном пути!

Смежные вопросы