【EXCEL_VBA_实战】两组数据比对是否一致(字符串数组)
工作背景:比对两组数据是否一致(位置非一一对应)
思路构建:两组数据转换为两组字符串数组,比对所包含元素是否相同
问题点:A数组的第一个元素不一定与B数组的第一个元素对应,此时无法通过公式简单对照
注:网上很多方法都是仅考虑位置一一对应的情况,没有考虑数据错位的情况
突破点:利用统一的排序规则,先分别将两个数组作排序,然后再比对。
逐一比对数组内相应位置的元素,若均相同,则两数组相同,即两组数据相同。
参考链接:比較不同排列的字符串内容是否相同
目录
范例:图示两行数据的是否一致(M1、M2、M3)
1. 构建字符串数组,并调用比较函数(主过程)
2. 构建排序函数(低版本EXCEL需要,高版本可直接使用EXCEL内置Sort)
3. 构建比较函数(模块化编程,避免主函数冗杂)
其他 VBA StrComp函数
范例:图示两行数据的是否一致(M1、M2、M3)
1. 构建字符串数组,并调用比较函数(主过程)
注1:比对两行的M1、2、3组合是否一致,构建数组元素时要将 材料&板厚 作为一个整体考虑。
注2:执行时需要将1,2,3个代码块同时放在同一个模块下
Sub Example()
Dim M(), M_Temp(), M1, M2, M3, M1_Temp, M2_Temp, M3_Temp As Variant
Dim i As BooleanM1 = Sheet3.Range("a32") & Sheet3.Range("b32")
M2 = Sheet3.Range("c32") & Sheet3.Range("d32")
M3 = Sheet3.Range("e32") & Sheet3.Range("f32")
M1_Temp = Sheet3.Range("a33") & Sheet3.Range("b33")
M2_Temp = Sheet3.Range("c33") & Sheet3.Range("d33")
M3_Temp = Sheet3.Range("e33") & Sheet3.Range("f33")M = Array(M1, M2, M3)
M_Temp = Array(M1_Temp, M2_Temp, M3_Temp)'结果输出
i = Compare_Combination(M, M_Temp, 3)Sheet3.Range("b35") = iEnd Sub
2. 构建排序函数(低版本EXCEL需要,高版本可直接使用EXCEL内置Sort)
Function Sort_Array(arr() As Variant) As VariantDim i, j As Integer
Dim temp As Variant'因字符串比较,因此仅能使用StrComp
For i = LBound(arr) To UBound(arr)For j = i + 1 To UBound(arr)If VBA.StrComp(arr(i), arr(j), vbTextCompare) > 0 Then' 字符顺序由小到大排序temp = arr(i)arr(i) = arr(j)arr(j) = tempEnd IfNext j
Next iSort_Array = arr()End Function
3. 构建比较函数(模块化编程,避免主函数冗杂)
Function Compare_Combination(M() As Variant, M_Temp() As Variant, num As Integer)' M() 基准组合,M_Temp() 待比对组合,num 为元素数量'比对结果,默认为True
Dim result As Boolean
result = TrueDim T(), T_Temp() As Variant' 低版本EXCEL自主构建sort函数
T = Sort_Array(M)
T_Temp = Sort_Array(M_Temp)'高版本EXCEL内置sort函数时可使用
' Sort函数需数组为列存储时方可正确排序(行数据无法正确排序),因此需转置再排序
'T = Excel.Application.WorksheetFunction.Sort(Application.WorksheetFunction.Transpose(M))
'T_Temp = Excel.Application.WorksheetFunction.Sort(Application.WorksheetFunction.Transpose(M_Temp))Dim i As Integer
For i = 0 To num - 1If T(i) <> T_Temp(i) Thenresult = FalseExit ForEnd If
NextCompare_Combination = resultEnd Function
其他 VBA StrComp函数
相关文章:

【EXCEL_VBA_实战】两组数据比对是否一致(字符串数组)
工作背景:比对两组数据是否一致(位置非一一对应) 思路构建:两组数据转换为两组字符串数组,比对所包含元素是否相同 问题点:A数组的第一个元素不一定与B数组的第一个元素对应,此时无法通过公式…...

