我正在尝试创建一种方法,在执行复制+粘贴时自动重新排列列。
假设我有一个 Excel 文件,其中的表格的第一行包含列:
ID | NAME | DATE | TIME | FAVORITE_FOOD
12 | John | 2/12/2015 | 12:00 PM | Chipotle
13 | Jake | 2/13/2015 | 12:01 PM | BigMac
等等(想象一下上面的引用块是 excel 中的一个典型表格)
我正在想办法,所以当我复制整个表格时,当我将其粘贴到第二个 excel 文件上,它会自动将列顺序重新排列为:date
,,,,,。time
ID
name
favorite_food
是否可以在第二个 excel 文件上创建条件以自动重新排列列顺序?如果不行,我可以通过哪些方式自动执行此过程?
答案1
您可以通过结合使用 INDEX() 和 MATCH() 来实现这一点。Index 返回您定义的某个范围内的单元格的内容,您可以通过输入行号和列号来对其进行定位。例如:
=INDEX(A1:D5,3,2)
这将返回单元格 B3 的值,该单元格是选择范围内第三行和第二列的交点。
Match 在选定内容中搜索包含要搜索的值的单元格并返回列号。如果样本数据从 A1 开始,则
=MATCH("时间",A1:E1,0)
将返回数字 4。
所以,把它们放在一起。如果您的数据从 A1 开始,并且您想将其复制到从 G1 开始的新位置,请将此公式复制到 G2。然后,将其向右向下拖动。如果您想重新排序目标,您只需更改列标题即可。
=INDEX($A:$E,ROW(),MATCH(G$1,$A$1:E$1,0))
答案2
我按照您的建议做了,但是当我拖动到右侧和底部时,公式会发生变化以更新“匹配”公式中的源列名称。如何才能在拖动后正确更新公式?