excel怎么利用函数公式进行分类

excel怎么利用函数公式进行分类,第1张

Excel中的函数可谓是有百用之处,函数还可以做分类汇总,具体该如何做呢对于新手来说还是有一定难度,怎么办接下来是我为大家带来的excel利用函数做分类汇总的教程。

excel利用函数做分类汇总的方法

函数做分类汇总步骤1:如上图所示,在F1单元格输入公式:

="平均销售额"&SUBTOTAL(101,E2:E9)

按回车键即可计算销售额的平均值。

函数做分类汇总步骤2:如上图所示,选择B列右侧的按钮,在d出的窗口中勾选“张三”项进行自定义筛选,F1分类汇总结果将自动计算,并忽略隐藏值。

函数做分类汇总步骤3:Excel2007可使用SUBTOTAL函数分类汇总。

有关分类汇总的推荐阅读:

Excel数据分类汇总满足多种数据整理需求

下面我们针对三种不同的分类汇总需求,为大家介绍不同的解决方案。这三种需求分别是:既想分类汇总又想分类打印、不想分类打印只是想随时查看各类数据的明细和统计情况、不想打乱正常的流水式数据表格的数据顺序而是想随时查看各类数据的统计结果(此处假定将统计结果保存在另外一个工作表中)。

需求一、既想分类汇总,又想分类打印

解决方案:直接利用Excel内置的“分类汇总”功能来实现。

1、选中工程类型列的任意一个单元格,按一下“常用”工具栏上的“升序排序”或“降序排序”按钮,对数据进行一下排序。

注意:使用“分类汇总”功能时,一定要按分类对象进行排序!

2、执行“数据→分类汇总”命令,打开“分类汇总”对话框。

图2

3、将“分类字段”设置为“工程类型”;“汇总方式”设置为“求和”;“选定汇总项”为“面积”和“造价”;再选中“每组数据分页”选项。最后,确定返回。

4、分类汇总完成。

需求二、不想分类打印,只是想随时查看各类数据的明细和统计情况

解决方案:利用Excel自身的“自动筛选”功能来实现。

1、任意选中数据表格中的某个单元格,执行“数据→筛选→自动筛选”命令,进入“自动筛选”状态。

2、分别选中F203、G203单元格(此处假定表格中共有200条数据),输入公式:=SUBTOTAL(9,F3:F202)和=SUBTOTAL(9,G3:G202)。

小提示:此函数有一个特殊的功能,就是后面进行自动筛选后,被隐藏行的数据不会被统计到其中,达到分类统计的目的。

3、以后需要随时查看某类(如“经济住宅”)数据的明细和统计情况时,点击“工程类型”右侧的下拉按钮,在随后d出的快捷菜单中即可。

需求三、如果我们不想打乱正常的流水式数据表格的数据顺序,而是想随时查看各类数据的统计结果(此处假定将统计结果保存在另外一个工作表中)

解决方案:利用Excel的函数来实现。

1、切换到Sheet2工作表中,仿照图5的样式,制作好一个统计表格。

2、分别选中B3、C3、D3单元格,输入公式:=COUNTIF(Sheet1!$E:$E2,A3)、=SUMIF(Sheet1!$E:$E2,A3,Sheet1!$F:$F2)、=SUMIF(Sheet1!$E:$E2,A3,Sheet1!$G:$G2)。

3、同时选中B3、C3、D3单元格,将鼠标移至D3单元格右下角成细十字线状时,按住左键向下拖拉至D10单元格,将上述公式复制至B4至D10单元格区域中。

4、选中B11单元格,输入公式:=SUM(B3:B10),并仿照上面的 *** 作,将此公式复制到C11和D11单元格中。

确认以后,各项统计数据即刻呈现在我们的面前。

如果要显示外部行或列字段的分类汇总,请单击“分类汇总”下的“自动”选项。

如果要显示内部行或列字段的分类汇总,请单击“分类汇总”下的“自定义”选项,然后单击右面框中的某个汇总函数。而对基于 OLAP 数据库中源数据的数据透视表报表而言,“自定义”选项无效。

如果要删除分类汇总,可单击“分类汇总”下的“无”选项。

如果要使用其他汇总函数,或是要显示多种类型的分类汇总,可单击“自定义”右面框中所需的汇总函数。请参阅可用汇总函数的说明。

Function LkStr(rg1 As Range, ByVal rng1 As Range, rg2 As Range, ByVal rng2 As Range, rg3 As Range)
    If rg1RowsCount <> rg2RowsCount Or rg1ColumnsCount > 1 Or rg2ColumnsCount > 1 Or rg3ColumnsCount > 1 Then
        LkStr = "#REF!"
        Exit Function
    End If
    Dim r1%, r2%, r%, rng As Range, c1%, c2%, c%, k%, arr()
    r1 = rg1Row: r2 = rg2Row: r = r2 - r1
    c1 = rg1Column: c2 = rg2Column: c = c2 - c1
    For Each rng In rg1
        If rngValue = rng1Value And rngOffset(r, c)Value = rng2Value Then
            ReDim Preserve arr(k)
            arr(k) = Cells(rngRow, rg3Column)Value
            k = k + 1
        End If
    Next
    LkStr = Join(arr(), ";")
End Function

参数说明:

LkStr (查找区域1,值单元格1,查找区域2,值单元格2,结果区域)

这个问题可能是由于Excel的数组限制导致的。在Excel中,一个工作表中的数组长度最大为65,536行,而你的数据长度为257行。

解决方法:

将数据分割成多个工作表,每个工作表的数据不超过65,536行。

使用其他函数来代替FILTER函数,例如SUMIFS、COUNTIFS等函数。

使用第三方插件或者脚本语言来进行数据处理,规避Excel的数组长度限制。

对于空值条件,可以使用IF函数来判断空值,例如:=IF(B2="","",A2),这样就不会出现calc的问题。

总之,根据你的需求和技能水平来选择合适的解决方案。

IF 函数不是这么使用的;

80%<M10<90% 是数学上的表达方法,在 Excel 中不能这样使用;

对于70~80% 之间的比率是多少?

先写一个公式供参考,假设 70~80% 之间为 0:

=IF(M10>=130%,L101,IF(M10>=120%,L1008,IF(M10>=110%,L1006,IF(M10>=100%,L1005,IF(M10>=90%,L1004,IF(M10>=80%,L1003,IF(M10>=70%,0,-500)))))))

如果你不想要宏处理,只用函数有这个笨办法帮到你。

=IF(MOD(MATCH(LOOKUP(9E+307,G:G),G:G,0),2)<>0,INDEX($G$1:$G$30,MATCH(LOOKUP(9E+307,$G$1:$G$30),$G$1:$G$30,0),1)+INDEX($G$1:$G$30,MATCH(LOOKUP(9E+307,$G$1:$G$30),$G$1:$G$30,0)-1,1),"参数不够,不能计算")


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12909217.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-28
下一篇 2023-05-28

发表评论

登录后才能评论

评论列表(0条)

保存