【发布时间】:2015-10-09 16:26:34
【问题描述】:
我有一个类似这样的表:
ID | Item 1 | Item 2 | Item 3 | Qty 1 | Qty 2 | Qty 3
1 | | X | X | | 3 | 4
2 | X | | X | 2 | | 1
3 | | | X | | | 9
我需要找到一种方法为每个 ID 的每个项目创建一个新行:
ID | Item | Qty
1 | 2 | 3
1 | 3 | 4
2 | 1 | 2
有没有办法通过公式、本机 Excel 工具或 VBA 来实现?
【问题讨论】:
-
到目前为止,我已经尝试转置并尝试创建一个 if 语句,以便仅当单元格有数据时才在单元格中查找和放置。
-
=IF('1stCut'!B2"",'1stCut'!B2,(IF('1stCut'!C2"",'1stCut'!C2,(IF(' 1stCut'!D2"",'1stCut'!D2,(IF('1stCut'!E2"",'1stCut'!E2,(IF('1stCut'!F2"",'1stCut' !F2,(IF('1stCut'!G2"",'1stCut'!G2,(IF('1stCut'!H2"",'1stCut'!H2,(IF('1stCut'!I2"",'1stCut'!I2,(IF('1stCut'!J2"",'1stCut'!J2,(IF('1stCut'!K2"",'1stCut'!K2,(IF ('1stCut'!L2"",'1stCut'!L2,(IF('1stCut'!M2"",'1stCut'!M2,(IF('1stCut'!N2"",' 1stCut'!N2,(IF('1stCut'!O2"",'1stCut'!O2,(IF('1stCut'!P2"",'1stCut'!P2,(IF('1stCut'! Q2"",'1stCut'!Q2,(IF('1stCut'!R2"",'1stCut'!R2,""))))))))))))))))) ))))))))))))))))))))))
-
所以您是说第二个表中每个 ID 的行数不是静态的?否则,Vlookup 就可以了。
-
正确,ID需要为每个当前的Item值重复。
-
我认为最简单的措辞是:对于在一行中的单元格中找到的每个值,创建一个包含该值的新行
标签: sql excel excel-formula unpivot vba