Excel-转置未排序的项目
假设我有一张这样的桌子Excel-转置未排序的项目,excel,excel-formula,transpose,vba,Excel,Excel Formula,Transpose,Vba,假设我有一张这样的桌子 TID人员类型名称 1安迪F橙 2米牛肉 3安迪V胡萝卜 4安迪V菠菜 5鲍比·M·汉姆 6鲍比F苹果 7 Bobby V Carrot 我想转置它,以便它将根据类型进行排序,我希望它看起来像这样 人F M V 安迪橙牛肉胡萝卜 鲍比苹果火腿胡萝卜 我怎样才能做到这一点?哦,我还要指出一些东西,以防你们错过了: 这些类型没有特定的顺序,如果你注意到安迪的,顺序是fmv,但鲍比的是mfv 类型的多个实例可能会出现,就像Andy的例子一样,请注意双V。但即使如此,我希望它的唯
TID人员类型名称
1安迪F橙
2米牛肉
3安迪V胡萝卜
4安迪V菠菜
5鲍比·M·汉姆
6鲍比F苹果
7 Bobby V Carrot
我想转置它,以便它将根据类型进行排序,我希望它看起来像这样
人F M V
安迪橙牛肉胡萝卜
鲍比苹果火腿胡萝卜
我怎样才能做到这一点?哦,我还要指出一些东西,以防你们错过了:
感谢阅读,请与我分享您的知识。最简单/最快速的方法是在
TID
列之前创建一个新列,其中包含此公式
=[Person]&“quo”和[Type]
例如,假设您的数据从B列开始,请参见屏幕截图(TID),那么第一个公式是:
=C2&“u”&D2
,并将导致创建Andy\u 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
公式,如下面的屏幕截图所示:
将公式复制到新表中的所有单元格后,将为您生成正确的表:
Vlookup
将获取第一个与其搜索标准匹配的项目,因此多个匹配项将被忽略
表中Andy F的公式为VLOOKUP($G2&“”&H$1,$A$2:$E$8,5,0)
,数据如屏幕截图所示
更好的方法可能是使用VBA,但这应该可以解决问题。是否总是只有三种不同的“类型”,或者可能有更多?无论哪种方式,我都会创建一个类对象并读取Person/Type/Name组合;为其指定一个唯一的名称(如Person | Type),将其添加到一个集合中,并使用唯一的名称作为键,这将导致一个集合由唯一的PersonTypes组成,并且只保留第一个PersonTypes。然后将结果放入一个足够宽的数组中,以包含所有类型;将其写入工作表,并水平排序。阅读皮尔森的关于类的介绍的页面,以开始例程的一部分。如果有任何帮助,请考虑标记作为答案,所以有相同问题的其他人可以找到解决方案。谢谢