快速多关键字统计

实例需求:在每个章节中统计关键字(“√”, “×”, “〇”, “空缺”)的个数,B列中的章节编号作为章节划分的标识,例如1.1.1 ~ 1.1.5为第1.1章节,对应工作表的12 ~ 16行,其中黄色列为需要统计的数据区域,即E12:AA16,统计结果填写在AB:AE列中每个章节的标题行内,如下图所示。

在这里插入图片描述

解决此问题的几个要点。

  • 识别每个章节所在行
  • 确定每个章节的数据区域
  • 统计包含关键词的单元格个数
  • 将统计结果写入指定单元格

示例代码如下。

Sub Demo()
    Dim objDic As Object
    Dim rngData As Range
    Set objDic = CreateObject("scripting.dictionary")
    Set rngData = Range([B9], Cells(Rows.Count, 2).End(xlUp))
    For Each rngcel In rngData
        ch = Split(rngcel.Value, ".")
        If VBA.IsNumeric(ch(0)) Then
            If objDic.exists(ch(0)) Then
                Set objDic(ch(0)) = Union(objDic(ch(0)), rngcel)
            Else
                Set objDic(ch(0)) = rngcel
            End If
        End If
    Next rngcel
    skey = Array("√", "×", "〇", "空缺")
    For Each strKey In objDic.keys
        Set rngCh = objDic(strKey).Offset(0, 3).Resize(, 23)
        iRow = objDic(strKey).Cells(1).Row - 1
        For j = 0 To UBound(skey)
            Cells(iRow, 28 + j).Value = Application.CountIf(rngCh, skey(j))
        Next j
    Next strKey
End Sub

【代码解析】
第4行代码创建字典对象。
第5行代码定位B列数据区域。
第6~15行代码循环遍历B列单元格。
第7行代码调用split函数拆分单元格,分隔符为半角句号。
第8行代码判断拆分后的数组第一元素(即章节号中第一个分隔符之前的数字,以下检查章号)是否为数字,如果不是数字,说明该行是章节标题行。
第9行代码判断字典中是否已经存在该章号。

  • 如果已经存在,那么第10行代码调用union函数将当前单元格与字典中保存的Range对象进行合并。
  • 如果不存在,第12行代码将当前单元格保存在字典中。

第16行代码指定关键字数组。
第17~23行代码循环遍历关键字数组。
第18行代码定位每个章节的数据区域。
第19行代码获取章节的标题行。
第20~22行代码循环统计每个关键字。
第21行代码调用工作表函数CountIf统计在指定的单元格区域内包含关键词的单元格个数。
第25行代码释放对象变量占用的系统资源。

https://club.excelhome.net/thread-1651481-1-1.html

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

IDEA中使用Git提交代码提示:您即将把CRLF行分隔符提交到Gt仓库。 建议将core.autocrlf Git特性设置为trUe,以免发生行分隔符问题。

IDEA中使用Git提交代码提示:您即将把CRLF行分隔符提交到Gt仓库。 建议将core.autocrlf Git特性设置为trUe,以免发生行分隔符问题。 问题背景: 在IDEA中,使用Git提交代码到远程仓库时,结果弹出一个警告窗口 问题原因: …

【测试开发】突破瓶颈必学技能——什么是k8s的核心概念?

目录 Docker 和K8s k8s中的重要概念 Master 节点 Node 节点 集群(Cluster) 标签(Label) 命名空间(Namespace) 容器组(Pod) 无状态部署(Deployment)…

【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码

【2023五一杯数学建模】 B题 快递需求分析问题 1 题目 请依据以下提供的附件数据和背景内容,建立数学模型,完成接下来的问题:问题背景是,网络购物作为一种重要的消费方式,带动着快递服务需求飞速增长,为我…

AVL 树(自平衡二叉搜索树) 介绍

AVL 树(自平衡二叉搜索树) 介绍 前言 在介绍二叉搜索树的章节中提到,二叉搜索树可能退化为线性链表,失去作为二叉树的各种优势。那么过程中需要维持二叉树的形式,同时左右子树的深度差异可控,如果能实现这两个条件&a…

音视频 FFmpeg

文章目录 前言视频编解码硬件解码(高级)软解码(低级)软、硬解码对比视频解码有四个步骤Android 系统中编解码器的命名方式查看当前设备支持的硬解码 基础知识RGB色彩空间常见的格式对比YUV索引格式分离RGB24像素数据中的R、G、B分量 BMP 文件格式格式组成像素排列顺序RGB24格式…

autosar软件分层架构组成--汽车电子

介绍 autosar是汽车软件协会制定的一套软件标准 本文章所有图片来源于网络 一、分层架构 分层:3层 1.上层应用层(Application Layer) 2.中间件RTE(Runtime Environment) 3.下层的基础软件(Basic Software) 中间件R…

倾斜摄影超大场景的三维模型轻量化纹理压缩的关键技术

