在 Excel 中水平打印值

在 Excel 中水平打印值

我有一张 Excel 表,其数据格式如下

  A        B
1 KEY      VALUE
2 Apple    Golden
3 Orange   Navel
4 Banana   Yellow
5 Apple    Granny Smith
6 Orange   Blood

我想要做的是获取唯一键,但将其对应的值水平打印在它们旁边。我已经有一张如下所示的表格:

  A        B
1 KEY      VALUE
2 Apple    Golden
3 Orange   Navel
4 Banana   Yellow

但我想要的是这个:

  A        B        C
1 KEY      VALUE1   VALUE2
2 Apple    Golden   Granny Smith
3 Orange   Navel    Blood
4 Banana   Yellow

我现在的公式是{=INDEX('$B$2:$B$6,MATCH(<unique key>,$A$2:$A$6,0))}“唯一键”是第二张表中的单元格引用。此公式成功打印了每个键的第一个值,但我希望其他匹配项填充到行中。这可能吗?

答案1

如果您在列中设置公式来处理您认为会找到的尽可能多的“VALUE”实例,则以下内容将起作用。因此,您需要在“VALUE”列中设置公式。

使用包含条件的数组公式如果()检查你的键值,然后小的() 函数返回与该值匹配的第 n 行。这告诉您,对于键 APPLE,该值出现在表的第 1 行和第 5 行中。然后使用指数() 从这些行中获取值。

本页有详细信息和示例。您的示例将水平运行,而不是垂直运行,但除此之外,这是一个相同的问题。 http://fiveminutelessons.com/learn-microsoft-excel/use-index-lookup-multiple-values-list#sthash.7XGIoc9N.dpbs

我建议的唯一调整是在最后,当你添加如果错误()...等,更短/更简单的方法是使用错误信息() 函数,这样您就不必重复长公式。

例如,如果我的表格(不包括列标题)位于 A13:B17 中,则我的结果表以 E13:E15 中的 KEY 值开头,因此 E13 中的“Apple”,则 F13 中的第一个公式(用于查找第一次出现“Apple”的值)将是(大批公式,所以Ctrl-移位-进入):

{=IFERROR(INDEX($A$13:$B$17,SMALL(IF($A$13:$A$17=$E13,ROW($A$13:$A$17)),ROW(1:1))-12,2),"")}

结果将是“金色”。

然后在 G13 中,除了 ROW(2:2) 之外,其他都一样。H13 将使用 ROW(3:3)。依此类推,根据需要使用尽可能多的列来覆盖任何 KEY 的最大预期值。

那么下面的行将是相同的,除了第一个检查 KEY 值的 IF() 条件之外。

相关内容