Excel formula 使用SMALL函数检索范围内的最低值,尝试与OFFSET组合以获得左边的值

Excel formula 使用SMALL函数检索范围内的最低值,尝试与OFFSET组合以获得左边的值,excel-formula,Excel Formula,我使用H2中的小公式来找到行中的最低价格,这非常有效。 =IF(iError(SMALL(A2:F2,COUNTIF(A2:F2,0)+1)),“”,SMALL(A2:F2,COUNTIF(A2:F2,0)+1)) 我很难用偏移量检索它左边的值(它对应的项#) A | B | C | D | E | F | G | H item# | price | item# | price | item# |

我使用H2中的小公式来找到行中的最低价格,这非常有效。
=IF(iError(SMALL(A2:F2,COUNTIF(A2:F2,0)+1)),“”,SMALL(A2:F2,COUNTIF(A2:F2,0)+1))

我很难用偏移量检索它左边的值(它对应的项#)

  A   |  B    |   C   |  D    |   E   |   F   |          G         |          H
item# | price | item# | price | item# | price | lowest value item# | lowest value
123   |  70   | 456   | 80    | 789   | 67.89 |   ?                | 67.89
另外,我不知道哪列的值最低,A-F可以更改。 我花了几个小时搜索并尝试使用原始公式作为偏移的参考部分:
=偏移量(IF(iError(SMALL(A2:F2,COUNTIF(A2:F2,0)+1)),“”,SMALL(A2:F2,COUNTIF(A2:F2,0)+1)),0,-1,1)及其变化。这将返回#值

我走对了吗?偏移量是正确的方法吗?谢谢

这样做正确吗?-没有

OFFSET
要求将范围参考作为其第一个参数,而不是值

如果您的价格是唯一的,请使用此选项(如果不是,我不确定您预期的结果)


也就是说,你的
公式看起来可疑。如果所有价格均为
0
,则您似乎希望返回
“”
。但在这种情况下,您的公式将返回最小的
项。您能确认或解释一下吗?

我也会通过替换H2来消除对H2的依赖,只需添加一个MIN函数

=INDEX(A2:F2;MATCH(MIN(A2:F2);A2:F2;0)-1)

但是,您始终需要区分项目编号和价格。有时商品价值可能低于价格,那么你的公式就不起作用了。它将返回项目值作为最低值,然后返回前一个项目的价格。那将是一片混乱
因此,要解决此问题,需要添加两个匹配条件以查找精确匹配:
以下是最低值项的公式:

=INDEX(A2:F2;(MATCH(MIN(IF(A1:F1="Price";A2:F2));A2:F2;0)-1)*(MATCH("Item#";A1:F1;0)))

以及计算LOEWST价值价格的公式

=MIN(IF(A1:F1="Price";A2:F2))
例如在下面:



C2中的值是最低的,但是它不是最低的价格值,它本身就在F2
中,这就是为什么您需要添加这些匹配条件,以找到高于或高于价格的值。 因此对于Price我使用了MIN(如果项目#我使用了匹配条件


这是

p.S.
不要忘记将“;”替换为“,”


告诉我它是否有效。

某些行的项目比其他行多,因此将有空白单元格。使用“”似乎可以正常工作;尝试删除它,但它随后分别为G和H返回#NA和FALSE。您的索引工作得很好。感谢您提供的示例。此公式返回A2:F2范围内的最低值,无论是项目值还是价格值。
因此,如果有项目值是所有值中最低的,则公式将返回价格值to此项目值的左侧完全错误。
因此,一个匹配条件和一分钟(IF())获取精确匹配所需的。中对此进行了详细解释。感谢您对MIN和MATCH的解释。它可以在数组中使用或不使用空单元格!我只需要将分号替换为逗号,并使用ctrl-shift-enter添加公式。@dinap如果您尝试了这个答案,并且它工作正常,您需要接受它作为对您的问题的回答,供Stackoverflow中的其他用户日后进行咨询。因为第一个答案返回了前面提到的不想要的行为。我将其更改为正确答案。我使用我原来的3位数项目测试了这两个公式,而价格仍然是2位数,因此忽略了您的示例在不考虑项目编号的情况下仍然有效的事实贝尔。
=MIN(IF(A1:F1="Price";A2:F2))