在Excel中,来自Access DB的空数据不存在错误
我想在Excel中为我从Access DB获得的空数据生成#N / A错误。
这是从交叉表查询继续:获取空数据从Access数据库中丢失的数据 。
现在,我在Access DB中获得了这种格式的数据,并且可以在Excel中以下列格式获取数据:
myDate South West East 11/1/2013 10 20 10 11/2/2013 10 20 10 11/3/2013 11/4/2013 10 30 10
但是我想把#N / A错误,所以计算超过这个值的平均函数将超过#N / A,这将让我知道如果有缺失值。
所以我想要结果就像
myDate South West East 11/1/2013 10 20 10 11/2/2013 10 20 10 11/3/2013 #N/A #N/A #N/A 11/4/2013 10 30 10
我似乎无法解决这个问题。
我认为使用NZ函数捕获空值,并把#N / A,但我认为它只会把string“#N / A”这是不是我想要的,因为Excel只是跳过计算中的string值。 我希望它是Excel错误#N / A。
无论如何,我怎么能做到这一点?
我现在所能想到的就是在Excel VBA中有if语句来检查区域,看是否有空值,并用#N / A错误replace它们。 但是我希望Excel工作表是干净的,尽可能less用代码。
有另一种方法吗?
任何帮助或暗示将不胜感激。
即使是string#N/A
也可以通过计算来正确识别。 尝试使用数字填充多个单元格,然后select一个单元格,然后手动input#N/A
它不会被跳过。 把一些没有被Excel识别的东西比如BK201
或者其他的东西,它会被跳过。
截图:
一些随机的文字插入范围:
#N/A
手动input到单元格中:
没有绿色的三angular形,你可以在配方栏中看到它被input到单元格中。 基本上,一个string#N/A
但是请注意,底部的AVERAGE
function现在出错了。
另外,根据我所读到的关于NZ
函数的内容,我不认为它在Excel中具有相同的function。 这里最好的方法是使用一个子程序,用#N #N/A
replace所有的空白单元格。 这是一个简单而无阻塞的代码。
Sub ReplaceWithNA() Dim Rng As Range Set Rng = Sheet1.Range("A1:A10") 'Modify as necessary. For Each Cell In Rng If Len(Cell) = 0 Then Cell.Value = CVErr(2042) End If Next Cell End Sub
让我们知道这是否有效。 🙂
你可以使用Excelfunction:
- 如果
- ISBLANK
- NA()
所以在下面的testing中耶稣没有得分:
编辑
如果你不想使用第二个表中的函数,那么你仍然可以使用这个函数,如下所示:
Sub UsingVBA() Dim x As Integer With ThisWorkbook.Sheets("Sheet1") x = .Cells(.Rows.Count, 2).End(Excel.xlUp).Row .Range(.Cells(3, 4), .Cells(x, 4)).Value = "=IF(ISBLANK(C3),NA(),C3)" .Range(.Cells(3, 3), .Cells(x, 3)).Value = .Range(.Cells(3, 4), .Cells(x, 4)).Value .Range(.Cells(3, 4), .Cells(x, 4)).ClearContents End With End Sub