ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 怎么把一个单元格中一串数字的奇数位(从左往右数)的0去掉

[复制链接]

TA的精华主题

TA的得分主题

发表于 2014-7-23 13:56 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 13732120571 于 2014-7-23 14:00 编辑

1、)奇数位置的0都去掉
  1. =MID(SUM((0&MID(A1,SMALL((MOD(ROW($1:$14),2)=1)*(MID(A1,ROW($1:$14),1)="0")*100+ROW($1:$14),ROW($1:$14)),1))/10^ROW($1:$14))&REPT(0,19),3,COUNT(0/(1-(MOD(ROW($1:$14),2)=1)*(MID(A1,ROW($1:$14),1)="0"))))
复制代码


数组公式
2、)前12位中的奇数位都没出现0,13位出现了0,就把13位的0保留
  1. =REPLACE(MID(SUM((0&MID(A1,SMALL((MOD(ROW($1:$14),2)=1)*(MID(A1,ROW($1:$14),1)="0")*100+ROW($1:$14),ROW($1:$14)),1))/10^ROW($1:$14))&REPT(0,19),3,COUNT(0/(1-(MOD(ROW($1:$14),2)=1)*(MID(A1,ROW($1:$14),1)="0")))),COUNT(0/(1-(MOD(ROW($1:$14),2)=1)*(MID(A1,ROW($1:$14),1)="0"))),,LEFT(0,(MID(A1,13,1)="0")*(SUM(N(MID(A1,ROW($1:$6)*2-1,1)="0"))=0)))
复制代码


数组公式,

TA的精华主题

TA的得分主题

发表于 2014-7-23 17:54 | 显示全部楼层
cq023112 发表于 2014-7-22 22:07
最笨的办法,凑个热闹。

=TEXT(MID(A1,1,2),0)&TEXT(MID(A1,3,2),0)&TEXT(MID(A1,5,2),0)&TEXT(MID(A1,7,2),0)&TEXT(MID(A1,9,2),0)&TEXT(MID(A1,11,2),0)&TEXT(MID(A1,13,2),IF(COUNT(0/(MID(A1,ROW($1:$6)*2-1,1)="0")),"0","00"))

TA的精华主题

TA的得分主题

发表于 2014-7-23 18:07 | 显示全部楼层
muyuxuan 发表于 2014-7-22 20:38
嗯嗯嗯,是的,刚才的陈述不是很好,是说把这串数字的奇数位的0去掉,非0保留,并按原来顺序重新组成一个 ...
  1. =--MID(A1,1,2)&--MID(A1,3,2)&--MID(A1,5,2)&--MID(A1,7,2)&--MID(A1,9,2)&--MID(A1,11,2)&--MID(A1,13,2)
复制代码

TA的精华主题

TA的得分主题

发表于 2014-7-23 18:40 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
gefa06 发表于 2014-7-23 12:49
lm1221老师,谢谢你。
之前我下载过你回复的vba方法,可以看到模块,但看不到代码,请问,这种安全性问题 ...

首先谢谢你的鲜花
还有我想告诉你的是,我也是初学,也从没有对代码做过加密或隐藏
论坛中破解的方法很多,你可以搜下看看
你下面的附件只是隐藏了模块2,所以你看不到代码,其原代码如下:

Sub 去重复()
    ar1 = Range(Cells(2, 1), Cells([a1].CurrentRegion.Rows.Count, 1))
    Set d1 = CreateObject("Scripting.Dictionary")
    For i = 1 To UBound(ar1)
        tmp1 = Split(ar1(i, 1) & ",", ",")
        DoEvents
        For j = 0 To UBound(tmp1) - 1
            d1(tmp1(j)) = ""
        Next
    Next
    Range("c:c").ClearContents
    [c1] = "最终结果(所有不重复值)"
    [c2].Resize(d1.Count, 1) = WorksheetFunction.Transpose(d1.keys)
End Sub

TA的精华主题

TA的得分主题

发表于 2014-7-24 08:48 | 显示全部楼层
本帖最后由 delete_007 于 2014-7-24 08:53 编辑

前12位奇数位无0,保留第13位的0.
  1. =SUM(10^MMULT(N(COLUMN(A:F)>ROW($1:$6)),LEN(--MID(A1,ROW($1:$6)*2-1,2)))*MID(A1,ROW($1:$6)*2-1,2))&TEXT(RIGHT(A1,2),IF(AND(-MID(A1,ROW($1:$6)*2-1,1)),0,)&0)
复制代码
去掉所有奇数位的0.
  1. =SUM(10^MMULT(N(COLUMN(A:G)>ROW($1:$7)),LEN(--MID(A1,ROW($1:$7)*2-1,2)))*MID(A1,ROW($1:$7)*2-1,2))
复制代码

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2014-7-25 08:05 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
delete_007 发表于 2014-7-24 08:48
前12位奇数位无0,保留第13位的0.去掉所有奇数位的0.

估计7版有好办法,我用MMULT在进位的问题上琢磨了大半天,这个贴收藏了。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-5-19 19:12 , Processed in 0.031825 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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