excel宏处理魔法代码,实现按月份统计销售额和按产品统计销售额

news2024/11/25 4:33:35

目录

  • 前言
  • 第一步:打开文件
  • 第二步:选中左侧任意一个sheet双击
  • 第三步:粘贴 魔法代码
  • 第四步:点击菜单栏 运行=>运行子程序和用户窗口
  • 第五步:切换回文件,我们就可以看到已经生成了月份销售额统计和产品销售额统计
  • 总结

前言

在日常办公中,我们经常会遇到统计数据的问题。
今天我来给大家介绍,一秒钟生成统计数据的方法。
在这里插入图片描述

第一步:打开文件

在这里插入图片描述

按ALT + F11 打开Excel的VBA编辑器
在这里插入图片描述

第二步:选中左侧任意一个sheet双击

在这里插入图片描述

第三步:粘贴 魔法代码

Sub ProcessSalesData()
    Dim ws As Worksheet
    Dim summaryWs As Worksheet
    Dim lastRow As Long
    Dim i As Long
    Dim monthSales As Object
    Dim productSales As Object
    Dim dateKey As String
    Dim product As String
    Dim summaryRow As Long
    Dim key As Variant

    ' 设置原始数据工作表为第一个工作表
    Set ws = ThisWorkbook.Sheets(1)
    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row

    ' 删除空行
    For i = lastRow To 2 Step -1
        If Application.WorksheetFunction.CountA(ws.Rows(i)) = 0 Then
            ws.Rows(i).Delete
        End If
    Next i

    ' 格式化日期
    For i = 2 To lastRow
        If IsDate(ws.Cells(i, 1).Value) Then
            ws.Cells(i, 1).NumberFormat = "yyyy-mm-dd"
        End If
    Next i

    ' 创建汇总工作表
    On Error Resume Next
    Set summaryWs = ThisWorkbook.Sheets("销售额统计")
    On Error GoTo 0
    If summaryWs Is Nothing Then
        Set summaryWs = ThisWorkbook.Sheets.Add(After:=ws)
        summaryWs.Name = "销售额统计"
    Else
        summaryWs.Cells.Clear
    End If

    ' 添加汇总表头
    summaryWs.Cells(1, 1).Value = "月份"
    summaryWs.Cells(1, 2).Value = "销售额"
    summaryWs.Cells(1, 4).Value = "产品"
    summaryWs.Cells(1, 5).Value = "销售额"
    summaryRow = 2

    ' 创建字典对象存储每月和每个产品的销售总额
    Set monthSales = CreateObject("Scripting.Dictionary")
    Set productSales = CreateObject("Scripting.Dictionary")

    ' 计算每月和每个产品的总销售额
    For i = 2 To lastRow
        If IsDate(ws.Cells(i, 1).Value) Then
            dateKey = Format(ws.Cells(i, 1).Value, "yyyy-mm")
            If Not monthSales.exists(dateKey) Then
                monthSales.Add dateKey, ws.Cells(i, 3).Value
            Else
                monthSales(dateKey) = monthSales(dateKey) + ws.Cells(i, 3).Value
            End If
        End If
        
        product = ws.Cells(i, 2).Value
        If product <> "" Then
            If Not productSales.exists(product) Then
                productSales.Add product, ws.Cells(i, 3).Value
            Else
                productSales(product) = productSales(product) + ws.Cells(i, 3).Value
            End If
        End If
    Next i

    ' 将每月销售总额写入汇总工作表
    For Each key In monthSales.keys
        summaryWs.Cells(summaryRow, 1).Value = key
        summaryWs.Cells(summaryRow, 2).Value = monthSales(key)
        summaryRow = summaryRow + 1
    Next key

    ' 将产品销售总额写入汇总工作表
    summaryRow = 2
    For Each key In productSales.keys
        summaryWs.Cells(summaryRow, 4).Value = key
        summaryWs.Cells(summaryRow, 5).Value = productSales(key)
        summaryRow = summaryRow + 1
    Next key

    ' 清理
    Set monthSales = Nothing
    Set productSales = Nothing
End Sub

第四步:点击菜单栏 运行=>运行子程序和用户窗口

在这里插入图片描述

