Excel:使用一个查找值返回多个项目但在另一个工作表上

时间:2016-06-06 04:27:16

标签: excel excel-vba excel-formula vba

我的公式有效,但只有在同一页面和同一行

时才有效

公式:

=(INDEX($C$1:$D$4,SMALL(IF($C$1:$C$4=$F$2,ROW($C$1:$C$4)),COLUMNS(D1:D4)),2))

注意: G列具有公式,它在C&列中的F2(1.2)中查找值D,并提取D列中的相应数据。因此,在这种情况下,它将提取G列中的数据。

问题:如果我希望从不同的工作表甚至不同的工作簿中进行此操作,我该怎么办?我需要做同样的事情,将列c和d(在不同的工作簿上)的数据提取到我的工作簿。

每次尝试时,都会出现值错误。

奖金:我也试图获得最接近今天日期的日期,我在这里有这个公式:

=IF(COUNT(G2:G5)>0,INDEX(G2:G5,MATCH(MIN(ABS(G2:G5-$D10)),ABS(G2:G5-$D10),0)),"")

D10恰好等于=TODAY(),整个公式按ctrl + shift + enter

如果您还可以将其包含在公式中,以便它只吐出G2中最接近的日期而不是吐出所有日期。但这没有必要,只是帮了很多忙。

1 个答案:

答案 0 :(得分:0)

对于你今天最近的问题",我试图传播日期的差异或日期的比较,就像在你的例子中一样。这只是没有成功。我通过添加另一列来解决问题。我不知道这是否对你有效,但这就是我所拥有的。假设H可用或者您可以插入一个新列H.使用此拖动每行 - 在您的示例2中搜索5。

=ABS(D$10-G2)

然后将其添加到H10或您认为合适的地方

=D10-(MIN(H2:H5))

这是一个excel-ish示例

                    5/12/2014   =ABS(D$10-G2)
                    5/13/2015   =ABS(D$10-G3)
                    5/14/2014   =ABS(D$10-G4)
                    5/15/2014   =ABS(D$10-G5)




        6/6/2016            =D10-(MIN(H2:H5))