寻找峰值 ---- 二分查找
题目链接 题目: 分析: 因为题目中要找的是任意一个峰值即可, 所以和<山脉数组的峰值索引>这道题差不多因为峰值左右都小于峰值, 所以具有"二段性", 可以使用二分查找算法如果nums[mid] < nums[mid 1], mid一定不是峰值, 所以left mid 1如果nums[mid] &…...
C语言--输入一个整数代表秒数,将这个数转化为对应的小时数、分钟数、和秒数
#include <stdio.h>int main() {int h,m,s;scanf("%d",&s);ms/60;//计算分钟数ss%60;//剩余的秒数hm/60;//计算小时数mm%60;//剩余的分钟数printf("%d %d %d\n",h,m,s); } //先将分钟数求出,再将多出的秒求出作为最后的打印的s //再用…...
二分搜索技术
非递归算法; #include<iostream> using namespace std; int BinarySearch(int a[],int x,int n) {int right0,leftn-1;while(right<left){int mid(rightleft)/2;if(x<a[mid])leftmid-1;else if(x>a[mid])rightmid1;elsereturn mid;}return -1; } int main() {i…...

docker容器安装nexus3以及nexus3备份迁移仓库数据
一、安装步骤 1.搜索nexus3镜像 docker search nexus3 2.拉取镜像 docker pull sonatype/nexus3或者指定版本 docker pull sonatype/nexus3:3.68.0 3.查看拉取的镜像 docker images | grep "nexus3" 4.启动nexus服务 直接启动 docker run -d --name nexus3 -…...

无线领夹麦克风哪个品牌音质最好,揭秘无线领夹麦哪个牌子好用
随着社交媒体和内容创作的兴起,清晰可靠的音频捕捉已成为打造高品质作品的关键要素。无线领夹麦克风因其轻巧设计和用户友好的接口而受到青睐,它能够确保你的声音在任何环境下都能被完美捕捉。经过精心测试和对比,以下几款无线领夹麦克风是…...

pcd点云江湖之处处碰壁:点云文件pcd加载02
江湖好汉,休走,废了半天力气把threejs自带的代码搬迁到自己项目中了,高高兴兴给领导看。领导一句话,顿时无奈:领导曰:点云单色太丑,能不能按照分类展示? 一句话难道英雄好汉…...

