Я должен удалить большие порции информации из таблиц в файлах .xlsx с помощью Excel 2010. Каждый метод, который я пробовал до сих пор, не дал результатов, либо он потерпел крах, либо я убил его после ожидания в течение дня.
Кто-то еще создал электронные таблицы, используя сервер SQL. Я должен проанализировать данные, но для этого я должен удалить все плохие данные и затем визуализировать их. Я попросил парня на сервере фильтровать свои данные, но он говорит, что только один человек в компании может это сделать, и они слишком заняты. Я не могу комментировать это, потому что я ничего не знаю о базах данных.
В типовой таблице примерно 500 000 записей. Я попытался удалить все плохие значения вручную, используя фильтр, но мой компьютер зависает, когда я удаляю плохие записи.
Я превратил файлы .xlsx в файлы .csv, потому что я думаю, что они проще, и, хотя они кажутся быстрее, они все равно дают сбой.
Я написал сценарий VBA, который я пытался оставить запущенным в течение нескольких дней безрезультатно:
Sub delete_bad_records()
Dim not_good() As Variant
Dim cell As Excel.range
Dim none As Boolean
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
not_good = Array("example_value", "another one")
none = False
Columns("C:C").Select
For Each element In not_good
none = False
Do While Not none
Set cell = Selection.Find(element, ActiveCell)
If cell Is Nothing Then
none = True
Else
cell.Rows().Delete
End If
Loop
Next element
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
И я также написал файл .bat, используя findstr как своего рода фильтр, однако некоторые записи таинственным образом исчезают, и я не уверен почему. Общий формат:
findstr /v "keywords" "original.csv" > "filtered1.csv"
findstr /v /l "specific phrase1" "filtered1.csv" > "filtered2.csv"
findstr /v /l "specific phrase2" "filtered2.csv" > "filtered1.csv"