第五步:切换回文件,我们就可以看到已经生成了月份销售额统计和产品销售额统计

在这里插入图片描述

总结

以上就是今天要讲的内容,本文介绍excel数据统计,赶紧上手试试吧。
如果觉得有用欢迎点赞,关注
有问题留言我!!

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

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

相关文章

合合信息文档解析工具重磅升级!智能识别,效率翻倍!

官.网地址&#xff1a;合合TextIn - 合合信息旗下OCR云服务产品 智能文档处理(IDP)是利用人工智能技术,自动从复杂的非结构化和半结构化文档中抽取关键数据,并将其转换成结构化数据的技术。能够自动识别、提取并结构化处理文档中的关键信息。这种技术通常基于自然语言处理&…

经验分享,两个在线图片处理网站在线抠图和删除不需要的元素

分享两个好用的在线图片处理网站 1.在线抠图&#xff0c;图片背景消除 网址&#xff1a;https://www.remove.bg/zh 2.删除图片中不需要的对象、人物和文本。 网址&#xff1a;https://magicstudio.com/zh/magiceraser/

DLS平台:惠誉全球经济展望——今年调增至2.6%,明年调减!

摘要 尽管全球货币政策逐渐转向宽松&#xff0c;惠誉国际评级&#xff08;Fitch Ratings&#xff09;在最新的《全球经济展望》中对2024年全球经济增长进行了上调。然而&#xff0c;由于美国经济增速放缓和其他因素的影响&#xff0c;2025年的全球经济增长预期则被下调。这篇文…

最新Prompt预设词分享,DALL-E3文生图+文档分析

使用指南 直接复制使用 可以前往已经添加好Prompt预设的AI系统测试使用&#xff08;可自定义添加使用&#xff09; 支持GPTs SparkAi SparkAi创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统&#xff0c;支持OpenAI-GPT全模型国内AI全模型。支持GPT-4o…

从零开始:精通基于大型语言模型(LLM)的Agent应用开发

一、引言 随着人工智能技术的飞速发展&#xff0c;大型语言模型&#xff08;Large Language Model&#xff0c;简称LLM&#xff09;已经成为自然语言处理&#xff08;NLP&#xff09;领域的核心技术之一。这些模型&#xff0c;如GPT、BERT等&#xff0c;通过大量的文本数据训练…

pop链详细分析、构造(以[NISACTF 2022]babyserialize为例)

目录 [NISACTF 2022]babyserialize &#xff08;一&#xff09;理清pop链&#xff08;链尾 链头&#xff09;&#xff0c;标注步骤 1. 先找eval、flag这些危险函数和关键字样&#xff08;这是链尾&#xff09; 2.往eval()上面看 3.往$bb()上面看 4.往strtolower()上面看 …

自制调色小工具给图片加滤镜,修改图片红、绿、蓝通道及亮度,修改图片颜色

上篇&#xff1a; 上篇我们给地图添加了锐化、模糊等滤镜&#xff0c;这篇来写一个小工具给图片调色。 调色比锐化等滤镜要简单许多&#xff0c;直接拿到像素值修改即可。不需要用到卷积核。。。(*^▽^*) 核心原理就是图像结构&#xff0c;使用context.getImageData获取图像像…

热词排序算法——贝叶斯均值法

热词排序算法——贝叶斯均值法 贝叶斯均值法基本思想假设变量举例说明python实现 贝叶斯均值法 当前&#xff08;例如今天&#xff09;的某个词出现的频率相比于历史发生突增&#xff0c;那么这个词的热度上升。 当某个词历史出现的次数为0&#xff0c;而当前出现的次数为100…

超分辨率重建——2022冠军RLFN网络推理测试(详细图文教程)

&#x1f4aa; 专业从事且热爱图像处理&#xff0c;图像处理专栏更新如下&#x1f447;&#xff1a; &#x1f4dd;《图像去噪》 &#x1f4dd;《超分辨率重建》 &#x1f4dd;《语义分割》 &#x1f4dd;《风格迁移》 &#x1f4dd;《目标检测》 &#x1f4dd;《暗光增强》 &a…

四十七、openlayers官网示例Image Filters——给地图添加锐化、浮雕、边缘等滤镜效果

