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

问题描述:

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

这是一个路透公式:= 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 这可能吗?

谢谢。

+1

你有没有尝试在公式周围包装IF?另外:什么公式?并请添加一些示例数据和预期结果... – hsan 2013-02-20 14:58:09

+0

对不起,我没有提供足够的信息。我尝试在公式周围进行包装。这是一个路透公式:= IF(RData(D17:D26; H16)= 0; NA(); RData(D17:D26; H16)),但它根本不起作用。 – Helios 2013-02-20 15:43:04

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

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

会工作,即使是F返回一个数组。只需用整个公式代替F,不要忘记按Ctrl + Shift + Enter

+0

对不起,我没有提供足够的信息。我尝试在公式周围进行包装。这是一个路透公式:= IF(RData(D17:D26; H16)= 0; NA(); RData(D17:D26; H16)),但它根本不起作用。 – Helios 2013-02-20 15:43:42

+0

@Helios通过对你的问题进行编辑来判断Dan的答案应该可行。尝试用'{= IF({1,2,3,4,5} = 3,NA(),{1,2,3,4,5})}'来代替'3' '#N/A'。 – hsan 2013-02-20 16:39:48

+0

它实际上也适用于我,但不适用于该公式。有一种方法可以解决它。 – Helios 2013-02-20 17:02:46

感谢大家的投入,

我找到了一种方法去解决它,只需在返回一个值并且用IF语句包装它。

因此,它变成:= IF(RDATA(D17; $ H $ 16)= 0; NA(); RDATA(D17; $ H $ 16))

我固定H16,因为它包含所需的参数公式。

这种方式有效。

+0

如果你设法解决你自己的问题,那么你应该把这个标记为正确的答案,以便人们知道它实际上已经解决了 – Dan 2013-02-21 07:35:41

+0

,这只是一种解决方法,并不是真正的解决方案,因为我仍然不知道如何将公式应用到一个范围并包装它以返回我想要的。 – Helios 2013-02-21 15:04:21

而不是使用=IF(RData(D17;$H$16)=0;NA(); RData(D17;$H$16))你也可以使用

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

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

+0

谢谢你的诀窍 – Helios 2013-02-21 15:05:04