我可以从同一行参考单元格但在不同列中获取单元格内容吗?

时间:2019-05-24 15:18:04

标签: excel excel-formula

我有一张带有唯一标识符的资产表。该工作表称为“资产”。标识符在B列中。

同一工作簿中的另一个工作表称为“位置”。

如果在Location!E2中输入唯一的资产标识符,我希望Location!H2在“资产”页面的B列中检查匹配项,然后返回相应行E列中的值。想要Location!I显示“ Assets!D(Assets!E)”,还有其他一些列也希望显示其价值。

在不使用VLOOKUP或INDIRECT的情况下是否有可能?

原因,我不希望VLOOKUP是因为我希望能够同时进行过滤和排序,并且由于工作簿中其他公式的复杂性,如果重新组织列,则INDIRECT会带来很大麻烦。

VLOOKUP和INDIRECT确实提供了我正在寻找的基本功能,但是它们并不理想。我当前正在做的是在Location!F列中运行MATCH。这给了我行号。然后在Location!H中,使用INDIRECT。

我当前正在使用以下公式:

  • 位置!F2:=MATCH(E2,Assets!$B:$B,0)(查找行号)
  • 位置!H2:=INDIRECT("'Assets'!G"&F2)(显示我想要的值)

我希望有一种更好的方法来达到相同的结果,因为我不想记住手动更新每个“ INDIRECT”公式。特别是因为我不是唯一从事此工作的人。

2 个答案:

答案 0 :(得分:1)

如果Vlookup不起作用(正如泰勒所说,..我相信它应该“。”)..如果没有,那么此选项可能就是您想要的..

请勿使用INDIRECT(用户抵消)。

我经常使用MATCH + OFFSET ..的组合在更复杂的情况下“模仿” VLOOKUP。

因此在H2中(在位置表上)..您的公式将如下所示:

=MATCH(E2,Assets!B:B,0)

有效地为您提供匹配项的行号(如果没有匹配项,则为错误)。 然后在其他列中,您可以在OFFSET函数中使用它:

比方说,在col I2中,您可以使用Match返回的值:

=OFFSET(Assets!E1,I2-1,0,1,1)

表示为: 转到资产表,单元格E1。 向下移动等于单元格I2中值(减1)的行数。 (即,如果I2中的值为4,即行“ 4”。我们需要从E1 ..“向下”移3行以到达E4) 下一个值“ 0”是列偏移..因此0 ..请勿更改列。 1,1是返回集的大小(是的,偏移量可以返回范围..对于动态列表等非常有用)。就您而言,只需要一个单元即可。

然后,您可以为其他列重复该偏移量。 假设在Col J2中..您要从col T中获取该行的值:

=OFFSET(Assets!T1,I2-1,0,1,1)

希望有帮助!

答案 1 :(得分:0)

您仍然应该能够使用VLOOKUP,而不会在排序/过滤时弄乱它。您只需要确保在方程式中使用无穷大即可。例如:

  • 错误:VLOOKUP(A1, B1:C5, 2, 0)在数据被过滤掉或通过排序重新排列时可能会失败。
  • 好的:VLOOKUP(A1, B:C, 2, 0)这并不关心您的查找范围,因此它仍然可以工作,而且我相信它将仍然检查被滤除的单元格。