如果有人能帮我解决以下问题,我将不胜感激。我在一行中有一系列单元格,并希望将每个单元格与同一行中的适当列(具有相同的标题)进行匹配。所有数据都在同一张工作表上。
为了便于参考,我有以下格式的数据
ACT001 | ACT002 | ACT003 | ADV001 | ADV002 | ADV003 | G | H | I
------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------
| | | | | | ACT001 | |
------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------
| | | | | | ACT001 | ADV001 |
------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------
| | | | | | ACT003 | ADV002 | ADV003
我想通过一个宏来实现以下目标:
ACT001 | ACT002 | ACT003 | ADV001 | ADV002 | ADV003 | G | H | I
------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------
ACT001 | | | | | | ACT001 | |
------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------
ACT001 | | | ADV001 | | | ACT001 | ADV001 |
------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------
| |ACT003 | | ADV002 | ADV003 | ACT003 | ADV002 | ADV003
正如您所看到的,我希望将列G-I中的单元格匹配到适当的列,并在同一行中。以上只是一小段摘录。实际的表更大。
我可以使用一系列IF语句和FIND公式来完成上述操作,但我希望使用宏来实现更快的方法。感谢您的帮助。谢谢
发布于 2017-03-10 07:38:36
我认为使用公式要比使用VBA脚本快得多。即使是公式也不是很复杂。
假设这是您的工作表
| A | B | C | D | E | F | G | H | I
| ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------
1 | ACT001 | ACT002 | ACT003 | ADV001 | ADV002 | ADV003 | G | H | I
2 | | | | | | | ACT001 | |
3 | | | | | | | ACT001 | ADV001 |
4 | | | | | | | ACT003 | ADV002 | ADV003
1.使用IF
语句的解决方案
将以下公式写入单元格A2
=IF($G:$G=A$1,$G:$G,IF($H:$H=A$1,$H:$H,IF($I:$I=A$1,$I:$I,"-")))
然后将其复制到A2:F4
2.使用HLOOKUP
解决方案
将以下公式写入单元格A2
=IFNA(HLOOKUP(A$1,$G2:$I2,1,FALSE ),"-")
然后将其复制到A2:F4
无论您有多少列,第二个解决方案的长度都应该相同。每增加一列,第一个列就会变长。
请注意:在这些公式中正确使用$
修复了一些行/列,从而可以将一个公式复制到整个范围中。
https://stackoverflow.com/questions/42709439
复制相似问题