2016-04-30 30 views
0

你好,我在Excel中有一個大文件。我能夠通過使用=AVERAGE(A2:A34315)來計算整列的平均值,並得到它的平均值。現在我試圖用平均值來劃分整個列。有沒有一種更簡單的方法來做到這一點,而不需要進入新的列並手動輸入。例如,讓我們取平均發生數爲1000如何劃分整個列的平均值在Excel中的總和

=A2/1000 

我不想鍵入這一切的時候或拖,因爲我有一個文件是大。列從2開始一直到34315.這樣做的原因是我試圖規範化或縮放數據。

+2

在B2單元格中鍵入'= A2/$ A $ 9999'哪裏A99999是隻要你保持你的平均值。然後只需雙擊單元格的右下角。 –

+0

@MateenUlhaq但我必須拖動它嗎? – user3497437

+0

@ user3497437當您雙擊它時,雙擊相鄰單元格的右下角時發生了什麼? –

回答

0

以下簡短步驟將A列中所有數字的AVERAGE取出並存儲在B1中。然後用一個看起來像一個公共列標題標籤的自定義數字格式僞裝數字。底層值用於「縮放」或「正常化」從A列中的數字送入塔B.

Sub scaled() 
    With Worksheets("sheet4") 
     .Range("B1").Formula = "=average(a:a)" 
     .Range("B1").NumberFormat = "\S\c\a\l\e" 
     .Range("B2:B" & .Cells(Rows.Count, "A").End(xlUp).Row).Formula = "=a2/b$1" 
    End With 
End Sub 

你可以使用在列B中的公式等=A2/AVERAGE(A:A)但一遍一遍計算相同的平均。計算一次並將它隱藏起來應該更有效率。

+0

對於我的學習,可以請說出它代表的行.Range(「B1」)。NumberFormat =「\ S \ c \ a \ l \ e」 –

+1

將A:A的平均值放入B1後,它隱藏具有自定義數字格式的數字。反斜槓轉義每個字符以創建一個字符串,所以像** s **這樣的保留字符不會嘗試表示*秒*。我不知道B1中究竟是什麼,所以我逃脫了他們,希望OP會嘗試和模仿。 tbh,你只需要'\ Sc \ al \ e「'** Scale **來顯示。 – Jeeped

+0

很好的解釋 –

0

與下面的代碼

嘗試,如果你需要單獨的百分比再加入Range("B" & i).NumberFormat = "0.00%"

Sub getavg() 
    Dim lastrow As Long 
    Dim avgg As Variant 
    lastrow = Range("A" & Rows.Count).End(xlUp).Row 
    avgg = Application.WorksheetFunction.Average(Range("A2:A" & lastrow)) 
    For i = 2 To lastrow 
     Range("B" & i).Value = Range("A" & i).Value/avgg 
     'Range("B" & i).NumberFormat = "0.00%" 
    Next i 
End Sub