倾斜摄影超大场景的三维模型轻量化纹理压缩的关键技术 倾斜摄影超大场景的三维模型轻量化处理中纹理压缩是轻量化处理的重要手段之一,可以在保证模型真实感的前提下,减小数据体积、降低传输带宽和提高渲染性能。以下是几个关键的纹理压缩技术&#xff1a…

沁恒 CH32V208(一): CH32V208WBU6 评估板上手报告和Win10环境配置

目录 沁恒 CH32V208(一): CH32V208WBU6 评估板上手报告和Win10环境配置 CH32V208 CH32V208系列是沁恒32位RISC-V中比较新的一个系列, 基于青稞RISC-V4C内核, 最高144MHz主频, 64KB SRAM,128KB Flash, 供电电压2.5/3.3V. 这个型号的特点: 除了特有的硬件堆栈区、…

深度学习第J8周:Inception v1算法实战与解析

目录 一、Inception v1 1.简介 2. 算法结构 二、pytorch代码复现1.前期准备 2.代码复现 3.训练运行 3.2指定图片进行预测 三、总结 🍨 本文为[🔗365天深度学习训练营]内部限免文章(版权归 *K同学啊* 所有) 🍖 作…

Linux:网络基础1

网络协议分层 所有网络问题,本质都是通信距离变长了,为了尽可能减少通信成本,定制了协议。 协议分层的优势: 软件设计方面的优势 - 低耦合 一般我们的分层依据: 功能比较集中,耦合度比较高的模块-- 一层 &#xff0c…

2023五一数学建模A题完整思路

已更新五一数学建模A题思路,文章末尾获取! A题完整思路: A题是一个动力学问题,需要我们将物理学概念运用到实际生活中,我们可以先看题目 问题1: 假设无人机以平行于水平面的方式飞行,在空中投…

代码审计笔记之开篇

思想 代码审计是从软件测试发展而来,早起一般采用常规软件测试与渗透测试的手段来发现源码漏洞,但是随着软件规模的越来越大,架构越来越复杂,安全漏洞和后门也越来越多越来越隐蔽,这使得传统的软件测试方法很难检出源…

达梦数据库中注释的使用

在管理规模较大的数据库时,我们往往需要面对大量的表与视图,与此同时在表与视图中可能会存在着许多的字段,让人难以迅速分辨,不利于对于数据库对象的管理。除了在命名时,对于有意义的表、视图及列,应尽量赋…

你可能需要的IDEA-Java开发插件

Idea开发插件 Alibaba Cloud AI Coding Assistant 阿里云智能编码插件(Alibaba Cloud AI Coding Assistant)是一款AI编程助手,它提供代码智能补全和代码示例搜索能力,帮助你更快更高效地写出高质量代码。 让我觉得比较有意思的…

CentOS防火墙的常用快捷命令

CentOS是免费开源的Linux发行版之一,它兼容RHEL并由社区进行维护,大多数美国服务器提供对该系统支持。在使用CentOS系统时,您需要了解一些常用命令,比如开启、查看、关闭防火墙等。本文将介绍下CentOS防火墙的常用命令。 CentOS是一种面向企业级服务器环境的Linux发行版,…

直击德国PLS展,联诚发倾力打造沉浸式视觉盛宴!

当地时间4月25-28日,备受关注的2023德国法兰克福国际专业灯光音响展ProlightSound(以下简称“PLS展”)在德国法兰克福盛大召开。联诚发携多款创新产品及多领域的应用解决方案精彩亮相,为全球客户打造沉浸式视觉盛宴,展…

JavaScript详解

一、前置知识 1.1第一个JS程序 JavaScript 代码可以嵌入到 HTML 的 script 标签中。 1.2JS书写格式 1.2.1行内样式 直接嵌入到html元素内部 1.2.2内嵌格式 1.2.3外部格式 注意这种情况下,script标签中间不能写任何代码,必须空着,就算…

java内存占用过大分析,mat内存快照分析

背景 最近功能模块上线后,生产内存占用显著提升,查看gc日志发现年轻代频繁从2G回收到60M左右,猜测是在方法中频繁创建大对象导致,由于一时间无法通过review代码找出问题所在,只好将生产jvm内存快照dump后通过java mem…

HCIA-RS实验-STP和RSTP(2)

接上一篇文章;其他的不多说,新建一个新的配置设备;如果接上一个实验的配置的话,建议先把所有配置删除后再执行;新的拓扑也与上一个实验一致; 目录 创建新配置 配置RSTP 查看stp版本 配置边缘端口 …

深度学习 GNN图神经网络(四)线性回归之ESOL数据集水溶性预测

线性回归之ESOL数据集水溶性预测 一、前言二、ESOL数据集三、加载数据集四、数据拆分五、构造模型六、训练模型七、测试结果八、分类问题参考文献 一、前言 本文旨在使用化合物分子的SMILES字符串进行数据模型训练,对其水溶性的值进行预测。 之前的文章《深度学习…