当添加另一个查找值时,如何动态更新 vlookup 表?

当添加另一个查找值时,如何动态更新 vlookup 表?

我有一个简单的(格式化为)表格(表 1),根据评级进行排名。

Rank Name Rating
1 etc etc etc 
4 etc etc etc 
3 etc etc etc 
2 etc etc etc 

我有一个 VLOOKUP(格式化为)表(表 2),用于查看排序的排名。

现在,当我向表 1 添加另一个值时,我需要进入表 2 并添加 vlookup 查找的数字以扩展表格。

有没有办法让该部分自动化?

因此,当我向表 1 添加新行时,表 2 会自动更新。

答案1

FILTER()是你需要的东西:

=FILTER(Table1,Table1[Column1]<>"")

Table1跟踪其组件,因此添加值会将这些值添加到它跟踪的事物中。FILTER()然后返回其所有组件,包括刚刚添加的组件。

对于排序方面,您可能只需使用SORT()该结果。

只有一个问题...

FILTER()在表中无法按预期工作。它可以在表外顺利地在表上工作,但不能在表中工作。

由于您的输出也在表中,因此您无法在其中使用它。因此...它不能在表中,或者您必须避免使用数组公式(如FILTER()(和SORT(),此处也指出了这一点)。

那么,为什么它必须放在正式的表格中?似乎表格的大部分要点对于填充它来说都不是必需的,因为您将其填充描述为来自您在此处寻求的方法,而不是来自对它的物理数据输入(在表 1 中完成的物理数据输入)。其余要点将在其他地方的公式中使用“结构化引用”,这些公式会查找表 2 进行输入。

这些不仅被高估了,而且相当冗长,它们根本没有必要,因为人们可以简单地,仅以一种方法,为类似用途命名列。因此,人们必须决定哪个更重要:在 Table2 中轻松填充和排序数据以供视觉使用(?)还是使用引用 Table2 的结构化引用?

另一种方法,我曾经使用过,并且发现它并不比 Tables 出现之前的旧方法更令人讨厌,即使用中间“表”FILTER()来填充它并对其进行排序,然后使用旧方法构建公式来填充实际的 Table2,通过将其自动应用于辅助表范围,将自动排序应用于它。因此,您的 Table2 将完全填充、排序,并可使用结构化引用进行后续使用。

以上所有情况都有一些困难,您的真实情况表明需要克服这些困难,而有些困难在您的字面使用中不会成为问题。

一个值得支持的点是,总有一天 Excel 会修复表格与数组公式的问题。嗯,肯定是在 2050 年之前。-Ish。总有一天。当它修复时,您只需通过将 Table2 的公式替换为SORT(FILTER())辅助表/范围中的公式并删除辅助表来进行更新即可。

或者,正如其他人提到的那样,如果您可以使用 VBA(老板不介意使用它)并且您知道如何使用,那么 VBA 会彻底为您解决问题。

相关内容