分享

excel中国合伙人教你另类求和,只要知道简称和全称,不管如何变,照样求和。

 L罗乐 2016-06-12

关于求和,有很多种,一般情况我们经常用的求和方式是:直接求和,单条件求和,多条件求和,今天EXCEL中国合伙人教你不一样的求和,让你工作越来越轻松,下面先看一下我们的效果图

以下图是知道供应商全称数据,现要用简称在全称里面进行查找符合称称的项,并累加起来,如下图:


下图与上图刚好相反


怎么样,有经常用到吧,好了,看了效果图在介绍下如何做的。

在介绍前,先了解一下ISNUMBER函数,此函数对单元格进行判断是不是数值函数,即:值为数字。利用此函数的此特性对简称,全称作判断单元格是否为数值,如果是则返回TRUE,如果不是则返回FALSE

在了解一下FIND函数,即判断位置函数,

FIND  函数语法具有下列参数:

  • find_text    必需。 要查找的文本。

  • within_text    必需。 包含要查找文本的文本。

  • start_num    可选。 指定开始进行查找的字符。 within_text 中的首字符是编号为 1 的字符。 如果省略 start_num,则假定其值为 1。

先介绍简称在全称里取数累加

方法一:在单元格E3单元格输入公式:

{=SUM(ISNUMBER(FIND(D3,$A$3:$A$26))*$B$3:$B$26)}

数公式为数组公式,输入完成后按CTRL SHIFT 回车,

注:大括号不是输上去的,而是按三键后自动出来的

方法二:在单元格F3输入如下公式(土豆哥版)

=SUMIF(A:A,'*'&D3&'*',B:B)

此公式利用通配符“*”与简称连接后对单元格进行求和,通配符“*”代表所有字符,在这里与简称连接后是代表简称两边的所有字数。输入完以上公式后将得出以下结果图:

下面介绍下全称在简称中进行查找并累加

方法一:在单元格L3输入如下公式:

{ =SUM(ISNUMBER(FIND($H$3:$H$26,K3))*$I$3:$I$26)}

刚好与前面的相反,效果一样,这就不解释了,

方法二:利用VBA代码进行查找累加(土豆哥版)

      代码如下:

Sub Test()      '数据简,求和全,代码  过程名称 Test   Sub 和 () 是固定语法

Dim X As Integer, Rng As Range '声明变量 X 为 整形变量,Rng 为 单元格对象变量

    For X = 2 To 25 '循环 x  从 2 到 25

        Set Rng = Range('K:K').Find(Cells(X, 'H'), , , xlPart)

        '给对象变量赋值必须用 Set

        'Find 函数返回 Range 类型的值

        '在 K 列中查找(find)单元格 Cells(X, 'H') 的值,,,xlpart(不完全匹配)

        '总结:在K列中模糊查找 H列 X 行的值,并赋值给 Rng

        If Not Rng Is Nothing Then

        '如果 rng 是 什么都没有 就

            Cells(Rng.Row, 'M') = Cells(Rng.Row, 'M') Cells(X, 'I')

            '单元格 内部 颜色号 =3 PS:给单元格填充红色

        Else '否则


            Cells(X, 'H').Interior.ColorIndex = 3

            '单元格(找到的行,M列)=单元格(找到的行,M列) 加 单元格(X行,I列)

            '数据累加

        End If

    Next

End Sub '是对应块语句所必须的结束语句

输入公式和运行程序后,得到如下效果图。


大功告成,动手试试吧,

时时观注EXCEL中国合伙人,每天精彩不断,请听下回分解,谢谢。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多