基于Google Sheets的支票号码和金额核对教程

基于google sheets的支票号码和金额核对教程

本文档旨在指导用户如何使用 Google Apps Script 编写脚本,以实现对 Google Sheets 中两列数据(支票号码和金额)的核对功能。该脚本能够识别支票号码不一致、支票号码相同但金额不一致的情况,并输出相应的日志信息,帮助用户快速发现并纠正数据错误。

支票号码和金额核对脚本详解

本教程将详细介绍如何使用 Google Apps Script 编写一个用于核对支票号码和金额的脚本。该脚本可以帮助你快速识别两份数据中不一致的支票信息,提高数据处理效率。

1. 脚本结构

首先,我们需要了解脚本的整体结构。脚本主要分为以下几个步骤:

获取工作表和数据范围: 从 Google Sheets 中获取需要比较的两个工作表,并确定包含支票号码和金额的数据范围。循环遍历数据: 遍历其中一个工作表的数据,并与另一个工作表的数据进行比较。比较支票号码和金额: 判断支票号码是否一致,如果一致,则进一步比较金额是否一致。记录不一致的信息: 如果发现支票号码或金额不一致,则记录相关信息,例如行号和错误类型。输出结果: 将所有不一致的信息输出到日志中,供用户查看。

2. 脚本代码

以下是一个示例脚本,可以实现上述功能:

