在Excel中更改#N / A值以在电子表格中保留非错误值
我有一组看起来像这样的值:
Time DataSet1 DataSet2 00:10:00 15 27 00:20:00 #N/A 25 00:30:00 33 45 00:40:00 #N/A #N/A 00:50:00 #N/A 25 01:00:00 #N/A 12
现在,我想填充所有#N / A值与表中以前的有效值。 例如:在00:40:00,00:50:00和01:00:00 DataSet1的值应该是33.如何做到这一点?
select你想修复的区域并运行这个macros:
Sub FixData() Dim r As Range For Each r In Selection If r.Text = "#N/A" Then r.Value = r.Offset(-1, 0).Value End If Next End Sub
例如,之前:
之后:
这应该为你工作:
=IF(ISERROR(<yourformulahere>),A1,<yourformulahere>)
从A2自动填充到最后一行。
只有当你的公式是“自动填充的”时才会起作用。 (:
-
selectA1,然后点击F5 ,出现GoTo对话框时,单击Special 。
-
检查公式并取消选中一切,但错误 。
- 点击OK 。
- 键入=然后↑并使用Ctrl + Enter结束 。
错误应该被转换为上面的值。
以防万一你更喜欢macros观方式:
Dim val As String Dim col_to_check As Long, cnt As Long col_to_check = 2 ' We check the 2nd column cnt = 1 ' We'll use it to check rows below For i = 1 To ActiveSheet.UsedRange.Rows.Count If IsError(Cells(i, col_to_check)) Then val = Cells(i - 1, col_to_check) Cells(i, col_to_check) = val While IsError(Cells(i + cnt, col_to_check)) Cells(i + cnt, col_to_check) = val cnt = cnt + 1 Wend End If i = i + cnt - 1 cnt = 1 Next i
我们需要用公式=above cell address
填写“#N / A”单元=above cell address
。
- CTRL + F
- input#N / A
- 单击查找全部
- 用鼠标突出显示如下图所示。
- 点击菜单上方的一个空格 – 查看椭圆(不要closures“查找和replace”窗口)
- 开始input
=
press Up key
。 - 按下CTRL + Enter
- 复制并粘贴所有文本,摆脱公式。