在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自动填充到最后一行。

只有当你的公式是“自动填充的”时才会起作用。 (:

https://support.google.com/docs/answer/3093349

  1. selectA1,然后点击F5 ,出现GoTo对话框时,单击Special

  2. 检查公式并取消选中一切,但错误

  3. 点击OK
  4. 键入=然后并使用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

  1. CTRL + F
  2. input#N / A
  3. 单击查找全部
  4. 用鼠标突出显示如下图所示。
  5. 点击菜单上方的一个空格 – 查看椭圆(不要closures“查找和replace”窗口)
  6. 开始input= press Up key
  7. 按下CTRL + Enter
  8. 复制并粘贴所有文本,摆脱公式。

在这里输入图像说明