ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 5261|回复: 24

[分享] 【欣兰超级实用小分享】空格数保底控制法

[复制链接]

TA的精华主题

TA的得分主题

发表于 2019-7-25 11:14 | 显示全部楼层 |阅读模式
本帖最后由 新手路上 于 2019-7-25 15:25 编辑

首先表明我是一个一天不嘚瑟(qian xu)就呼吸苦难的人,我尤其喜欢在各位前辈面前嘚瑟,当然被打脸是经常发生的事情,当初我写这个标题的时候我内心是拒绝的,但是我摸摸我那厚厚的脸皮后就决定不管那么多了,谁都知道的我也放上来了哈。O(∩_∩)O哈哈~
很多人不是特别知道substitute用空格放大的时候该放多大,其实原理也是非常简单的,真的非常简单。
现有n个字符串记为a1,a2,a3……an,(n>1)每个字符串的长度记为len(a1),len(a2),……len(an)。假设每个字符串之间用一个符号§进行连接成为一个新的字符串A,现用x(正整数)个空格来进行替换§,使得在A中的第x-(x-1),2x-(x-1),3x-(x-1)……nx-(x-1),即第1,x+1,2x+1……nx-x+1位处取x个字符仅包含对应字符串a1,a2,a3……an及空格,且应满足len(a1)+len(a2)+……len(an)+nx-x<32768,试问,x的取值范围。
现证明:当len(a1)+len(a2)+……len(an) -1 < x时即可满足条件。
当n=2时明显应有x>len(a1)-1且2x>len(a1)+len(a2)+x-1,取交集即x>len(a1)+len(a2)-1。
当n=3时应有x>len(a1)-1且2x>len(a1)+len(a2)+x-1且3x>len(a1)+len(a2)+len(a3)+2x-1,取交集即x>len(a1)+len(a2)+len(a3)-1。
………………………………………………………
………………………………………………………
………………………………………………………
故当n=n时也应有x>len(a1)-1且2x>len(a1)+len(a2)+x-1且3x>len(a1)+len(a2)+len(a3)+2x-1……且nx>len(a1)+len(a1)+len(a2)+……len(an)+nx-x-1,即x>len(a1)+len(a2)+……len(an)-1。
当且仅当RIGHT(B,LEN(an))=an时应有x=len(a1)+len(a2)+……len(an),其中B为在字符串A的第nx-x+1位处取x个字符所形成的字符串。故有len(a1)+len(a2)+……len(an) -1 < x。
所以在实际应用中如何求x??直接用空替换出连接符然后len一下即可得出x,很多人说往大取不是可以吗?当然可以,但是我喜欢刚刚好~~~~(*^▽^*)
附件没什么.zip (8.01 KB, 下载次数: 83)


评分

12

查看全部评分

TA的精华主题

TA的得分主题

发表于 2019-7-25 11:30 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2019-7-25 11:30 来自手机 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-7-25 12:15 | 显示全部楼层
sbdk007 发表于 2019-7-25 11:30
这数学看的我头痛,除了佩服,还是佩服

前辈,这个其实是相当相当简单的东西。真的。

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2019-7-25 12:18 来自手机 | 显示全部楼层
虽然文化水平还没够看懂,但花花不能少

TA的精华主题

TA的得分主题

发表于 2019-7-25 12:35 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
当且仅当    在论证不。。   老师的数学不错啊 、
退个7-8年可能我还看得懂、

TA的精华主题

TA的得分主题

发表于 2019-7-25 13:48 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 丢丢表格 于 2019-7-25 21:51 编辑

A列
A+1234+5169+1+0+9987+12345+8


如: 用公式分列出 “+” 连接的字符。
=TRIM(MID(SUBSTITUTE(A1,"+",REPT(" ",LEN(A1))),(ROW(1:8)-1)*LEN(A1)+1,LEN(A1)))
以上的公式 方法为  最低栽剪配置 。
ROW(1:8) 这里的 8 是“+” 的个数 再多一 1个。

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-7-25 15:06 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
丢丢表格 发表于 2019-7-25 13:48
如: 用公式分列出 “+” 连接的字符。
=TRIM(MID(SUBSTITUTE(A2,"+",REPT(" ",LEN(A2)+5)),(ROW(1:8) ...

老师,我一般喜欢直接用substitute来确定最小的空格数,即=LEN(SUBSTITUTE(A1,"+",))=21,然后
就用=TRIM(MID(SUBSTITUTE(A$1,"+",REPT(" ",21)),21*ROW(A1)-20,21))
下拉完成提取,O(∩_∩)O哈哈~老师的门槛高,被你打脸了(#^.^#)

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2019-7-25 20:36 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
就是缺少具体例子。

TA的精华主题

TA的得分主题

发表于 2019-10-9 17:24 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 爱疯 于 2019-10-9 18:19 编辑

楼主对空行回车,有多大的啊 ...


【描述】
现有n个字符串记为a1,a2,a3……an,(n>1)每个字符串的长度记为len(a1),len(a2),……len(an)。
假设每个字符串之间用一个符号§进行连接成为一个新的字符串A,


【需求】
现用x(正整数)个空格来进行替换§,使得在A中的第x-(x-1),2x-(x-1),3x-(x-1)……nx-(x-1),
即第1,x+1,2x+1……nx-x+1位处取x个字符仅包含对应字符串a1,a2,a3……an及空格,
且应满足len(a1)+len(a2)+……len(an)+nx-x<32768,试问,x的取值范围。


【证明】
现证明:当len(a1)+len(a2)+……len(an) -1 < x时即可满足条件。
当n=2时明显应有x>len(a1)-1且2x>len(a1)+len(a2)+x-1,取交集即x>len(a1)+len(a2)-1。
当n=3时应有x>len(a1)-1且2x>len(a1)+len(a2)+x-1且3x>len(a1)+len(a2)+len(a3)+2x-1,取交集即x>len(a1)+len(a2)+len(a3)-1。
………………………………………………………
………………………………………………………
………………………………………………………
故当n=n时也应有x>len(a1)-1且2x>len(a1)+len(a2)+x-1且3x>len(a1)+len(a2)+len(a3)+2x-1……且nx>len(a1)+len(a1)+len(a2)+……len(an)+nx-x-1,即x>len(a1)+len(a2)+……len(an)-1。
当且仅当RIGHT(B,LEN(an))=an时应有x=len(a1)+len(a2)+……len(an),其中B为在字符串A的第nx-x+1位处取x个字符所形成的字符串。故有len(a1)+len(a2)+……len(an) -1 < x。




来学习,是不是
len(a1)+len(a2)+……len(an) 代表去除分隔符后,A的剩余长度
nx-x,即(n-1)*x,代表替换旧分隔符§后,新分隔符的总长度
黄色不等式左边,代表替换后A的长度
黄色部分意思是替换后必须,A的长度<32768
https://zhidao.baidu.com/question/419498773.html


您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-4-25 21:38 , Processed in 0.053332 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表