2014-09-01 2 views
0

Так позволяет сказать, что у меня есть таблица вроде этого ..Excel - Транспонирование несортированных элементов

TID Person Type Name 1 Andy F Orange 2 Andy M Beef 3 Andy V Carrot 4 Andy V Spinach 5 Bobby M Ham 6 Bobby F Apple 7 Bobby V Carrot

Я хочу, чтобы перенести его так, что он будет отсортирован в соответствии с типом, я хочу, чтобы это выглядело как так

Person F M V Andy Orange Beef Carrot Bobby Apple Ham Carrot

Как я могу управлять, чтобы сделать это? О, и я также указывают некоторые вещи в случае, если вы, ребята пропустили это:

  1. Типы не имеют определенного порядка, если вы заметили, Энди, порядок FMVV, но Бобби является MF В.
  2. Multiple экземпляры типа могут возникать, как и в случае Энди, обратите внимание на двойную V. Но даже так, я хочу, чтобы это было единственное значение V, которое считается первым, поэтому в транспонированной таблице V является морковкой, потому что Первой оказалась морковка (Шпинат игнорируется).

Я не знаю, если я попрошу слишком много, но даже просто суть решения будет очень полезна для меня. Основной вопрос моего вопроса - спросить, как я могу перенести такие несортированные предметы, обращая внимание на 1-й пункт. Второй момент тоже важен, но я могу подождать или спросить позже, если вы, ребята, не хотите отвечать.

Спасибо за чтение, пожалуйста, поделитесь со мной своими знаниями.

+0

Всегда будет только три разных типа, или может быть больше? В любом случае, я бы создал объект класса и прочитал в комманде Person/Type/Name; укажите уникальное имя, например Person | Type, добавьте его в коллекцию с уникальным именем в качестве ключа, что приведет к созданию коллекции, состоящей из уникальных типов PersonTypes, и останется только первая. Затем поместите результат в массив, достаточно широкий, чтобы содержать все типы; записать его на рабочий лист и отсортировать по горизонтали. Читайте страницу Чипа Пирсона о введении в классы, чтобы начать работу с этой частью рутины. –

+1

Если какой-либо ответ помог, пожалуйста, подумайте о маркировке в качестве ответа, так что другие с той же проблемой могут найти решение. Благодаря! –

ответ

2

Самый простой способ - создать новый столбец до столбец TID, в котором есть эта формула.

=[Person]&"_"&[Type]

Например говорят ваши данные стали в столбце B, см снимки экрана (TID), то первая формула будет:

=C2&"_"&D2 и приведет к Andy_F создается. Скопируйте это вниз для всех имен, которые у вас есть.

Вы должны иметь что-то вроде этого:

NEW TID Person Type Name 
Andy_F 1 Andy F Orange 
Andy_M 2 Andy M Beef 
Andy_V 3 Andy V Carrot 
Andy_V 4 Andy V Spinach 
Bobby_M 5 Bobby M Ham 
Bobby_F 6 Bobby F Apple 
Bobby_V 7 Bobby V Carrot 

Далее, создать таблицу, как это (с помощью копирования уникальных предметов, в случае необходимости), с уникальными именами на вертикали и типы по горизонтали:

 F  M V 
Andy [form]   
Bobby 

Где [form] является vlookup формулой, как и в снимках экрана ниже:

enter image description here

Результирующее в правильную таблицу для вас, когда формула копируется во все ячейки в новой таблице:

enter image description here

Vlookup будет захватить первый элемент, который соответствует его поиска critera, поэтому несколько матчей игнорировать.

Формула для Andy F в таблице VLOOKUP($G2&"_"&H$1,$A$2:$E$8,5,0), с данными, как на снимках экрана.

Лучшим способом может быть использование VBA, но это должно сделать трюк.

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