数据平滑excel中的宏或python脚本,用于丢失数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据平滑excel中的宏或python脚本,用于丢失数据相关的知识,希望对你有一定的参考价值。

我正在寻找一个宏或python脚本,可以帮助我解决下面的问题。

我有一张包含数千行数据的Excel表格。有时会出现服务器中断,当时没有数据。这些实例由该特定单元格中的“/”符号表示。我希望能够找到那些“/”的所有实例,然后在这些单元格中填写一个数字,相当于它上面和下面的单元格的平均值,以“修复”错误。

Nuance 1:如果连续存在多个“/”,我希望它们都是错误串上下两个夹心单元的平均值。

我在下面附上了一张示例图片,期待任何回复!

我目前一直在尝试手动执行此操作,这显然无法正常工作。

答案

如果你必须使用VBA,而不是一些公式(见其他答案!),这里有一些相当简单的宏:

之前:

enter image description here

宏:

Sub Test()

With ActiveWorkbook.Sheets(1)

    LR = .Cells(Rows.Count, 1).End(xlUp).Row
    LC = .Cells(1, Columns.Count).End(xlToLeft).Column
    Set RNG = .Range(Cells(1, 1), Cells(LR, LC))
    With RNG
        Set CL = .Find("/", LookIn:=xlValues)
        If Not CL Is Nothing Then
            FA = CL.Address
            Do
                X = 1
                If CL.Offset(1, 0) <> "/" Then
                    CL.Value = WorksheetFunction.Average(CL.Offset(-1, 0), CL.Offset(1, 0))
                Else
                    Do
                        X = X + 1
                    Loop While CL.Offset(X, 0).Value = CL.Value
                    CL.Value = WorksheetFunction.Average(CL.Offset(-1, 0), CL.Offset(X + 1, 0))
                End If
                Set CL = .FindNext(CL)
            If CL Is Nothing Then
                GoTo DF
            End If
            Loop While CL.Address <> FA
        End If
DF:
    End With
End With

End Sub

后:

enter image description here

你必须明显改变RNG以满足你的需要,例如:.Range(Cells(3, 2), Cells(LR, LC))

还要注意我从第二行开始并将在前一行停止,你必须手动检查它们,因为它不能是相邻单元格的平均值。

以上是关于数据平滑excel中的宏或python脚本,用于丢失数据的主要内容,如果未能解决你的问题,请参考以下文章

需要使用 excel 在单元格内查找文本的宏

使用宏或 VBA 正确关闭 access 2003 中的隐藏窗口?

用于合并 Excel 中与其他列中的信息匹配的行的单元格的宏

用于替换表中的值的宏

用于搜索文件是否存在的宏并在Excel单元格中保留Y或N?

excel VBA的宏不会在同一模块中运行第二个子