2010-11-02 230 views
0

我有信息的Excel工作表的格式很像一個測試:計算百分比在列

Choice  Chosen  Percentage 
A 
B 
C 
D 
TOTAL 
False 
True 
TOTAL 

所選列給每個選擇了多少次選擇,以及相應的總計行總計題。我需要一種方法來快速找到每個被選中的百分比(選擇/總計),但我不知道如何去做。

+0

還能有空白值? – 2010-11-03 17:59:12

回答

1

我不認爲你需要VBA爲。如果我理解這個問題,那只是一個簡單的公式。假設這些是標題並從單元格A1開始,那麼列b(選擇爲A)的百分比將類似於= B2/$ F2,並且您將列設置爲百分比類型。

注意$ F是一個絕對引用到F,這樣,當你填寫了下來,它總是指向F行(總行),但是列數的變化,因爲它應該。

+0

是的,這是一個簡單的公式,但我有100個問題,每個有2-5個選擇 - 所有這些都需要計算的百分比。我想要的是一種方式來完成它,所以我不必手動進行。 – kylerw 2010-11-02 21:31:29

+0

另外,請記住計算的總數也在選定列中。 – kylerw 2010-11-02 21:34:31

+0

但是......一個公式可以一次計算出來。你只需填寫(這是一個點擊)。這是不是一個正常的Excel表單?我已經用100多個選項來完成類似的事情。你知道你可以通過旋轉來獲得這些總數和百分比,對嗎?你擔心你的小計嗎?你是否可以控制工作表中數據的格式? – Nikki9696 2010-11-02 21:46:10

0

我寫的飛行,並在該窗口本身的代碼,所以你需要注意的錯誤。此外,你需要把代碼僞代碼

dim currRow as integer 
dim frs as boolean 
firstRow = 1 
frs = false 
range("A1").select 
<loop over column A until you reach a blank value> 
    If selection.value == "Choice" then 
    ' move to next row, nothing to see here 
    else if not selection.value == "Total" then 
    if frs = false then 
     firstRow = selection.row 
     frs = true 
    endif 
    else if selection.value = "Total" then 
    frs = false 
    dim i as integer 
    for i = firstRow to selection.row -1 
     range("C" + cstr(i)).formula = "=B"+ cstr(1)+"/B" + cstr (selection.row) ' or something to that effect 
    next 
    end if 
    Selection.cells(2,1).select ' selects the next cell vertically 
end loop 

我使用FRS來表示「FIRSTROW」已在A列的問題和總計之間設置