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

我试图从一个SQL数据库放在一个仪表板,有时没有数据检索,这是正常的,但这打破了单元格引用。

我有3个工作表破折号/数据/计算,当我使用偏移function将数据放入滚动列表绑定到滚动条:

在Dash表中我使用= OFFSET(Data!A2,Calculation!$ C $ 4,0,1,1)

一切工作正常,直到查询检索没有行(这将是正常的有时),在这一点上,我得到了负载#REF! 错误和数据! 引用被改变。

我试图使参考绝对数据!$ A $ 2,但这没有效果。

任何想法正在发生什么?


我设法弄清楚了…这是我做的

好,所以不是一个完美的解决scheme,但我已经使用了INDIRECTfunction。

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

然后在间接函数中放置一个网格,在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,我认为这将是足够的。

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

像这样的东西可能会工作:

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

这基本上说,如果Data!A2返回一个错误,那么不要做任何事情,如果没有,然后OFFSET …

我设法弄清楚了…这是我做的

好,所以不是一个完美的解决scheme,但我已经使用了INDIRECTfunction。

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

然后在间接函数中放置一个网格,在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 | = INDIRECT(C2)| = INDIRECT(D2)这个“间接”从表中的单元格获取值,并停止Excel杀死我的仪表板工作表上的公式,我已经下降到行200列C:F因为我认为这样就够了。

现在在Dash表中使用的偏移量函数是指静态数据,公式没有被#ref'd