2010-11-02 233 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列的问题和总计之间设置