Excel公式XMATCH有第三个参数,如果测试的值大于或小于值列表,则该参数将返回一个值。我需要它在所有情况下都返回一个数值-小于最小值(下例中为7)、在值范围内(下例中为1-7)或大于最大值(下例中为1)。示例x1c 0d1x我试图避免使用IF来测试#N/A。在这种情况下,XMATCH的真实的用途是在INDEX函数内部,使用额外的IF逻辑很难读取/调试。
有什么建议吗?
wljmcqd81#
如果没有 * 任何 * 类型的错误检查,就找不到这样做的方法--但这是相当吝啬的:
=MAX(IFERROR(XMATCH(J1,C1:I1,{-1,1}),""))
警告:如果有两个有效的解决方案(例如,对于第二行中的查找-50%),您可以通过将max更改为min来在您想要的值之间进行切换,或者通过简单地删除外部函数来返回两者,这取决于您的情况..."靠边站“
=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))))
egmofgnx2#
那么XLOOKUP()呢,它有处理错误的能力:
XLOOKUP()
=XLOOKUP(J1,C1:I1,SEQUENCE(,7),7,-1)
2条答案
按热度按时间wljmcqd81#
如果没有 * 任何 * 类型的错误检查,就找不到这样做的方法--但这是相当吝啬的:
警告:如果有两个有效的解决方案(例如,对于第二行中的查找-50%),您可以通过将max更改为min来在您想要的值之间进行切换,或者通过简单地删除外部函数来返回两者,这取决于您的情况...
"靠边站“
egmofgnx2#
那么
XLOOKUP()
呢,它有处理错误的能力: