在Microsoft Excel中工作时,我有一个相当于购物清单的电子表格,如果数量大于0,那么我希望在另一张表格上显示说明。
这是使用INDEX函数非常简单的东西,但是这只返回匹配的第一个值。
我应该如何重新考虑下面的查询,以返回(n)
的值 =INDEX(Software!B23:Software!B34,MATCH(TRUE,INDEX(Software!A23:Software!A34<>0,0),0))
假设这是一个数组,我误以为我可以调用Array [n]来获取该位置,但事实证明这是不正确的。
感谢您的协助。
答案 0 :(得分:2)
在这种情况下,您不想使用MATCH()
,想要同时使用SMALL()
和IF()
功能......
=INDEX(Software!$B$23:$B$34,SMALL(IF(Software!$A$23:$A$34>0,ROW(Software!$A$23:$A$34)),ROW(A1))-ROW(Software!$B$23)+1)
以数组公式输入
基本上,你所说的是:
给我一行A列中的数据&gt; 0表示Kth最小时间 现在取出那一行并从中减去我的数据集的起始行,然后从A列中的数组中返回该条目。
你也可以在IFERROR()
语句中包装整个内容,以免弹出错误值。
有一个地方可以找到关于此的更多数据{@ 3}}
希望这有道理并做到这一点!
答案 1 :(得分:0)
这可能很有用(不知道这是你想要的)
Sub test_index()
Dim ii As Integer, jj As Integer
ii = 23
jj = 24
With ActiveSheet
For ii = 23 To 34
Cells(ii, 12).Formula = "=INDEX(Software!B" & ii & ":Software!B" & ii & _
",MATCH(TRUE,INDEX(Software!A" & ii & ":Software!A" & ii & ",0,0),0))"
Next
End With
End Sub