excel数据处理技巧:组合函数统计产品批号

news2024/11/23 12:57:43

这是一个看似普通的编号问题,可竟然动用了TEXT和SUMPRODUCT两个重量级的函数共同出手才得以解决。以往遇到的编号问题,大多数都是COUNTIF的拿手好戏,但是今天这个问题COUNTIF完全插不上手,来看看模拟的数据吧。

如图所示,C列的批号要求用公式生成,说是批号,其实就是一个编号的问题,为什么这么说,还得从这个批号的规律来解释。

大家仔细观察一下就不难发现,在这个六位的批号中,其实是由两部分组成的,左边四位是生产日期的年和月,右边两位就是该产品在同一个月内生产的次数,为了便于理解,我们对在同一个月中多次生产的商品用不同颜色标注出来,之后再看就清楚了。

以丹参为例,虽然一共出现了四次,但是在4月份只有三次,因此对应的批号分别为200401-200403,所以这个问题的本质还是编号。

搞清楚了这一点,我们再来分析问题该如何解决。

正如前面分析的,批号是由两部分组成的,第一部分很容易,可以直接用TEXT函数从生产日期中得到,公式为:TEXT(A2,"yymm")。

TEXT函数的教程之前分享过很多篇,不再细说了,公式中的"yymm"表示将日期按照两位年两位月的格式显示结果。

问题的难点在于第二部分,同一个月内出现的次数,如果有一个辅助列的话,COUNTIFS就可以轻松解决,公式为:=COUNTIFS($D$2:D2,D2,$B$2:B2,B2)

公式中有两个条件,日期(其实是年月)和品名,关于COUNTIFS的用法,可以参阅往期教程《同样是countifs函数,为什么同事却使得比你好?原因在这里!》,这里要重点说明的是条件区域的写法,$D$2:D2和$B$2:B2中,只对区域的起始单元格锁定,这样得到的就是累计多条件计数的结果。

如果条件区域是整列的话,得到的次数就不是累计的,而是最终出现的总次数,通过上图中的结果很容易搞明白这一点。

现在的问题是,如果没有这个辅助列,还能用COUNTIFS吗?

答案是不行!

因为COUNTIFS的特点就是条件区域只能使用单元格区域,而不能使用其他公式。

如果要使用公式作为条件区域的话,会弹出一个提示框:

同样的情况在COUNTIF和SUMIF、SUMIFS中都是类似的,只能使用单元格区域,这一点很重要。

因此,如果要在不使用辅助列的情况下解决这个问题,就必须用到SUMPRODUCT函数。

公式看起来会稍微有点长,=SUMPRODUCT((TEXT($A$2:A2,"yymm")=TEXT(A2,"yymm"))*($B$2:B2=B2))

这个公式就是在没有辅助列的情况下实现了多条件的累计计数,公式中的TEXT($A$2:A2,"yymm")=TEXT(A2,"yymm")是对日期(年月)进行判断,$B$2:B2=B2是对品名进行判断,分别得到两组逻辑值,两组逻辑值相乘后由SUMPRODUCT函数相加就能得到计数结果。

至此,最终的公式也就呼之欲出了,第一部分由TEXT得到年月,第二部分如果直接使用SUMPRODUCT得到的计数结果还不行,因为计算结果必须是两位数,如果不足两位的要在前面补零,这就还得用到TEXT函数,这种用法的格式是TEXT(要处理的数字, "00"),有几个0就表示得到的结果是几位数,因此最终的公式就是:

=TEXT(A2,"yymm")&TEXT(SUMPRODUCT((TEXT($A$2:A2,"yymm")=TEXT(A2,"yymm"))*($B$2:B2=B2)),"00")

结束语:今天这个问题不是很常见,但是这个问题对于学习公式函数是很有价值的,公式中包含了很多重要的知识点,总结如下。

1.TEXT函数中日期代码y和m的用法;

2.TEXT函数中关于指定数字位数的用法;

3.SUMPRODUCT函数实现多条件累计计数的用法,重点是条件区域中$符号的用法;

4.COUNTIF(S)、SUMIF(S)等函数中对于区域的要求,这一点算是一个隐藏的知识点吧。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/115137.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

「 理财与风险控制|养老系列」你想象中的高端养老社区是什么样?

本文主要介绍为什么养老规划需要考虑养老社区的部分,当前市场上养老社区的各种现状,养老社区从各个角度分类,选择养老社区需要关注的要素以及保险保单能够提供的养老权益是怎样的 文章目录01 为什么要关注养老社区?02 为什么关注高…

QT多窗口编程与文件IO编程

目录 一、消息对话框 QMessageBox(掌握) 二、常用窗口类(掌握) 三、主窗口类 QMainWindow(重点) 四、parent参数(掌握) 五、窗口传参 5.1 成员函数/构造函数 5.2 信号槽传参 六、事件…

劳动自由——你真的理解马克思说的劳动吗

目录 一、空谈“劳动是一切财富和一切文化的源泉”是错误的 个人理解——剥削与马斯洛需求的满足程度 二、马克思对劳动的定义是什么 三、马克思所说的劳动自由 1、实现劳动自由的实现路径 2、劳动自由的状态 一、空谈“劳动是一切财富和一切文化的源泉”是错误的 空谈所…

ES6 模块化、webpack、@ 代表src目录的设置

文章目录webpackSource Map 代表src目录的设置ES6 模块化要求默认 导出默认导入按需 导出、导入混合使用直接导入 并执行模块中的代码webpack 默认 约定: 自定义 打包的 入口与出口 const path require(path) // 导入node.js中 专门操作路径的模块 module.expor…

