Excel 自动4位分隔长数字 ,如银行卡号

泛微OA_E9之输入银行卡号,每4位自动添加一个空格 输入银行卡号,每4位自动添加一个空格。 阅读详情
AI摘要

工作中财务人员需将银行卡号打印成每4位空一格形式,Word域代码和VBA编程不合适,选择用Excel处理。经尝试,单元格格式、TEXT函数等方法均无效,最终利用SEQUENCE等函数实现按4位分隔,还可将分隔位数设为变量实现任意位分隔。

 #记录工作实践#

背景

工作中,做财务相关工作时,有大量的银行卡号希望打印成每 4 位空一格的形式,方便后续查看。

如:6200 1234 1234 1234 123

Word 域代码没有实现方式,VBA 编程太麻烦就不考虑了。于是选择用 Excel 做表格,然后邮件合并到 Word 里。

在 Excel 里,银行卡号必须用字符串,不能用数字储存,否则就会变成科学计数法和很多 0。

先考虑单元格格式,如果原始数据是文本的情况下,千位分隔符根本无法使用。自定义设置 #### #### #### #### 也无效。

用 TEXT 函数强制转换会丢失精度,并且因为这个是按照数字从右往左匹配,遇上一些美国银行的公司账号只有12位的则会变得很诡异。

于是我翻看 Excel 函数列表,看能不能用 SPLIT 搞出点啥名堂,结果发现不能使用固定位数进行分割。直到我学习至数组运算部分,发现了 SEQUENCE 这个函数可以生成连续的数字,这不就可以用来做 for 循环了吗。


结论

先贴上完整代码和实现效果。注意我用到了 MS Office 2021 才支持的函数。

=LET(account, A1, TEXTJOIN(" ",TRUE,MID(account,SEQUENCE(CEILING(LEN(account)/4,1),,0)*4+1,4)))


分步解释 Excel 函数

因为有两处需要写数据的地方,首先将 A1 格值存为 account 变量方便使用。

=LET(account, A1, 剩余代码)

 LEN 得到字符串长度,每 4 位分隔需要除以 4 后用 CEILING 向上取整,对于银联 18 位卡号等于5。

=CEILING(LEN(account)/4, 1)

SEQUENCE 可以生成连续的数字的数组,默认从 1 开始。更改为从 0 开始,然后 ×4 + 1 就得到了 MID 函数用的字符串截取开始位置索引数字数组。

刚才我才发现,SEQUENCE 里原来自带了增长值,就可以少写后面的数字计算了。前面的代码我就不改了,以下三种方式等价。

=SEQUENCE(5,,0) * 4 + 1
=(SEQUENCE(5) - 1) * 4 + 1
=SEQUENCE(5,,1,4)

然后上述数组作为 MID 的索引,每次固定取 4 位。就会得到从左到右按 4 位分隔的字符串数组了。

=MID("6200123412341234123", {1;5;9;13;17}, 4)

最后再用 TEXTJOIN ,空格作为分隔符,将数组合并到一个字符串就成功了。

=TEXTJOIN(" ", TRUE, {"6200";"1234";"1234";"1234";"123"} )

这样,不管是多少位字符都可以按 4 位分隔了。

用我比较熟悉的 JavaScript 代码来解释步骤,就是这样

//用 LET 存储 =LET(account, 输入字符串, 剩余代码)
let account = "6200123422343234423";
//计算按 4 位分割需要分割为几个部分,结果为 5
let loopTime = Math.ceil(account.length / 4);
//得到5个序列的数组 [ 0, 1, 2, 3, 4 ]
let indexArray = new Array(loopTime).fill(null).map((_, index)=>index);
//变化为字符串分割开始下标 [ 0, 4, 8, 12, 16 ],注意 Excel 里下标从 1 开始所以需要 + 1
let sequnceArray = indexArray.map(index=>index * 4);
//从原始字符串里每次截取 4 个字符 [ "6200", "1234", "2234", "3234", "423" ]
let stringArray = sequnceArray.map(index=>account.substring(index,index+4));
//用空格作为分隔符合并 "6200 1234 2234 3234 423"
stringArray.join(" "); 

