我想包装一个excel公式,返回一个值数组,所以它用NA()替换0值

时间:2013-02-20 14:54:32

标签: excel excel-formula reuters

我有一个我在excel中使用的公式。该公式以列的形式返回值数组。我只知道如何在单元格或返回一个单元格的公式上使用IF语句。但是,我不知道如何应用它来使公式返回的数组中的NA()替换所有0值。我想用IF语句包装公式。

这是路透社公式:= IF(RData(D17:D26; H16)= 0; NA(); RData(D17:D26; H16)),但它根本不起作用。

RData(D17:D26; H16)返回以下列

H16包含:AST_SWPSPD

D17:D26包含以下RIC代码:

BMPS2YEUAM=R 
BMPS3YEUAM=R 
BMPS4YEUAM=R 
BMPS5YEUAM=R
BMPS7YEUAM=R 
BMPS10YEUAM=R 
BMPS20YEUAM=R 
BMPS30YEUAM=R

结果列如下

201.7
499.5
389.2
470.6
306.8
0
0
525.3
525.3
525.3

我想摆脱零并用NA替换它们 这可能吗?

谢谢。

3 个答案:

答案 0 :(得分:3)

它应该完全一样。让我们假装你的公式是F(但如果你添加了你的实际公式或与你的问题类似的东西会更好)

=IF(F=0, NA(), F)

即使F返回数组也能正常工作。只需用您的整个公式替换F,不要忘记按ctrl + shift + enter

答案 1 :(得分:1)

感谢大家的投入,

我找到了解决问题的方法,只需一次返回一个值并用IF语句包装它。

所以变成:= IF(RData(D17; $ H $ 16)= 0; NA(); RData(D17; $ H $ 16))

我正在修复H16,因为它包含公式所需的参数。

这种方式有效。

答案 2 :(得分:1)

您也可以使用

=IFERROR(1/(1/(RData(D17;$H$16)));NA())

而不是=IF(RData(D17;$H$16)=0;NA(); RData(D17;$H$16))

这样,你的函数只被调用一次,这将减少计算时间。