Excel - 转置未分类的项目

时间:2014-09-01 10:30:25

标签: excel excel-vba excel-formula transpose vba

所以我要说我有一张这样的桌子..

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. 类型没有特别的顺序,如果你注意到Andy的,订单是F M V V,但是Bobby是M F V.
  2. 类型的多个实例可能会出现,就像安迪的情况一样,请注意双V.但是即便如此,我希望它能使唯一的V计数是第一个,这就是为什么在转置表中,V是胡萝卜,因为胡萝卜首先出现(菠菜被忽略)。
  3. 我不知道我是否要求太多,但即使只是解决方案的要点对我也很有帮助。我的问题的要点是问我如何转移这些未分类的项目,同时注意第一点。第二点也很重要,但是如果你们不想回答,我可以等待或者稍后再问。

    感谢您阅读,请与我分享您的知识。

1 个答案:

答案 0 :(得分:2)

最简单/最快捷的方法是在<{strong> 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将获取与其搜索标准匹配的第一个项目,因此将忽略多个匹配项。

表中Andy F的公式为VLOOKUP($G2&"_"&H$1,$A$2:$E$8,5,0),屏幕截图中的数据为。

更好的方法可能是使用VBA,但这应该可以解决问题。