2016-10-06 21 views
0

计算差I具有的格式类似于列于下表中的数据:与上次值

Example

我需要计算(在列B)在列A的数量之间的差(其中,有一个),并在显示上述该号码的第一个数字 - 也列A

由于上述的例子:

B2-B4将包含#N/A和B5将包含-1(如9-10 = -1)。

B6-B8将包含#N/A并且B9将包含-1(如8-9 = -1)。

我想,在这个例子中,使用这样的一系列IF功能:

=IF(A5=NA(),"",A5-(IF(A4=NA(),IF(A3=NA(),IF(A2=NA(),IF(A1=NA(),"",A1),A2),A3),A4))) 

但它没有工作(因为我认为这是非常nonesense)我的实际数据集可能在列A中的值之间有很大的差距。

我知道我可以在列A中筛选出#N/A并运行一个简单的计算 - 但我希望能有一个适用于整列的公式数据可能会改变。

有什么建议吗?

回答

1

非阵列解决方案:

插入列A和列B之间的列跟踪最近的数字值,利用这个等式中,在单元格B2开始:

=IF(ISERROR(A2),B1,A2) 

将该公式拖到数据集的底部。

在下一列中,插入该式中,在小区C2开始:

=IF(COUNT($A$2:A2)<2,"",IF(ISERROR(A2),"",A2-B1)) 

将这个公式到你的数据集的底部。

现在,您将有数字差(-1),显示随时有A列中的数值,以及空白单元格随时有A列中的误差值

+0

这个公式中的新列没有按” t跟踪你所建议的数字 - 'ISERR()'不包括'#N/A' – Gavin121

+0

@ Gavin121将ISERR改为ISERROR,它将起作用。 –

+0

太好了 - 谢谢 – Gavin121

1

可以使用以下数组公式:

=IF(ISERROR(A2),NA(),A2-INDEX(A:A,MATCH(2,IF(ISNUMBER($A$1:A1),1)))) 

作为它需要与确认的阵列式退出编辑模式时,而不是输入Ctrl移输入。如果正确完成,Excel将在公式周围放置{}

放入B2中,按Ctrl-Shift-Enter,然后拖/填。

enter image description here