【SQL国际标准】ISO/IEC 9075:2023 系列SQL的国际标准详情
目录 🌊1. 前言 🌊2. ISO/IEC 9075:2023 系列SQL的国际标准详情 🌊1. 前言 ISO(国际标准化组织,International Organization for Standardization)是一个独立的、非政府间的国际组织,其宗旨是…...
15.1数组练习题
(1)求出数组中的最大值 (2)j将数组中的值转为字符串,并用"|"分隔 (3)选出数组中大于10的数 (4)数组去重 (5)数组反转 (6&am…...
Flink 任务调度策略:Lazy from Sources 深入解析
Apache Flink 的任务调度策略对于优化流处理作业的性能和资源利用率至关重要。其中,“Lazy from Sources”(源自源头的惰性调度)是一种策略,它在数据实际到达并且准备执行时才启动下游任务。与Eager调度相比,Lazy策略更…...

【NumPy】关于numpy.reshape()函数,看这一篇文章就够了
🧑 博主简介:阿里巴巴嵌入式技术专家,深耕嵌入式人工智能领域,具备多年的嵌入式硬件产品研发管理经验。 📒 博客介绍:分享嵌入式开发领域的相关知识、经验、思考和感悟,欢迎关注。提供嵌入式方向…...

探寻最强性能云电脑:ToDesk云电脑、无影云、网易云游戏、易腾云横测大比拼
大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的…...

回溯法——(2)n皇后问题(C语言讲解)(LeetCode51 N皇后思想)(4皇后棋盘画图举例)(附代码)
目录 一、问题概括 二、算法分析 三、举例(4皇后棋盘) 四、算法实现 4.1运行结果: 51. N 皇后 - 力扣(LeetCode) 一、问题概括 n皇后问题是19世纪著名数学家高斯于1850年提出的。 问题是:在nn的棋盘上…...

数据库系统概论(第5版)复习笔记
笔记的Github仓库地址 👆这是笔记的gihub仓库,内容是PDF格式。 因为图片和代码块太多,放到CSDN太麻烦了(比较懒🤣) 如果感觉对各位有帮助的话欢迎点一个⭐\^o^/...
数仓领域,Serving 是什么概念?
在数据仓库(Data Warehouse)和更广泛的数据工程领域中,“Serving”通常指的是将处理和优化后的数据提供给最终用户或应用程序的过程。这包括数据的查询、检索、展示等操作,使得数据能够在决策支持、报告、分析、或机器学习等应用中…...

Python筑基之旅-MySQL数据库(三)
目录 一、数据库操作 1、创建 1-1、用mysql-connector-python库 1-2、用PyMySQL库 1-3、用PeeWee库 1-4、用SQLAlchemy库 2、删除 2-1、用mysql-connector-python库 2-2、用PyMySQL库 2-3、用PeeWee库 2-4、用SQLAlchemy库 二、数据表操作 1、创建 1-1、用mysql-…...

(全面)Nginx格式化插件,Nginx生产工具,Nginx常用命令
目录 🎫 前言 🎉 开篇福利 🎁 开篇福利 x2 Double happiness # 介绍 # 地址 # 下载 💻 命令及解析 # 整个文件系统中搜索名为nginx.conf的文件 # 编辑nginx.conf文件 # 重新加载配置文件 # 快速查找nginx.conf文件并使…...

软考 软件设计师 场景分析题 速成篇
文章目录 试题一:数据流图💖 基本图形元素1. 外部实体2. 数据存储3. 加工4. 数据流 📚 例题(1)实体名称(2)数据存储名称(3)数据流① 父子图平衡② 加工有输入有输出④ 数…...
[学习笔记](Python3)防止SQL注入、XSS攻击和文件上传漏洞
学习笔记:防止SQL注入、XSS攻击和文件上传漏洞(Python3) 本笔记由生成式大模型GPT-4o自动整理。注意AI可能犯错。代码和理论由GPT-4o(2024-5-21)自行撰写未经人工复核。 参数化查询防SQL注入 参数化查询通过将SQL语句和数据分离来防止SQL注…...

西门子CPU与汇川伺服通信与控制
西门子CPU与汇川620F伺服通信与控制 一、西门子CPU与汇川620F伺服通信与控制1、器件准备2、伺服软件设置3、PLC添加汇川伺服描述文件4、PLC编程调试5、总结 二、西门子s7-1500限位信号接到伺服的方法1、通过默认报文获取限位信号2、添加自定义报文获取限位信号3、总结 三、西门…...
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...

centos 7 部署awstats 网站访问检测
一、基础环境准备(两种安装方式都要做) bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats࿰…...
【位运算】消失的两个数字(hard)
消失的两个数字(hard) 题⽬描述:解法(位运算):Java 算法代码:更简便代码 题⽬链接:⾯试题 17.19. 消失的两个数字 题⽬描述: 给定⼀个数组,包含从 1 到 N 所有…...
【解密LSTM、GRU如何解决传统RNN梯度消失问题】
解密LSTM与GRU:如何让RNN变得更聪明? 在深度学习的世界里,循环神经网络(RNN)以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而,传统RNN存在的一个严重问题——梯度消失&#…...
vue3 定时器-定义全局方法 vue+ts
1.创建ts文件 路径:src/utils/timer.ts 完整代码: import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...
leetcodeSQL解题:3564. 季节性销售分析
leetcodeSQL解题:3564. 季节性销售分析 题目: 表:sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...
【Go语言基础【12】】指针:声明、取地址、解引用
文章目录 零、概述:指针 vs. 引用(类比其他语言)一、指针基础概念二、指针声明与初始化三、指针操作符1. &:取地址(拿到内存地址)2. *:解引用(拿到值) 四、空指针&am…...

RabbitMQ入门4.1.0版本(基于java、SpringBoot操作)
RabbitMQ 一、RabbitMQ概述 RabbitMQ RabbitMQ最初由LShift和CohesiveFT于2007年开发,后来由Pivotal Software Inc.(现为VMware子公司)接管。RabbitMQ 是一个开源的消息代理和队列服务器,用 Erlang 语言编写。广泛应用于各种分布…...

抽象类和接口(全)
一、抽象类 1.概念:如果⼀个类中没有包含⾜够的信息来描绘⼀个具体的对象,这样的类就是抽象类。 像是没有实际⼯作的⽅法,我们可以把它设计成⼀个抽象⽅法,包含抽象⽅法的类我们称为抽象类。 2.语法 在Java中,⼀个类如果被 abs…...
uniapp 集成腾讯云 IM 富媒体消息(地理位置/文件)
UniApp 集成腾讯云 IM 富媒体消息全攻略(地理位置/文件) 一、功能实现原理 腾讯云 IM 通过 消息扩展机制 支持富媒体类型,核心实现方式: 标准消息类型:直接使用 SDK 内置类型(文件、图片等)自…...