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

当从SQL查询中检索不到行时,Excel会更改单元格引用,sql,excel,worksheet-function,Sql,Excel,Worksheet Function,我试图从一个SQL数据库中组装一个仪表板,有时没有检索到数据,这很正常,但这会破坏单元格引用 当我使用偏移功能将数据放入绑定到滚动条的滚动列表时,我有3个工作表破折号/数据/计算:- 在仪表板中,我使用=偏移量(数据!A2,计算!$C$4,0,1,1) 在查询没有检索到任何行之前,一切都正常(有时这是正常的),此时我得到了一个#REF!错误和数据!引用被更改 我已经尝试过使参考绝对数据$A 2美元,但这没有效果 有什么想法吗 我已经设法弄明白了…这就是我所做的 好的,这不是一个完美的解决方案,

我试图从一个SQL数据库中组装一个仪表板,有时没有检索到数据,这很正常,但这会破坏单元格引用

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

在仪表板中,我使用=偏移量(数据!A2,计算!$C$4,0,1,1)

在查询没有检索到任何行之前,一切都正常(有时这是正常的),此时我得到了一个#REF!错误和数据!引用被更改

我已经尝试过使参考绝对数据$A 2美元,但这没有效果

有什么想法吗



我已经设法弄明白了…这就是我所做的

好的,这不是一个完美的解决方案,但我使用了间接函数

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

然后在C&D中为间接函数放置一个网格,这只是文本

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


这个“间接”从表中的单元格中获取值,并阻止Excel在我的仪表板工作表中删除公式,我已经转到第200行,列C:F,因为我认为这已经足够了。

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

类似的方法可能会奏效:

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

这基本上是说如果数据!A2返回一个错误,然后不做任何事情,如果没有,则偏移…

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

类似的方法可能会奏效:

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

这基本上是说如果数据!A2返回一个错误,然后不做任何事情,如果没有,那么偏移…

我已经设法解决了…下面是我所做的

好的,这不是一个完美的解决方案,但我使用了间接函数

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

然后在C&D中为间接函数放置一个网格,这只是文本

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

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


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


二!!数据R2C1 |数据R2C2 | A2 | B2 |=间接(C2)|=间接(D2) 这个“间接”从表中的单元格中获取值,并阻止Excel在我的仪表板工作表中删除公式。我已经转到了第200行的C:F列,因为我认为这就足够了


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

我已经设法弄清楚了…下面是我所做的

好的,这不是一个完美的解决方案,但我使用了间接函数

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

然后在C&D中为间接函数放置一个网格,这只是文本

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

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


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


二!!数据R2C1 |数据R2C2 | A2 | B2 |=间接(C2)|=间接(D2) 这个“间接”从表中的单元格中获取值,并阻止Excel在我的仪表板工作表中删除公式。我已经转到了第200行的C:F列,因为我认为这就足够了


现在在DASH表中使用的偏移函数是指静态数据,并且公式没有得到{Ref} /P>只是有一个Go,而是使用了ISBLIN,因为它是空白的数据(或不)在数据上!A2导致了问题,但它对仪表板上的公式有相同的影响。哪张表显示了#REF!错误-破折号?如果是这样的话,试着这样嵌套:

=If(iError(OFFSET(Data!A2,Calculation!$C$4,0,1,1),“”,OFFSET(Data!A2,Calculation!$C$4,0,1,1))
这个公式说“如果尝试偏移会引发错误,则不执行任何操作,则执行偏移”。这次不要将公式更改为isblank。”试着按照我的建议去做,只是去做一次,但是用了空白,因为它是空白数据(或者没有)。A2导致了问题,但它对仪表板上的公式有相同的影响。哪张表显示了#REF!错误-破折号?如果是这样的话,试着这样嵌套:
=If(iError(OFFSET(Data!A2,Calculation!$C$4,0,1,1),“”,OFFSET(Data!A2,Calculation!$C$4,0,1,1))
这个公式说“如果尝试偏移会引发错误,则不执行任何操作,则执行偏移”。这次不要将公式更改为isblank。”按照我的建议试试。这里有另一个想法。您的查询是否下拉空值、空单元格或空格?这会有所不同。我设法回答了我自己的问题……但作为一个noob,我不能发布它:-)这里是另一个想法。您的查询是否下拉空值、空单元格或空格?这会有所不同。我设法回答了我自己的问题……但作为一个noob,我不能发布它:-)