【发布时间】:2023-01-20 21:45:36
【问题描述】:
这是可用的数据:
| Column A | Column B | Column C | Column D | Column E |
|---|---|---|---|---|
| item1 | traitA | traitB | traitC | traitD |
| item2 | traitE | traitF | traitG | traitH |
| item3 | traitI | traitJ | traitK | |
| item4 | traitL | traitM | traitN | |
| item5 | traitO | traitP |
我有一列 5,000 多个项目。他们都有不同的特征(有的有 2 个,有的多达 20 个)。这些特征在同一行中,在项目旁边的列中。我已经有了每件物品的特征计数,并将物品堆叠到合适的数量。导致:
| Column Q | Column R |
|---|---|
| item1 | 4 |
| item2 | 4 |
| item3 | 3 |
| item4 | 3 |
| item5 | 2 |
和:
| Column Y | Column Z |
|---|---|
| item1 | |
| item1 | |
| item1 | |
| item1 | |
| item2 | |
| item2 | |
| item2 | |
| item2 | |
| item3 | |
| item3 | |
| item3 | |
| item4 | |
| item4 | |
| item4 | |
| item5 | |
| item5 |
我需要的结果如下:
| Column Y | Column Z |
|---|---|
| item1 | traitA |
| item1 | traitB |
| item1 | traitC |
| item1 | traitD |
| item2 | traitE |
| item2 | traitF |
| item2 | traitG |
| item2 | traitH |
| item3 | traitI |
| item3 | traitJ |
| item3 | traitK |
| item4 | traitL |
| item4 | traitM |
| item4 | traitN |
| item5 | traitO |
| item5 | traitP |
我把它放在 Z2 单元格中: =VLOOKUP(Y2,$A:$E,2,FALSE) 这仅适用于 traitA、traitE、traitI 等(B 列)。
所以我需要的是一个动态的列索引号。这需要找到 Y 列中总共有多少个“item1”,然后它在 Y 列中的总数中位于第一个。
此外,当您转到下一项时,列索引号必须返回到“2”,因为这将使 VLOOKUP 工作。
列索引号需要如下所示:
| Column Y | Column Z |
|---|---|
| item1 | 2 |
| item1 | 3 |
| item1 | 4 |
| item1 | 5 |
| item2 | 2 |
| item2 | 3 |
| item2 | 4 |
| item2 | 5 |
| item3 | 2 |
| item3 | 3 |
| item3 | 4 |
| item4 | 2 |
| item4 | 3 |
| item4 | 4 |
| item5 | 2 |
| item5 | 3 |
对 ROW 和 ROWS 没有太多经验,我无法让它工作。也许 VBA 提供了最好的解决方案。还是还需要有 COUNTA 函数?
任何帮助将不胜感激。谢谢!
【问题讨论】:
-
你有什么版本的excel?
-
微软 Excel 365 企业版
-
我昨天回答了类似的question。你想要做的是取消透视第一列。你能检查一下你是否可以按照说明进行操作并通过查询来完成吗?
标签: excel indexing excel-formula match row