2015-06-23 76 views
0

首先,我對python完全陌生。但我有一個很大的excel文件和大量的數據來清理。我在網上搜索,發現python是一個不錯的選擇。Python格式和更改excel數據

我會試着說清楚。對於工作表中的每個單元格,都有3個可用值,A,B或U。但是,如果我們不知道或者不太可能,我們會將它分配爲「X」作爲缺失數據(下面顯示一個示例)。

c1 c2 c3 
r1 B U U 

r2 B U U 

r3 B U x 

r4 B U U 

r5 B U U 

r6 B U U 

r7 B A U 

r8 B U U 

r9 B U U 

程序應該很簡單。我想比較列中不同行之間單元格中的值。如果兩行內沒有相同的值(如c2,r7),我想將「A」更改爲「x」作爲缺失數據。但是如果它已經是「X」(比如c3,r3),就通過。

任何好辦法嗎?謝謝。

+0

在Excel中這可能會容易很多。 – TigerhawkT3

+0

如果你對Python完全陌生,我假設你也是新手。因此,花一些時間閱讀[問]可能會有好處。 – boardrider

+0

http://xlwings.org/examples/可能會幫助你。聲稱適用於Windows和Mac。看起來很有趣,我可以看看它爲我自己的項目。 –

回答

0

在VBA中絕對有這樣的方法......它離Python不算太遠,它在Excel中。你考慮過了嗎?

Creating a macro to compare cell values in the same worksheet but different columns

也許像這樣通過分配字母數字?

下面是從上面鏈接的線程複製的一些代碼。你應該能夠把你自己的變量放在那裏:

Private Sub macrobygiada() 
ColumnoneStart = 3 ' C 
ColumnoneEnd = 13 'M 
ColumntwoStart = 15 'O 

Set wb = ActiveWorkbook.Sheets("Pricer") 

TotalColumn = ColumnoneEnd - ColumnoneStart 'difference of the columnnumber C to M (3 to 13) 
For Column = 1 To TotalColumn 'number of columns 
    For Cell = 3 To 25 'go through the Cells 
     If (Cells(Cell, ColumnoneStart).Value > Cells(Cell, ColumntwoStart).Value) Then 
      wb.Cells(Cell, ColumnoneStart).Font.Bold = True 
      wb.Cells(Cell, ColumnoneStart).Font.ColorIndex = 2 'colour white 
     End If 
    Next 
ColumnoneStart = ColumnoneStart + 1 
ColumntwoStart = ColumntwoStart + 1 
Next 
Set wb = Nothing 
End Sub 
+0

我會在將來做到這一點,感謝提示@cpburnz –

+0

你仍然可以編輯你的答案 –