当没有从SQL查询中检索行时,Excel会更改单元格引用

时间:2013-11-04 14:33:20

标签: sql excel worksheet-function

我正在尝试将SQL数据库中的仪表板放在一起,有时候没有检索到数据,这是正常的,但这会破坏单元格引用。

当我使用offset函数将数据放入与滚动条绑定的滚动列表时,我有3个工作表Dash / Data / Calculations: -

在Dash表中我使用 = OFFSET(数据!A2,计算!$ C $ 4,0,1,1)

一切正常,直到查询没有检索到任何行(这有时会正常),此时我得到#REF的负载!错误和数据!引用变了。

我尝试制作参考绝对数据!$ A $ 2但这没有效果。

有关正在发生的事情的任何想法?


我已经设法解决了......这就是我做的事情

好的,不是一个完美的解决方案,但我使用了INDIRECT功能。

将数据检索到A列和A列中。通过SQL查询在表中的B.

然后放下一个网格,以便在C& C中查看间接功能。 D,这只是文字。

然后在E1中使用= INDIRECT(C1),在F1中使用= INDIRECT(D1)

 |    A     |    B     |    C     |    D     |      E       |    F     
_________________________________________________________________________
1| datar1c1 | datar1c2 |   A1     |    B1    |=INDIRECT(C1) |=INDIRECT(D1)
_________________________________________________________________________
2! datar2c1 | datar2c2 |   A2     |    B2    |=INDIRECT(C2) |=INDIRECT(D2)

这个“间接”从表格中的单元格中获取值并停止Excel杀死我的仪表板工作表上的公式,我已经下了第200行,列为C:F,因为我觉得这已经足够了。

2 个答案:

答案 0 :(得分:1)

您是否尝试过使用ISERROR在本地“处理”错误?

这样的事可能有用:

=IF(ISERROR(Data!A2), "", OFFSET(Data!A2,Calculation!$C$4,0,1,1))

这基本上说如果Data!A2返回错误,那么什么都不做,如果没有,那么OFFSET ......

答案 1 :(得分:0)

我已经设法解决了......这就是我做的事情

好的,不是一个完美的解决方案,但我使用了INDIRECT功能。

将数据检索到A列和A列中。通过SQL查询在表中的B.

然后放下一个网格,以便在C& C中查看间接功能。 D,这只是文字。

然后在E1中使用= INDIRECT(C1),在F1中使用= INDIRECT(D1)

| A | B | C | D | E | F


1 | datar1c1 | datar1c2 | A1 | B1 | =间接(C1)| =间接(D1)


2! datar2c1 | datar2c2 | A2 | B2 | =间接(C2)| =间接(D2) 这个“间接”从表格中的单元格中获取值,并阻止Excel在我的仪表板工作表上查杀公式,我已经使用C:F列进入第200行,因为我觉得这已经足够了。

现在,Dash表上使用的偏移函数是指静态数据,而公式没有得到#ref'd