ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: nicolecham

[求助] 已上传附件(含03,07版),高手如云!求助又是sumif用法问题,求助

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2011-11-30 15:50 | 显示全部楼层
小花鹿 发表于 2011-11-29 10:54
=SUMIF(B2:B5,"????01*",C2:C5)

这个最牛O(∩_∩)O哈哈~

点评

这个不适合B列为纯属数值。  发表于 2011-11-30 16:00

TA的精华主题

TA的得分主题

发表于 2011-11-30 15:56 | 显示全部楼层
本帖最后由 悟空师弟 于 2011-11-30 16:04 编辑
nicolecham 发表于 2011-11-30 15:39
假如尾位的数变了,那你的公式就错误,我只需要5,6位是01,其他是不一样的


=SUM(SUMIF(A2:A14,REPLACEB(A2:A14,5,2,"01"),B2))
如果其他数位都不同(即除了5、6位是01,其他数位不再重复出现),可以用这个。

TA的精华主题

TA的得分主题

发表于 2011-11-30 16:14 | 显示全部楼层
数组公式={SUM((MID(A2:A14,5,2)="01")*(B2:B14))}

TA的精华主题

TA的得分主题

发表于 2011-11-30 16:32 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2011-11-30 16:46 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 悟空师弟 于 2011-11-30 16:50 编辑

    如果楼主非要用上SUMIF,用下面这个数组公式:
=SUM(IF(MID(A2:A14,5,2)="01",SUMIF(A2:A14,REPLACEB(A2:A14,5,2,"01"),B2)/COUNTIF(A2:A14,REPLACEB(A2:A14,5,2,"01"))))

    其实,这个公式完全可简化为=SUM((MID(A2:A14,5,2)="01")*B2:B14)

{:soso_e113:}{:soso_e113:}{:soso_e113:}{:soso_e113:}{:soso_e113:}{:soso_e113:}{:soso_e113:}{:soso_e113:}

------------------------------------------------------------------------------------------------------
    楼主纠结的是SUMIF的条件参数,不用纠结,弄明白条件参数(即SUMIF的2个参数)就知道为何结果是0了。
    首先,楼主将参数的意义弄错了,MID(A2,5,2)的运算结果是“01“,楼主的整个公式=SUMIF(A2,MID(A2,5,2),B2:B14)也就相当于计算A1:A14这个区域中的数据为“01”时对应B列数值的总和,试想,A列有“01”这样的数据出现吗?

    至于小花鹿的=SUMIF(B2:B5,"????01*",C2:C5)的计算结果为何也是0,主要是A列为纯属数字的原因,如果A列为文本格式的数值结果将是正确的。(虽然楼主附件中A列是文本格式,但,是输入数据后改为文本格式。用剪贴板可以改为文本数值。)

原理:
    数值加上通配符即变成文本数值,而数值与文本数值在某些函数中可以视为相等,有些函数中是不等的,比如数值 123 与文本数值 "123" 在TEXT可视为同等,而在SUMIF中却不同等。



改成文本型数值后的效果:

数值.gif

TA的精华主题

TA的得分主题

发表于 2011-11-30 16:50 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2011-11-30 17:03 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
悟空师弟 发表于 2011-11-30 16:46
如果楼主非要用上SUMIF,用下面这个数组公式:
=SUM(IF(MID(A2:A14,5,2)="01",SUMIF(A2:A14,REPLACEB( ...

好久不见,师弟的解释够花心思了,呵呵。

其实楼主大可不必非得用sumif,前面有这么多解法,都简单易懂。非得纠结sumif参数问题,看看函数定义:Criteria   为确定对哪些单元格相加的条件,其形式可以为数字、表达式或文本。例如,条件可以表示为 32、"32"、">32" 或 "apples"。
而楼主的这个参数,不属于以上"数字、表达式或文本"中任意一种,是个错误参数,当然无法计算。这不结了吗?

TA的精华主题

TA的得分主题

发表于 2011-11-30 17:04 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2011-11-30 17:17 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
看看这个可以吗?=SUMIF($A$2:$A$14,LEFT(A2,4)&"01"&MID(A2,7,99),$B$2:$B$14)

TA的精华主题

TA的得分主题

发表于 2011-11-30 17:18 | 显示全部楼层
我的EXCEL也用不了通配符,why?
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-6-17 20:31 , Processed in 0.046496 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表