我有一个数据表,其中有许多列可能会改变位置。为了方便使用,我想创建第二个工作表,使列保持指定的顺序。我可以指望列标题保持不变,所以我想根据列的标题复制列,或者更确切地说,列中的第一个单元格与字符串匹配。
例如,工作表 1 中的三列为
id name due date
但在 Sheet 1 的另一个实例中,它们可能显示为
id due date name
我希望我的第二张表指定第一行是“id”,第二行是“name”,等等。我尝试使用 hlookup,但发现它只适用于填充单个单元格,拖动公式对我来说不太好用。有没有关于如何使用 excel 中的函数执行此操作的想法?除非绝对必要,否则我宁愿不使用宏。
答案1
=HLOOKUP(A$1,Sheet1!$A:$C,ROW(),FALSE)
当您向下填充公式时,ROW() 将作为偏移量来查看表格中的下一列。
答案2
我经常遇到这种情况。解决此问题的一种简单方法是让列引用带有偏移的第一页。假设 Sheet1 上的这些变量数据位于 A1:Q499,那么在 Sheet 2 上,我会将其放在单元格 B2 中:
OFFSET(Sheet1!$A$2,0,MATCH(A$1,Sheet1!$A$1:$Q$1,0)-1,499,)
为了更加美观,您可以在 Sheet2、A1:Q1 中设置单元格保护,使其仅允许来自列表中的值,并使用 Sheet1 A1:q1 作为该列表。