新结论

我写到这里才发现,把函数里的所有 4 也提出来成为变量,就可以按任意位分隔字符了。比如如下代码可以按 7 位分割字符。

=LET(account, A1, part_len, 7, TEXTJOIN(" ",TRUE,MID(account,SEQUENCE(CEILING(LEN(account)/part_len,1),,1,part_len),part_len)))

Excel科学计数法困扰?手把手教你用Navicat完美导出长数字(含15位以上处理技巧) 本文详细解析了Excel中长数字自动转换为科学计数法的问题,并提供了使用Navicat完美导出15位以上长数字的实用技巧。通过优化导出设置、SQL处理技巧及Excel后续处理方案,确保身份证号、银行卡号等关键数据完整显示,避免精度丢失。特别适合需要处理大量长数字的数据分析师和开发人员。 阅读详情

相关推荐

Excel科学计数法导致长数字精度丢失的完整解决方案

在数据处理领域,Excel作为广泛使用的工具,其默认的数值处理机制有时会带来意想不到的挑战。其核心原理在于,Excel基于IEEE 754浮点数标准存储数字,这带来了15位的有效数字精度限制。当数字超过11位时,Excel的“常规”格式会自动启用科学计数法显示以节省空间,但这仅仅是表象。真正的技术风险在于,超过15位的整数(如18位身份证号、长订单号)会被强制识别为数值类型,导致第16位之后的数字被截断为0,造成数据的永久性、不可逆的精度丢失。这种底层的数据类型转换,使得简单的单元格格式调整往往失效,对数据

weixin_30832405的博客 312

Excel中关于银行卡号的应用即每隔4位加个空格及删除空格

在本文将为大家分享一个关于银行卡号的应用,如银行卡号为3303271988090725,接下来我们要做的就是每隔4位加个空格。我们很容易想到的就是用mid来截取位数,还有连接函数加上空格。同样去掉这每隔4个位置的空格我们会想到substitute文本函数,有了思路就差实现了,感兴趣的朋友就一起来操作下吧。 比如银行卡号为3303271988090725。我们为了看的更清楚,我们需要每隔4位加个空

sddsdl的博客 1万+

Excel长数字科学计数法转文本:CONCATENATE函数的实战应用

本文详细解析了Excel中长数字自动转换为科学计数法导致数据失真的问题,并重点介绍了CONCATENATE函数的实战应用。通过将该函数与空字符串结合,可将数值强制转换为文本格式,从而完整保留身份证号、订单号等长数字信息。文章还以FineReport报表工具为例,提供了具体的操作步骤和解决方案对比,是处理数据导出显示问题的实用指南。

weixin_29250403的博客 233

JS输入银行卡 每4位 加空格分隔

JS、Jquery、正则表达式 银行卡四位一断解决办法

七夜 2412

Navicat导出Excel数字格式优化:告别科学计数法困扰

本文详细介绍了Navicat导出Excel时数字格式自动转换为科学计数法的问题及解决方案。通过SQL查询中添加制表符、使用CAST或FORMAT函数等技巧,确保长数字如身份证号、银行卡号等以文本形式正确显示,避免Excel自动转换带来的数据丢失问题。同时提供了导出后的Excel处理方法和Navicat最佳实践,帮助开发者高效解决数据导出格式困扰。

weixin_30642561的博客 258

银行卡BIN号数据管理:Excel/MySQL/PostgreSQL三端建表导入全攻略

银行卡BIN号作为卡号前6位的标识码,决定了发卡行、卡组织和卡片类型,是支付系统路由和反欺诈规则的基础数据。借助Excel、MySQL与PostgreSQL三端协同,可以同时满足人工核查、线上毫秒级查询和数据平台规范化建模的需求。本文从BIN号表结构设计出发,介绍文本格式存储避免前导零丢失、VLOOKUP/XLOOKUP自动识别发卡行、LOAD DATA与COPY导入等核心操作,并对比MySQL与PostgreSQL在枚举约束、导入权限和查询性能上的差异。无论用于交易系统维表,还是数据平台基础数据管理,一份