从华科到清华这些年,我和焦虑成为朋友

Datawhale干货 作者:赵子一,清华大学,Datawhale成员硕士求职碰壁被今年的求职形势狠狠地“教育”了一番2021年的秋天开启了我读硕士的第三个年头。当时的我还在某家公司做实习生。本来是可以转正的,但是出于各种考虑,我…

C++:STL:常用容器(上):deque容器

1:deque容器的基本概念 功能: 双端数组,可以对头端进行插入和删除操作。 deque 与vector区别 1:vector对于头部的插入删除效率低,数据量越大,效率越低。 2:deque相对而言,对头部的插…

产品第一性原理提升数据转化

小飞象交流会答应自己的事就尽力去做到,要去的地方就努力去抵达。内部交流│18期产品第一性原理提升数据转化data analysis●●●●分享人:永波(阿外)‍数据分析需要透过现象看本质,先从纷繁复杂的表象中进行抽丝剥茧&…

【HTML】2023跨年烟花代码

*2022年圣诞节到来啦,很高兴这次我们又能一起度过~ 📂文章目录前言效果展示一、夜景烟花绽放动画效果HTML源码2023年(新年)春节倒计时代码源码2023除夕倒计时效果展示源码宇宙星空-效果展示1.源码2.思路3.步骤(js部分)更多干货🚀前言 时光荏苒…

图像处理:Tiler制作你的专属卡通头像和LOGO(圣诞特别篇)

目录0 前言1 安装与贴图2 算法原理2.1 计算像素频率2.2 计算像素相对距离2.3 计算合适贴图3 配置功能4 使用:以圣诞老人为例0 前言 Tiler是一种使用各种其他较小图像平铺创建新图像的工具,它与其他马赛克工具不同,因为它可以适应多种形状、大…

微信开放平台之第三方平台开发,模板小程序如何提交?

大家好,我是悟空码字 12月25日,天气晴朗,阳光普照,今天是圣诞节。因为疫情影响,小羊人的增多,街上放眼望去,人烟稀少。楼下除了几个十一二岁的小男孩在玩耍,也没有像往日老人悠闲打…

Java --- JUC之线程中断机制

目录 一、什么是中断机制 二、三大中断方法 2.1、如何停止中断运行中的线程? 2.1.1、通过volatile实现线程中断停止 2.1.2、通过AtomicBoolean实现线程中断停止 2.1.3、通过interrupt()实现线程中断停止 2.2、interrupted()方法使用 一、什么是中断机制 一个…

如何定制化Spring Boot Starter,这次我终于学会了

文章目录什么是Spring Boot Starter实现步骤启动器自动配置包总结自定义Starter的实现逻辑Spring Boot Starter官网描述:Spring Boot Starter官方介绍 什么是Spring Boot Starter Starters可以理解为启动器,它包含了一系列可以集成到应用里面的依赖包&…

人工智能:通过Python实现语音合成的案例

今天给大家介绍一下基于百度的AI语音技术SDK实现语音合成的案例,编程语言采用Python,希望对大家能有所帮助! 注册百度AI平台应用百度AI开放平台-全球领先的人工智能服务平台 首先登陆自己的百度账户,打开百度的AI开发平台页面 搜索…

python实战——阿里大药房自动化购买药品(selenium)

前言 大家早好、午好、晚好吖 ❤ ~ 我给大家准备了一些资料,包括: 2022最新Python视频教程、Python电子书10个G (涵盖基础、爬虫、数据分析、web开发、机器学习、人工智能、面试题)、Python学习路线图等等 直接在文末名片自取即可&#x…

循环神经网络-基础篇Basic-RNN

循环神经网络-基础篇Basic-RNN 我们把全连接网络也叫做稠密网络DNN,其中X1到X8是不同样本的特征 而本文介绍的循环神经网络RNN主要处理的是具有序列关系的输入数据,即前面的输入和后面的输入是有关系的。例如天气,股市,金融数据和…

iText如何提取PDF中的数据——1. 总览

作者:CuteXiaoKe 微信公众号:CuteXiaoKe | 原文 最近收到大家很多的私信提问,也是大家比较关心的问题:如果我有一个PDF,我该如何使用iText获取PDF里面的内容呢,比如文本、图片、表格等。iText官方给出了相关的整体解决…

基于Xlinx的时序分析与约束(5)----衍生时钟约束

衍生时钟约束语法 衍生时钟(Generated Clocks,又称为生成时钟)是指由设计中已有的主时钟通过倍频、分频或者相移等操作后产生的新的时钟信号,如由MMCM或PLL或由组合逻辑生成的倍、分频时钟信号。 衍生时钟约束必须指定时钟源&…

【高级篇04】MySQL逻辑架构

文章目录第四章:逻辑架构逻辑架构SQL执行流程数据库缓冲池第四章:逻辑架构 逻辑架构 第一层:连接层。客户端访问MySQL服务器,首先建立TCP连接,经过三次握手建立连接成功后,MySQL服务器对TCP传输过来的账号…

各个集合比较

1、 Queue与Deque的区别 引言: 在研究java集合源码的时候,发现了一个很少用但是很有趣的点:Queue以及Deque; 平常在写leetcode经常用LinkedList向上转型Deque作为栈或者队列使用,但是一直都不知道Queue的作用&#x…

微信小程序入门

目录 一,简介 二,小程序开发环境搭建 1.申请账号 2.安装开发工具 3.小程序工具使用 三,目录结构以及json配置 1.目录结果 2.json配置 3.JSON 语法 4.WXML 5.wxss 6.JS 逻辑交互 四,小程序宿主环境 1.程序与页面 2.组件…