Excel xmatch最小值和最大值

jpfvwuh4  于 2022-11-18  发布在  其他
关注(0)|答案(2)|浏览(173)

Excel公式XMATCH有第三个参数,如果测试的值大于或小于值列表,则该参数将返回一个值。我需要它在所有情况下都返回一个数值-小于最小值(下例中为7)、在值范围内(下例中为1-7)或大于最大值(下例中为1)。
示例x1c 0d1x
我试图避免使用IF来测试#N/A。在这种情况下,XMATCH的真实的用途是在INDEX函数内部,使用额外的IF逻辑很难读取/调试。

有什么建议吗?

wljmcqd8

wljmcqd81#

如果没有 * 任何 * 类型的错误检查,就找不到这样做的方法--但这是相当吝啬的:

=MAX(IFERROR(XMATCH(J1,C1:I1,{-1,1}),""))

警告:如果有两个有效的解决方案(例如,对于第二行中的查找-50%),您可以通过将max更改为min来在您想要的值之间进行切换,或者通过简单地删除外部函数来返回两者,这取决于您的情况...
"靠边站“

  • 请注意,虽然这部分超出了您的核心Q的范围,但我认为值得一提的是,您可能希望探索其他Office 360函数,以帮助处理冗长/复合函数-正如您所暗示的。一个很好的例子是“let”,它允许您提前定义此函数,然后在一个复合函数中根据需要多次引用它。此外,如果使用得当,它可以大大压缩/缩短复合函数的长度。
  • 以下是使用上述函数在一个索引中查找结果的示例,如果在第一个索引中未找到结果,则使用第二个索引。*

=LET(x_,MAX(IFERROR(XMATCH(J1,C1:I1,{-1,1}),"")),IFERROR(INDEX(N$2#,MATCH(x_,M$2#,0)),INDEX(Q$2#,MATCH(x_,P$2#,0))))
egmofgnx

egmofgnx2#

那么XLOOKUP()呢,它有处理错误的能力:

=XLOOKUP(J1,C1:I1,SEQUENCE(,7),7,-1)

相关问题