【问题标题】:Index & Match to return text value索引和匹配以返回文本值
【发布时间】:2018-01-17 07:20:37
【问题描述】:

我的公式有错误。

如何让它在列引用的列中显示匹配的文本输出?

F11 显示 A1 查找由其上方行中非特殊字符“-”的公式产生的输出。

G11 显示 B1 查找由其上方行中非特殊字符“-”的公式产生的输出。

H11 显示 B6 查找由其上方行中非特殊字符“-”的公式产生的输出。

如下图所示,下面的公式是我当前对参考列的输入,会产生错误。

 =INDEX(F5:F10,MATCH(A5:A10,A5:A10,0))

【问题讨论】:

  • 这些连字符或零是否已格式化为显示连字符?
  • 是实际的连字符。如果不匹配,则在当前 IF 公式中使用它来显示错误值
  • 您不能将范围作为MATCH 的第一个参数传递,它应该是值或单个单元格引用。你能包括预期的结果吗?
  • A1、A2、B1、B6、A6 和 A7 中的预期值?然后它必须包含另外 7 个未在上面显示的预期值。
  • H11 显示 B6 还是 B1?我很困惑。无论如何 INDEX/MATCH 可能会涉及到 Array Entry。我会尝试在单元格 F11 中使用像 =LOOKUP(2,1/(F5:F10=$A$5:$A$10),F5:F10) 这样的公式并复制。

标签: excel indexing match formula


【解决方案1】:

基于 Edit,您可以使用类似

的公式

=LOOKUP(2,1/(F5:F10=$A$5:$A$10),F5:F10)

复制过来!

如果只有一个条目而其他条目为破折号 (-),则也可以使用以下。

=SUBSTITUTE(CONCATENATE(F5,F6,F7,F8,F9,F10),"-","")

LOOKUP 说明:

我们只需将公式列(在本例中为 F)中的值与 A 列中的值进行比较,使用 (F5:F10=$A$5:$A$10) 产生类似TRUE;FALSE;FALSE;FALSE;FALSE 的结果

当这些结果用于除以 1 时,它们将被强制转换为数字 (TRUE=1, FALSE=0),因此结果数组看起来像 1,#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!

我们正在寻找始终等于 1 的 TRUE 结果。所以我们使用大于 1 的数字,即 2,因为 LOOKUP 使用二进制搜索。可以使用任何大的数字。

然后外部 LOOKUP 只是从传递的数组中返回匹配的项目。

您可以使用功能区Formulas >> Formula Auditing >> Evaulate Formula 中的“公式评估”选项准确地看到这一点。

【讨论】:

  • 2,1 在循环中做了什么?介意解释一下吗?
猜你喜欢
  • 2019-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多