我想找到一个范围内最接近的值,但不包括该范围内的空白单元格。我设法做到了,但它包括了空白,因为它们被认为是零 这是一个包含空格的作品
=INDEX(B9:GS9,MATCH(MIN(ABS(B9:GS9-D1)),ABS(B9:GS9-D1),0))
我也尝试使用条件“ <>”进行MINIFS,但它会弹出错误窗口。而且除了最终解决方案外,它的VBA代码也很棒。谢谢。
答案 0 :(得分:0)
使用公式:
=IF((D1-MAXIFS(A:A,A:A,"<"&D1))<(MINIFS(A:A,A:A,">"&D1)-D1),MAXIFS(A:A,A:A,"<"&D1),MINIFS(A:A,A:A,">"&D1))
其中D1是目标值,然后我细分并显示MaxIf() < Target
和MinIf() > Target
以显示值和目标值的增量。将这些公式合并为上面的单个公式。
请注意,这是基于目标值,并且未使用>=
或<=
,因此,如果目标为0,则空白不会给出值。
编辑1:
修复了上面公式中的一个错误,即我不小心将D3而不是D1列为目标值(没有更新图像)。
我已经看过这个数组了;公式类似,如下所示:
=IF((B11-MAXIFS(A1:H7,A1:H7,"<"&B11))<(MINIFS(A1:H7,A1:H7,">"&B11)-B11),MAXIFS(A1:H7,A1:H7,"<"&B11),MINIFS(A1:H7,A1:H7,">"&B11))
要以您的目标范围(B9:GS9
)为前提,并假设D1
包含了您的目标值,
=IF((D1-MAXIFS(B9:GS9,B9:GS9,"<"&D1))<(MINIFS(B9:GS9,B9:GS9,">"&D1)-D1),MAXIFS(B9:GS9,B9:GS9,"<"&D1),MINIFS(B9:GS9,B9:GS9,">"&D1))
在对您的范围进行测试时,似乎出现错误,即没有值>目标或值<目标,结果之一为0
。我用CountIfs()
来解决这个问题...
=IF((D1-If(CountIfs(B9:GS9,"<"&D1),MAXIFS(B9:GS9,B9:GS9,"<"&D1),D1))<(If(CountIfs(B9:GS9,">"&D1),MINIFS(B9:GS9,B9:GS9,">"&D1),2*D1)-D1),MAXIFS(B9:GS9,B9:GS9,"<"&D1),MINIFS(B9:GS9,B9:GS9,">"&D1))
答案 1 :(得分:0)
我在这里尝试过推荐,它仍然返回0。这是结果图像的链接。(不允许我发布图像)