excel - MS Excel 在搜索功能中通过测距

标签 excel function search

任何人都可以解释为什么这有效,

=查找(1E+100,搜索($O$2:$O$5,J6),$O$2:$O$4)

这从一系列单元格中查找单元格中的值,按预期工作。

但是搜索(O2:O5,J6)不能自己工作吗?
因此,SEARCH($O$2:$O$5,J6) 返回 #value 错误。我认为如果找到,这将返回该位置。如果我传入 {""},例如Search({"xyz","zyx","xsy"},J6) 这可行且有意义,但为什么范围不起作用。

一个解释将不胜感激。

最佳答案

你的问题的答案是双重的。

首先,大多数函数不会接受单个参数的多个值。让它们这样做需要将它们计算为数组公式。您可以通过使用 CTRLSHIFTENTER(而不仅仅是 ENTER)确认来强制函数手动执行此操作。您会知道它是作为数组公式输入的,因为花括号 {} 将围绕公式栏中的公式。完成后,转到“公式”选项卡 -> 评估公式以查看步骤。仅使用搜索功能,您可能会得到类似 {#N/A!;#N/A!;11;#N/A!;#N/A!;} 的信息。 .请注意,它是公式结果的数组(列表),其中大多数是错误(因为未找到文本)和一个具有正确结果的结果。

这将我们带到答案的第二部分,错误处理。同样,大多数函数都不能很好地处理错误。如果函数的任何部分出错,整个函数都会导致该错误。你可以通过像 ISNUMBER 这样的错误处理函数来解决这个问题。或 IFERROR .

所以现在我们知道了,为什么 LOOKUP工作?因为它作为其内置功能的一部分处理这两种情况。查找作为其内置功能的一部分,由于其工作方式的特殊性,将其参数评估为数组这意味着如果您将另一个函数作为参数提供给它(例如 SEARCH),它将强制执行该函数被评估为一个数组.. 一些其他函数也这样做,如 SUMPRODUCTINDEX .

其次,LOOKUP已经有内置的错误处理。如果其参数中有错误,它将返回最接近第一个参数的答案(但仍在其下方)。这就是您提供的 LOOKUP 中的第一个参数的原因。函数是1E+100这意味着 10^100或者基本上是 1 后跟 100 个零。找到的任何搜索结果都将是一个小于该数字的数字,因此如果它找到任何内容,它将返回该数字,因为其他所有内容都将导致 #N/A!并且 LOOKUP 将忽略这些错误。

关于excel - MS Excel 在搜索功能中通过测距,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35947023/

相关文章:

Javascript 将 switch 的大小写绑定(bind)到 html 按钮

function - Haskell 中的 If-Else 会发生什么?

image - 用于图像数据的 Matlab hist 函数

search - 有谁知道网络上详细描述 Lucene 索引格式的合适文档在哪里?

excel - 减少 Excel 中的单元格数量

excel - 带参数的 Power 查询和存储过程

excel - 如何从 SUMIF excel 函数中的单元格值引用工作表名称

excel - 用 B1!A1 转置 'Sheet1' !A1

javascript - 通过字典查找和替换,仅使用一次键

algorithm - 与其他点相比,找到网格中最远的点