weixin_33883104的博客 257

输入银行卡号,每四位自动加一个空格

需求是,当用户输入银行卡号时,每个四位,就自动插入一个空格。 使用onKeyUp事件和正则表达式来实现:<td class='n' ><em class="helper">*</em>收款账号:</td> <td> <input type="text" id="partybAccount" name="partybAccount" onkeyup="this.value=this.valu

夏至的博客 4339

银行卡BIN号双库落地:Excel清洗到MySQL/PostgreSQL索引优化

银行卡BIN号是卡号前6至8位的发卡行识别码,是支付路由、收单账务与风控规则的基础数据。其源头常为Excel,受类型推断影响易出现前导零丢失、科学计数法、分隔符混排等问题,需以字符串读取、归一清洗和显式长度字段保证可入库。工程上,MySQL适合主键等值点查支撑在线实时判定,PostgreSQL需关注排序规则与varchar_pattern_ops前缀索引以支撑离线聚合;配合LOAD DATA、8位优先6位回退、缓存与灰度回放可降低路由错配。内容覆盖Excel清洗、双库建表导入、索引排错等数据库导入与查询优化

weixin_29611239的博客 320

为什么在EXCEL表里输入银行账号后四位都会自动变成0000

EXCEL中默认数字显示11位,du如果超过11位,则会显示为科学zhi记数法或后面的显示为0,个人银dao行帐号一般为19位,要全部显示出来,就要以文本格式输入,方法有: 右击单元格(如果是整列,直接右击列标)–设置单元格格式–数字–文本–确定; 先输入英文状态下的单引号“’”,再输入数字串,也是作为文本,会全部显示出来; 如果输入的数字已经成了科学记数法,想改为文本格式,可先设置成文本格式,再双击单元格即可,但此法只适用于不超过15位数字,15位后的会显示为0,只有取消重新输入或修改。

小张的博客 1万+

银行卡BIN号数据清洗与MySQL、PostgreSQL跨库迁移实践

在金融支付与风控场景中,银行卡BIN号作为识别发卡机构、卡组织与卡种的基础标识,广泛应用于交易路由、商户结算和营销画像。数据的可信赖程度,取决于从源头清洗到最终存储的完整链路。Excel作为最常用的数据整理工具,其文本格式控制、去重逻辑和SQL拼接技巧,直接影响后续导入数据库的质量。MySQL凭借LOAD DATA命令和唯一索引设计,能够高效支撑BIN号数据的批量落库;而PostgreSQL则在复杂查询与数据校验方面具备独特优势,通过pgloader或手工建表即可实现平滑迁移。本文围绕BIN号数据从Exce

weixin_30843121的博客 198

银行卡每四位隔开

EditText上输入的银行卡卡号自动每4位隔开的完整demo,

Excel长数字科学计数法:从急救恢复到批量根治的完整方案

在数据处理领域,数据格式的准确性和完整性是保证数据质量的基础。Excel作为广泛使用的电子表格软件,其自动类型推断机制在处理长数字时,会将其转换为科学计数法显示,这源于软件对数值的优化显示逻辑。这一特性虽然提升了数值的可读性,但在处理身份证号、银行卡号、商品编码等文本型长数字时,却会导致信息丢失或显示错误,严重影响数据的后续分析与应用。理解其原理后,我们可以通过设置单元格格式为文本、使用分列向导等手动方法进行急救恢复。对于需要批量处理或自动化集成的场景,则可以借助Power Query进行数据清洗,或通过P

weixin_34116110的博客 308

自动格式化银行卡号的EditText,每四位增加一个空格,并根据银行卡号判断该银行卡归属的银行及卡别

自动格式化银行卡号的EditText,每四位增加一个空格,并根据银行卡号判断该银行卡归属的银行及卡别

Excel里数字太长显示为科学计数法如何显示完整数字

Excel里数字太长显示为科学计数法如何显示完整数字

w8y56f的专栏 4万+

KBS投稿全流程拆解:从模板准备到条件接收的实战指南

