请参阅以下屏幕截图:
这只是一个例子,我的真实工作表比这更复杂,有数百行。
我当前的公式是=HLOOKUP(A7,A1:D4,2,0)
,但此公式不允许我将其拖到列的下方,这样我也可以为 Tom 获得“2012 年 1 月 2 日”和“2012 年 1 月 3 日”。我该如何更改公式以使其适合向下拖动?
更新:我试过了=HLOOKUP($A$7,$A$1:$D$4,2,0)
,但向下拖动时,我得到的“2-Jan-12”和“3-Jan-12”都是 5。我想将公式向下拖动,以便“2-Jan-12”显示 6,“3-Jan-12”显示 7。
答案1
您还需要更新 2,以便可以使用复制下来的 B8 中的这个版本
=HLOOKUP(A$7,$A$1:$D$4,ROWS(B$8:B8)+1,0)
ROWS
当您向下拖动时,函数会增加,并将row_index_num
in更改HLOOKUP
为 3、4 等。
注意:以上内容实际上并不匹配日期,它只是从下一行获取值,而不管日期如何,要专门匹配日期请使用此版本
=INDEX(B$2:D$4,MATCH(A8,A$2:A$4,0),MATCH(A$7,B$1:D$1,0))
答案2
我不能 100% 确定这是否是您要找的东西,但是为了使单列或单行在拖动时不会发生变化,请$
在它们前面添加:
A1
将始终根据您拖动单元格的方向进行更新。$A1
仅当向上/向下拖动时才会更新行。A$1
仅在向左/向右拖动时才会更新列。$A$1
无论您如何/将单元格拖动到何处,都不会改变。
对于更新后的问题:
我针对该细胞测试了以下公式B8
:
=HLOOKUP($A$7,$B$1:$D$4,MATCH($A8,$A$1:$A$4,0),0)
将MATCH
根据第一列的日期确定第 n 行,然后使用从第一个表中选择正确的行HLOOKUP
。
答案3
你的方法是正确的。这是我使用的公式:
=HLOOKUP($B$1,$C$1:$E$4,ROW(),FALSE)
HLOOKUP
查看您的列并返回第一个值 $B$1(使用 $ 保持绝对引用)。查找范围也使用绝对值,因此在您拖动和填充公式时它不会“爬行”。该ROW
函数返回同一行中的值,而无需进行任何额外计算。我还使用数据验证将 $B$1 中的查找值填充为您现有的查找值之一,为您提供快速下拉列表。通过将“目标”值保持在与源数据相同的数据布局(行和列)中,它使一切都更易于管理(与您的示例中的偏移行数相反)。良好的数据布局使 Excel 中的几乎所有事情都变得更容易。
答案4
您需要“修复”数组的引用:=HLOOKUP(A7,$A$1:$D$4,2,0)