官网demo示例&#xff1a; Image Filters 这篇讲的是如何给地图添加滤镜。 一看代码&#xff0c;&#xff0c;好家伙&#xff0c;信息量满满&#xff0c;全都看不懂。。。 咱只能一段一段扒。。。 首先添加一个底图到地图上&#xff0c;这个好理解。 const imagery new Til…

开源表单流程设计器:做好流程化办公 实现提质增效!

在社会竞争激烈的今天&#xff0c;如何通过各种渠道和方式实现提质增效&#xff1f;低代码技术平台、开源表单流程设计器的出现&#xff0c;正是助力企业实现流程化办公&#xff0c;进入数字化转型的得力助手。想要利用好企业内部数据资源&#xff0c;打破信息化孤岛&#xff0…

5个好用的AI绘画软件推荐,小白也能轻松上手

前言 随着人工智能技术的飞速发展&#xff0c;AI绘画软件已经成为艺术创作领域的新宠。这些软件不仅能够提供强大的绘画辅助功能&#xff0c;而且操作简便&#xff0c;即使是绘画新手也能轻松上手。本文将为您推荐5款好用的AI绘画软件&#xff0c;帮助您开启艺术创作的大门。 …

react-2 jsx的学习

1.什么是JSX&#xff1f; 概念&#xff1a;JSX就是Javascript和XML&#xff08;HTML&#xff09;的缩写&#xff0c;表示在js代码中编写HTML模板结构&#xff0c;它是React中编写UI模板的方式&#xff0c;如下图就是jsx: 优势&#xff1a;1.HTML的声明式模板写法&#xff1b;…

【Go语言精进之路】构建高效Go程序:了解string实现原理并高效使用

&#x1f525; 个人主页&#xff1a;空白诗 &#x1f525; 热门专栏&#xff1a;【Go语言精进之路】 文章目录 引言一、Go语言的字符串类型1.1 字符串的定义1.2 字符串的零值可用1.3 字符串的不可变性1.4 字符串的拼接1.5 字符串的常用方法1.6 实际使用示例 二、字符串的内部表…

HTML学习和JAVAScript学习

HTML 标签 <!DOCTYPE html> <!-- 文档类型为html --> <html lang"en"> <head><meta charset"UTF-8"> <!-- 使用字符集UTF-8 --> <!-- 设置浏览器兼容性 --><meta name"viewpo…

TCP/IP协议简要介绍

TCP/IP for IP version 4&#xff08;IPv4&#xff09;是一种网络协议&#xff0c;Microsoft Windows使用该协议通过internet与其他计算机进行通信。理想情况下&#xff0c;只要基于Windows的计算机通过网络进行通信&#xff0c;就会使用TCP/IP。 本文介绍TCP/IP协议的组成、协…

vue2双层循环生成动态ref,并跳转到组件内的指定位置

话不用多说,先上一个视频,看看是不是你们需要的效果 vue2双层循环生成动态ref,并跳转到组件内的指定位置 <div class"menu-content" ref"menu"><el-collapse v-model"activeNames"><el-collapse-item style"padding: 10px;…

Java每日作业day6.18

ok了家人们今天我们继续学习方法的更多使用&#xff0c;闲话少叙&#xff0c;我们来看今天学了什么 1.重载 在同一个类中&#xff0c;可不可以存在同名的方法&#xff1f;重载:在同一个类中&#xff0c;定义了多个同名的方法&#xff0c;但每个方法具有不同的参数类型或参数个…

传统车牌识别

主要参考&#xff1a;https://blog.csdn.net/qq_40784418/article/details/105586644 其它介绍&#xff1a; https://blog.csdn.net/great_yzl/article/details/120127962 https://blog.csdn.net/onepunch_k/article/details/115480904 cv2.matchTemplate https://docs.ope…

三星SAINT-D技术引领HBM内存堆叠革命

三星电子即将在今年推出一项革命性技术&#xff0c;允许在CPU或GPU上堆叠高带宽内存&#xff08;HBM&#xff09;&#xff0c;根据韩国经济日报的报道&#xff0c;这一消息在圣何塞举办的三星晶圆代工论坛2024上公布&#xff0c;并得到业内消息人士证实。这项3D封装技术为2025年…