本文详细拆解了KBS期刊投稿的全流程,从模板准备、投稿系统操作到返修策略和条件接收。重点介绍了Cover Letter撰写技巧、Latex模板选择、审稿周期管理以及返修文件的系统准备方法,帮助研究者高效完成KBS投稿并提升接收概率。

weixin_26938645的博客 703

最优化学习笔记1——关于拟牛顿法推导

从2020年3月份到现在,一年的时间里断断续续自学最优化,结合豆瓣读书、知乎等网站上的推荐,翻阅了以下书和课程: Stephen Boyd和Lieven Vandenberghe的《Convex Optimization》,这本书被公认为学习凸优化的必读经典著作,其中大量的篇幅讲应用,讲理论和算法的篇幅稍少一些。在B网站上有Boyd的视频课程,油管上也有,不过只有英文字幕,如果是零基础接触,直接看Boyd的视频稍显费劲,B站上也有凌青老师以《Convex Optimization》为教材的讲解,推荐作为入

xiaofei473的博客 1768

Excel长数字科学计数法问题:从原理到修复与预防的完整指南

在数据处理领域,数据格式的准确表示是保证数据完整性的基础。Excel作为广泛使用的电子表格工具,其内置的自动格式识别机制,在提升通用性的同时,也带来了特定场景下的数据风险,其中科学计数法对长数字的转换就是一个典型问题。其触发原理在于Excel默认的“常规”格式会对超过11位的整数或列宽不足的数字进行显示优化,但这会导致身份证号、订单号等作为标识符的长数字精度丢失,尤其是超过15位时会发生不可逆的数据截断。从技术价值看,理解并规避此问题,是确保数据在跨系统交换、报表生成及数据分析流程中保持原貌的关键,直接影响

weixin_34320159的博客 361

ADS使用Smith圆图进行阻抗匹配

在处理RF系统的实际应用问题时,总会遇到一些非常困难的工作,对各部分级联电路的不同阻抗进行匹配就是其中之一。一般情况下,需要进行匹配的电路包括天线与低噪声放大器(LNA)之间的匹配、功率放大器输出(RFOUT)与天线之间的匹配、LNA/VCO输出与混频器输入之间的匹配。匹配的目的是为了保证信号或能量有效地从“信号源”传送到“负载”。 阻抗匹配(impedance matching) 信号源内阻与所接传输线的特性阻抗大小相等且相位相同,或传输线的特性阻抗与所接负载阻抗的大小相等且相位相同,分别称为传输线的输

红茶绿茶和奶茶的博客 3万+

Excel科学计数法问题:从原理到实战,3秒修复与预防长数字显示错误

在数据处理与办公自动化中,Excel的数值类型与单元格格式是基础但关键的概念。数值类型默认支持15位精度,超长数字会触发科学计数法显示,这源于软件对数据存储和显示的底层设计逻辑。理解这一原理对于保障数据完整性至关重要,尤其在处理身份证号、订单号等标识符时,能避免因精度丢失导致的不可逆数据损坏。其技术价值在于通过正确的数据类型管理,确保信息在财务、数据分析及系统间交换时的准确无误。应用场景广泛覆盖从日常报表制作到程序化数据导出的各个环节。本文聚焦于Excel中长数字的科学计数法显示问题,深入解析其成因,并提供

weixin_34342905的博客 387

第1章>>1.5:神电测控为什么开发LabVIEW ZYNQ FPGA软件工具包?(ZYNQ芯片的特点与优势)《LabVIEW ZYNQ FPGA宝典》

ZYNQ是赛灵思公司(Xilinx)推出的新一代全可编程片上系统(APSoC,All-Programmable SoC),它将处理器的软件可编程性与FPGA的硬件可编程性进行完美整合,以提供无与伦比的系统性能、灵活性与可扩展性。Zynq-7000系列是Xilinx于2010年4月推出的行业第一个可扩展处理平台,旨在为视频监视、汽车驾驶员辅助、工厂自动化、医疗器械等高端嵌入式应用提供所需的处理能力与计算性能。这款基于ARM处理器的SoC可满足复杂嵌入式系统的高性能、低功耗和多核处理能力等要求。

qq_40694786的博客 1646

