【发布时间】:2014-05-16 17:28:53
【问题描述】:
我有一个包含 2 列的简单工作表
我想获得包含单元格 G1 中的值的所有结果(在“H”列上)(我只能获得第一次出现,我想知道是否可以获得其他结果),如果没有宏?任何方式都将不胜感激...有什么想法吗?
【问题讨论】:
标签: excel excel-formula excel-2007
我有一个包含 2 列的简单工作表
我想获得包含单元格 G1 中的值的所有结果(在“H”列上)(我只能获得第一次出现,我想知道是否可以获得其他结果),如果没有宏?任何方式都将不胜感激...有什么想法吗?
【问题讨论】:
标签: excel excel-formula excel-2007
您可以使用ROW() 和SMALL() 代替MATCH() 来获取它们,因为这总是会得到第一个匹配项。
=IFERROR(INDEX($C$4:$C$7,SMALL(IF($D$4:$D$7=$G$1,ROW($D$4:$D$7)-(ROW()-1)),ROWS($D$4:D4))),"Null")
所以,如果数组$D$4:$D$7=$G$1返回true(即值等于G1中的值),您将获得这些值的行号,在这种情况下,您将获得4和6。所有其他都将返回@ 987654326@.
经过-(ROW()-1) 的一些处理后,4 和 6 变为 1 和 3。这两个值将被馈送到 INDEX。
SMALL() 然后选择最小的,从第一个开始(你从ROWS($D$4:D4) 得到1),当你向下拖动公式时,ROWS 变成ROWS($D$4:D5) 给出2,SMALL最终取第二个最小值,即 3。
编辑:忘了提。你必须数组输入上面的公式。为此,请在键入公式后键入 Ctrl+Shift+Enter 的组合键(必要时再次编辑公式)而不是 单独输入。
【讨论】:
{}。
ROW($D$4:$D$7)-3,但是当您插入/删除一行时,它很容易破坏公式。