对于解决我的问题的公式有疑问。 在我的主要工作簿中,我需要比较来自两个来源的数据。 其中一列必须从其他工作簿中检索数据(金额)。 我想要的公式将搜索G列中的所有金额,并将跳过所有空白单元格。试图使用VLOOKUP,INDEX和SMALL函数但没有效果。 每天的金额都不同,我需要在主文件中匹配它们并找到exeptions。
答案 0 :(得分:0)
您可以遍历列并将每个值> 0存储在一个数组中然后进行比较,或者循环遍历该列并直接进行比较...
类似的东西:
Dim i as Integer = 0
Foreach value in Maintable
Do
If otherworkbook.cells(i,7) = value Then '7 for G
do your stuff
End If
i = i + 1
While i < otherworkbook.rows.count
Next
我认为这可能是正确的方法
答案 1 :(得分:0)
如下所示的数组公式怎么样?
=INDEX($G$2:$G$20,SMALL(IF(($G$2:$G$20)=0,"",ROW($G$2:$G$20)),ROW()-1)-ROW($G$2:$G$20)+1)
公式必须作为array formula放入单元格I2
(必须按Strg
+ Shift
+ Enter
输入)。然后,您可以向下拖动公式以获取所有其他值。
它不必位于I
列中,但它必须位于行2
中,因为此公式从列表中获得的第n个数字不是= 0.第n位(在此公式中)row()-1
。因此对于第2行,它将是2-1=1
,因此是第1个数字。通过拖动公式,您将获得第2个,第3个等号。如果您从单元格I5
中的公式开始,则必须将其调整为如下所示:
=INDEX($G$2:$G$20,SMALL(IF(($G$2:$G$20)=0,"",ROW($G$2:$G$20)),ROW()-4)-ROW($G$2:$G$20)+1)