华中农业大学C++考试基础练习题

实验一 1 通过日期求某月的天数。 输入日期的年份和月份,求该月有多少天。提示:对于月份为1、3、5、7、8、10、12的月份天数为31,月份为4、6、9、11的月份天数为30,月份为2时要结合年份考虑闰年的情况。 输入描述 输入两个正整数y和m分别表示年份和月份。 输出描述 如果y和m满足条件:1900<=y<3000,0<m<13,输出该月的天数;否则输出“Input error!”。 输入样例 2010 12 输出样例 31 #include"iostream" using n

雨的博客 1万+

银行卡号输入难题:NFC技术如何提升支付效率与安全

银行卡号作为金融交易的核心标识,其准确输入直接影响支付成功率。传统手动输入方式受限于数字串长度、键位误触等问题,错误率居高不下。Luhn校验算法虽能验证卡号有效性,但无法解决输入阶段的错误问题。随着移动支付普及,NFC近场通信技术通过13.56MHz射频场与银行卡芯片交互,实现99.97%的识别准确率,大幅优于OCR识别方案。该技术遵循ISO/IEC 14443协议,在保证隐私安全(仅读取必要信息)的同时,将识别耗时缩短至1.2秒,特别适用于电商支付、转账汇款等高频场景。目前主流支付平台如支付宝、云闪付均已

weixin_30243533的博客 498

[DA45] 使用PageRank算法分析希拉里邮件中的人物关系

一. 相关知识 (一) PageRank算法 PageRank 算法是 google 公司的创始人拉里·佩奇和谢尔·盖布林于1998年提出的网页搜索优化算法. 详细内容请见百度百科:google pagerank. 如果你了解了该算法, 就能明白上一段的超链接从本页面链出, 链入百度百科的 PageRank 算法页面增加了该页面...

Vincent_Chu的博客 2376

Excel科学计数法问题及4种根治方案

科学计数法是Excel处理大数字时的默认显示方式,通过将数字转换为类似'1.23E+11'的格式来节省空间。然而,在处理身份证号、银行卡号等长数字时,这种转换会导致数据丢失或错误。本文介绍了四种解决方案:文本格式导入法、分列转换法、自定义格式代码和Power Query清洗。这些方法不仅能有效解决科学计数法带来的问题,还能在金融、电商等行业中确保数据的完整性和准确性。特别是Power Query清洗方法,在企业级场景中表现出色,能够完美保留原始数据并实现高度自动化处理。

weixin_29055699的博客 236

第78章:PCL Multiple View ICP 多视角配准

多视角配准(Multiple View ICP)是迭代最近点(ICP)算法的扩展,旨在处理多视角的点云数据配准问题。传统的ICP算法主要用于两幅点云之间的配准,而多视角配准则处理来自多个视角或不同时间采集的多个点云数据的配准任务。在实际应用中,多个传感器或多个拍摄角度获得的点云数据常常需要进行联合配准。这些点云可能由于不同的视角、拍摄位置或时间差异而存在位置和旋转的差异。多视角配准的目标是根据多个点云之间的匹配关系,找到它们的相对变换,使得这些点云能够合并成一个统一的三维模型。

yumeiguo的博客 158

红绿灯背后的数学:如何用Java算出“黄金绿灯时间“?

本文探讨了城市交通信号灯配时优化的数学原理与Java实现方法。文章首先分析了信号灯配时不合理导致的交通问题,指出精确计算绿灯时长的重要性。核心内容包括:1)基于M/M/1排队模型建立车流量数学模型,通过优化算法最小化总等待时间;2)使用Java实现信号灯优化控制器,采用梯度下降法动态调整绿灯时长。文中提供了完整的Java代码实现,包括信号灯控制器基类和优化控制器类,采用原子类保证线程安全,并详细解释了关键算法原理和实现细节。该方案可为城市智能交通系统提供理论支持和技术实现参考。

墨夶的博客 1345
上一篇: 检测浏览器是否支持可选链操作符(?.) 和 空值合并操作符(??)
下一篇: Fiddler 解析 JSON
枫谷剑仙
博客等级 码龄16年 13粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值