function CHK_BothChecks_V3() {  // 获取当前工作簿  const ss = SpreadsheetApp.getActive();  // 获取两个工作表,分别命名为 "OpenCheckDataBase" 和 "IncomingChecks"  const sh1 = ss.getSheetByName("OpenCheckDataBase");  const sh2 = ss.getSheetByName("IncomingChecks");  // 获取两个工作表中包含支票号码和金额的数据范围  // C1:D" + sh1.getLastRow()  获取C列和D列所有数据  var rg1 = sh1.getRange("C1:D" + sh1.getLastRow()).getValues();  var rg2 = sh2.getRange("C1:D" + sh2.getLastRow()).getValues();  // 初始化计数器,用于记录匹配的支票数量、无效的支票数量和无效的金额数量  var correctChecks = 0;  var invalidChecks = 0;  var invalidAmounts = 0;  // 循环遍历第一个工作表中的数据  for (var i = 0; i < rg1.length; i++) {    // 比较两个工作表中对应行的支票号码是否一致    if (rg1[i][0] == rg2[i][0]) {      // 如果支票号码一致,则增加匹配的支票数量      correctChecks++;    } else if (rg1[i][0] !== rg2[i][0]) {      // 如果支票号码不一致,则增加无效的支票数量,并记录行号      var index = sh1.getRange(i + 1, 2).getRow();      invalidChecks++;      console.log("Row " + index + " has an inconsistent check number");    }  }  // 输出统计结果  console.log("Total number of valid check numbers is " + correctChecks);  console.log("Total number of invalid check numbers is " + invalidChecks);  console.log("Total number of invalid amounts is " + invalidAmounts);}

3. 代码解释

SpreadsheetApp.getActive(): 获取当前激活的 Google Sheets 工作簿。getSheetByName(sheetName): 根据名称获取工作表。getRange(range): 获取指定范围的数据。”C1:D” + sh1.getLastRow() 表示获取 C 列和 D 列的所有数据,直到最后一行。getValues(): 获取范围内的所有数据,以二维数组的形式返回。console.log(): 将信息输出到 Google Apps Script 的日志中。

4. 脚本优化

上述脚本只实现了支票号码的核对,没有实现金额的核对。为了完善脚本功能,我们需要添加金额比较的逻辑。以下是一个改进后的脚本:

function CHK_BothChecks_V3() {  const ss = SpreadsheetApp.getActive();  const sh1 = ss.getSheetByName("OpenCheckDataBase");  const sh2 = ss.getSheetByName("IncomingChecks");  var rg1 = sh1.getRange("C1:D" + sh1.getLastRow()).getValues();  var rg2 = sh2.getRange("C1:D" + sh2.getLastRow()).getValues();  var correctChecks = 0;  var invalidChecks = 0;  var invalidAmounts = 0;  // 将rg2的数据存储到Map中,方便查找  let checkMap = new Map();  for (let i = 0; i < rg2.length; i++) {    checkMap.set(rg2[i][0], rg2[i][1]);  }  for (var i = 0; i < rg1.length; i++) {    let checkNumber = rg1[i][0];    let amount = rg1[i][1];    // 检查checkNumber是否存在于rg2中    if (checkMap.has(checkNumber)) {      // 检查金额是否一致      if (checkMap.get(checkNumber) === amount) {        correctChecks++;      } else {        invalidAmounts++;        console.log("Row " + (i + 1) + " has an inconsistent check amount");      }    } else {      invalidChecks++;      console.log("Row " + (i + 1) + " has an inconsistent check number");    }  }  console.log("Total number of valid check numbers is " + correctChecks);  console.log("Total number of invalid check numbers is " + invalidChecks);  console.log("Total number of invalid amounts is " + invalidAmounts);}

改进说明:

使用 Map 对象存储 rg2 的数据,提高查找效率。首先检查 rg1 中的支票号码是否存在于 rg2 中。如果支票号码存在,则比较金额是否一致。根据比较结果,输出相应的日志信息。

5. 使用注意事项

确保两个工作表都存在,并且名称正确。确保支票号码和金额位于 C 列和 D 列。根据实际情况调整数据范围。运行脚本后,可以在 Google Apps Script 的日志中查看结果。

6. 总结

通过本教程,你学习了如何使用 Google Apps Script 编写一个用于核对支票号码和金额的脚本。该脚本可以帮助你快速识别两份数据中不一致的支票信息,提高数据处理效率。你可以根据实际需求,对脚本进行修改和优化,使其更好地满足你的工作需求。

以上就是基于Google Sheets的支票号码和金额核对教程的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1510158.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
使用 Google Sheets 脚本比较两列数据并检测差异
上一篇 2025年12月20日 05:48:39
ES6的异步函数如何简化Promise使用
下一篇 2025年12月20日 05:48:51

相关推荐

  • windows11便笺功能在哪里_windows11自带便笺打开方法

    windows11便笺功能在哪里_windows11自带便笺打开方法windows11便笺功能在哪里_windows11自带便笺打开方法windows11便笺功能在哪里_windows11自带便笺打开方法windows11便笺功能在哪里_windows11自带便笺打开方法

    Windows 11便笺可通过开始菜单、搜索、固定任务栏、开机自启和桌面嵌入五种方式打开。首先点击开始菜单在S分类下找到便笺应用;或使用Win+S搜索“便笺”快速启动;右键便笺图标可固定到任务栏实现一键访问;通过运行shell:startup并创建快捷方式设置开机自启;最后在设置中登录Microso…

    2026年9月24日 用户投稿
    300
  • Steam新游周报:经典恐怖游戏新作登场!

    Steam新游周报:经典恐怖游戏新作登场!Steam新游周报:经典恐怖游戏新作登场!Steam新游周报:经典恐怖游戏新作登场!Steam新游周报:经典恐怖游戏新作登场!

    十一国庆前的最后一周,Steam上又有许多令人兴奋的新作发布!本周策略玩家与模拟建设玩家有福了,将有数款新作等着你们,体育爱好者们则能玩到EA一款足球年货游戏,而本周黑马则是一款来自科乐美的经典日式恐怖游戏。让我们进入这周的新游周报吧! 周一(9月22日) 名望(抢先体验) Steam商店页面:名望…

    2026年9月24日 用户投稿
    000
  • mysql中rand的用法 mysql随机函数使用教程

    mysql 的 rand() 函数返回 0 到 1 之间的随机浮点数,用于随机选择和排序数据。1)随机排序:select from your_table order by rand()。2)随机抽取记录:select from your_table order by rand() limit 10。…

    2026年9月24日
    200
  • 高质量免费logo设计网站 国产免费logo生成工具推荐

    国产免费Logo设计网站推荐即时设计、DesignEvo、牛人设计等,这些平台提供海量模板、支持中文输入与AI智能生成,具备全中文界面、本土化元素和矢量导出功能,适合零基础用户快速制作高质量Logo。 高质量免费logo设计网站国产免费logo生成工具推荐这是不少网友都关注的接下来由PHP小编为大家…

    2026年9月24日
    200
  • 荣耀V系列手机微信收款语音怎么设置?快速配置支付播报指南

    答案:设置微信收款语音播报需先在微信“收付款”中开启“收款到账语音提醒”,再确保荣耀V系列手机的媒体音量正常、通知权限开启、关闭勿扰模式、允许微信后台运行,并检查通知通道和网络连接,才能保障语音提醒正常播放。 荣耀V系列手机设置微信收款语音播报,核心在于微信应用内部的“收款到账语音提醒”功能,并确保…

    2026年9月24日
    200
  • 官方确认《刺客信条:幻景》免费DLC将含全新奖杯列表

    育碧官方今日正式揭晓,《刺客信条:幻景》即将于11月18日迎来一场盛大的免费更新——“回忆山谷”,此次更新将为全平台玩家解锁一系列全新的成就与奖杯。 据了解,“回忆山谷”DLC将面向所有已拥有《刺客信条:幻景》的玩家免费开放,涵盖PC、PlayStation 4、PlayStation 5、Xbox…

    2026年9月24日
    500
  • LINUX怎么统计一个文件夹下文件的数量_LINUX文件数量统计命令

    使用find命令统计文件数量最准确,如find /path/to/directory -type f | wc -l可递归统计所有普通文件,包含隐藏文件,推荐用于复杂场景。 要统计 Linux 系统中一个文件夹下文件的数量,可以使用多种命令组合来实现。最常用的方法是结合 find、ls 和 wc 命…

    2026年9月24日
    600
  • 如何通过BIOS调整CPU电压实现节能?

    答案:CPU降压通过BIOS调整Vcore电压,采用Offset模式在保证稳定前提下降低功耗与温度,提升能效;需结合HWiNFO64等工具监控温度、功耗,并用Prime95等压力测试验证稳定性,避免蓝屏或崩溃,合理设置可使CPU在更低温度下维持更高睿频,实现节能且不牺牲性能。 通过BIOS调整CPU…

    2026年9月24日
    700
  • 为什么GPU显存带宽比容量更重要?

    显存带宽比容量更重要,因其直接决定数据传输速度,影响GPU计算单元的利用率。在AI训练和高分辨率渲染中,高带宽可避免“数据饥饿”,确保海量数据高效流转,而HBM技术凭借3D堆叠和宽接口提供远超GDDR的带宽,成为高性能计算的关键。 GPU显存带宽比容量更重要,核心在于现代GPU的工作模式和其处理的数…

    2026年9月24日
    100
  • Yii框架中的表单验证:确保用户输入正确

    yii框架是一个功能强大而又易于使用的php框架,它提供了丰富的功能和工具,帮助我们开发web应用程序。有时候,用户输入的数据可能会出现错误或无效。为了确保用户输入的数据正确,yii框架提供了一种称为表单验证的功能。 表单验证是一个非常有用的功能,它能够自动验证用户输入的数据是否符合我们定义的规则。…

    用户投稿 2026年9月24日
    000
  • iPhone14微信收款语音播报怎么设置?详细教程助你配置语音功能

    iPhone14微信收款语音播报怎么设置?详细教程助你配置语音功能iPhone14微信收款语音播报怎么设置?详细教程助你配置语音功能iPhone14微信收款语音播报怎么设置?详细教程助你配置语音功能iPhone14微信收款语音播报怎么设置?详细教程助你配置语音功能

    要让iPhone 14微信收款语音播报正常工作,需确保微信内开启“收款到账语音提醒”,同时在系统设置中允许微信通知并开启声音,检查手机未处于静音或勿扰模式,保持微信更新并重启设备以排除缓存问题。 要在iPhone 14上设置微信收款语音播报,最关键的其实是确保微信应用内部的通知设置和手机系统层面的通…

    2026年9月24日 用户投稿
    600
  • VSCode如何实现代码热重载 VSCode实时预览开发的高效配置方案

    使用live server扩展实现静态文件的实时预览,保存后浏览器自动刷新;2. 利用现代前端框架(如react、vue)内置的开发服务器(如vite、webpack dev server)实现hmr热模块替换,修改代码后仅更新变动模块而不刷新页面;3. 结合browsersync等工具实现多设备同…

    2026年9月24日
    000
  • T1与IG宿命交锋:电子竞技史上新篇章,10月14日上演巅峰对决

    每年秋天,《英雄联盟》全球总决赛总能掀起电子竞技的风暴,而今年的战场,北京,无疑是这场战役的焦点之一。四号种子对决,t1和ig即将上演的这场殊死搏斗,让人血脉偾张。这不仅仅是战队之间的较量,更像是电子竞技的”逆袭神话”能否继续书写的关键。然而站在t1的角度,今年的征途并不轻松…

    2026年9月24日
    200
  • 问界M5现身美国加州公路 测试车还是平行进口车?

    近日,小编注意到,有网友在社交平台发布照片称,自己于美国加州i-880公路拍摄到悬挂当地车牌的问界m5车型,引发关于该车身份的猜测:是华为官方测试车辆,还是私人渠道引入的平行进口车? ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜ 问界M5 …

    2026年9月24日
    000
  • 外媒测试《消逝的光芒:困兽》PC性能:运行表现相当优秀

    外媒测试《消逝的光芒:困兽》PC性能:运行表现相当优秀外媒测试《消逝的光芒:困兽》PC性能:运行表现相当优秀外媒测试《消逝的光芒:困兽》PC性能:运行表现相当优秀外媒测试《消逝的光芒:困兽》PC性能:运行表现相当优秀

    来入手《消逝的光芒:困兽》吧!现享金币优惠叠加专属优惠券折上折,标准版仅需200.9元(共节省47.1元);豪华版233.2元(总计立减54.8元)。 由Techland打造的《消逝的光芒》系列新作《消逝的光芒:困兽》已正式上线。本作背景设定在曾经风景如画、如今却尸横遍野的河狸谷。玩家将在此组建临时…

    2026年9月24日 用户投稿
    000
  • mysql临时表如何使用_PHP中操作mysql临时表的具体步骤

    MySQL临时表仅在当前会话可见,连接关闭后自动删除,适合中间数据处理。使用PHP操作时,先通过mysqli或PDO建立数据库连接,再执行CREATE TEMPORARY TABLE语句创建临时表,随后可像普通表一样进行INSERT、SELECT及JOIN等操作。临时表可与永久表同名且优先被使用,支…

    2026年9月24日
    000
  • UC浏览器怎么查看和清除LocalStorage数据 UC浏览器LocalStorage数据管理方法

    可通过隐私设置清除或开发者工具查看LocalStorage。①在UC浏览器设置中选择“隐私与安全”→“清除浏览数据”,勾选“Cookie及其他网站数据”即可批量删除LocalStorage;②打开uc://inspect启用开发者工具,通过电脑Chrome远程调试查看具体键值对;③root设备后使用…

    2026年9月24日
    200
  • Java语法基础中static关键字可以修饰哪些内容

    static关键字用于定义类成员,包括静态变量(如计数器)、静态方法(如工具方法)、静态代码块(类加载时执行)和静态内部类(不依赖外部类实例),均属于类而非对象,通过类名访问,提升成员至类级别实现共享与提前使用。 static 关键字在 Java 中主要用于定义与类相关而非与对象实例相关的成员。它不…

    2026年9月24日
    100
  • 强制联网! 《战地6》单人战役模式无法离线游玩

    强制联网! 《战地6》单人战役模式无法离线游玩强制联网! 《战地6》单人战役模式无法离线游玩强制联网! 《战地6》单人战役模式无法离线游玩强制联网! 《战地6》单人战役模式无法离线游玩

    《战地6》本有机会打破近年来游戏行业普遍采用的“光盘仅附激活码”的做法——这一次,所有游戏内容都被完整地刻录在了实体光盘中。然而令人失望的是,即便如此,玩家若想体验单人战役,依然必须保持网络连接。 这一设定带来了诸多问题。对于只想沉浸于单人剧情、无意参与多人对战的玩家来说,他们仍需和数百万在线用户一…

    2026年9月24日 用户投稿
    000
  • 全模组电源比非模组电源好在哪里?

    全模组电源优势在于线材管理、升级便利和系统整洁。其线材可自由拆装,减少冗余,提升散热与走线美观;支持多平台共用和单独更换线材,便于升级与故障处理;适合追求整洁与DIY的用户,虽价格较高但灵活性更强。 全模组电源相比非模组电源,主要优势体现在线材管理、升级便利性和整体系统整洁度上。它并不是在性能或效率…

    2026年9月24日
    100

发表回复

登录后才能评论
关注微信