Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2901|回复: 13

[已解决]求各位帮忙:复杂情况的页数统计

[复制链接]
发表于 2017-7-6 16:19 | 显示全部楼层 |阅读模式
本帖最后由 jayzhouyu 于 2017-7-6 16:35 编辑

需要由“扫描页号”得到“页数”
扫描页码有四种类型的数值构成,
中间用“、”隔开。
四种类型分别如:
“1”、“1-13”、“1.1”、“1.1-12.1”
单个整数和单个小数都表示1页
1-13为13页
1.1-12.1为12页
最终想得到页数,单一类型还好统计,但是既有A4那种最简单的,也有A8这种最复杂的情况,那要怎么用一个公式统计出来呢
用“、”号隔开,并且中间没有“-”的,都表示一页,比如9、32、3.1、18.2,这样一共代表了4页。
中间有“-”的,那么1-9是9页,18.1-32.1是15页,3.2-17.2是15页,不会出现18.1-22.3这种情况。
逻辑上来说找到-,然后-之后的数字减去-之前的数字,碰到18.1-32.1这种的,直接取整数然后做减法。
再去单独3、9、3.1、18.1这种单独计数
然后总计多少页。
但是复杂的嵌套的函数完全不会~
QQ图片20170706161731.png
统计页数求助.rar (7.43 KB, 下载次数: 5)
发表于 2017-7-6 16:22 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2017-7-6 16:23 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2017-7-6 16:31 | 显示全部楼层
本帖最后由 jayzhouyu 于 2017-7-6 16:33 编辑

用“、”号隔开,并且中间没有“-”的,都表示一页,比如9、32、3.1、18.2,这样一共代表了4页。中间有“-”的,那么1-9是9页,18.1-32.1是15页,3.2-17.2是15页,不会出现18.1-22.3这种情况。
逻辑上来说找到-,然后-之后的数字减去-之前的数字,碰到18.1-32.1这种的,直接取整数然后做减法。
再去单独找3.1、18.1这种单独计数
然后总计多少页。
但是复杂的嵌套的函数完全不会~

回复

使用道具 举报

发表于 2017-7-6 16:50 | 显示全部楼层
wef3ff4445.gif
统计页数求助2.rar (10.17 KB, 下载次数: 5)
回复

使用道具 举报

 楼主| 发表于 2017-7-6 16:56 | 显示全部楼层

超版,这个我没说清楚。我想由A列“扫描页号”直接得到B列的“页数”,那个“纯手动统计页数’是我自己算出来的,但是我想用一个复杂的嵌套函数直接得出B列的数值。
A列的各数值是我距离的各种存在的情况
回复

使用道具 举报

发表于 2017-7-6 17:23 | 显示全部楼层
如果A列不规范,B列就算能用函数,也极麻烦、(比如字符串里又多了一个啥符号)通用性差、不便阅读。

所以,建议把精力花在如何让A列的值能更规范上。
回复

使用道具 举报

 楼主| 发表于 2017-7-6 17:30 | 显示全部楼层
爱疯 发表于 2017-7-6 17:23
如果A列不规范,B列就算能用函数,也极麻烦、(比如字符串里又多了一个啥符号)通用性差、不便阅读。

所 ...

谢谢超版建议
回复

使用道具 举报

发表于 2017-7-6 18:59 | 显示全部楼层
IF(ISNUMBER(--TRIM(MID(SUBSTITUTE(SUBSTITUTE($A2,"-","_"),"、",REPT(" ",99)),COLUMN(A1)*99-98,99))),1,COUNT(ROW(INDIRECT(TRIM(MID(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE($A2,".1",""),"-",":"),"、",REPT(" ",99)),COLUMN(A1)*99-98,99))))))
QQ截图20170706185858.png
回复

使用道具 举报

发表于 2017-7-6 21:50 | 显示全部楼层    本楼为最佳答案   
本帖最后由 苏子龙 于 2017-7-6 22:40 编辑
  1. Function YeShu(Str)
  2. Dim Ar, i%, Ys&
  3. Ar = Split(Str, "、")
  4. For i = 0 To UBound(Ar)
  5. If InStr(Ar(i), "-") Then
  6. Ys = Ys + Abs(Evaluate(Ar(i))) + 1
  7. Else
  8. Ys = Ys + 1
  9. End If
  10. Next
  11. YeShu = Ys
  12. End Function
  13. 自定义函数吧
复制代码
函数比较难,就自定义吧

统计页数求助2.rar

15.72 KB, 下载次数: 6

评分

参与人数 2 +2 收起 理由
frankzhang21 + 1 学习到了 evaluate
niko88819 + 1 来学习

查看全部评分

回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-3-29 23:03 , Processed in 0.834966 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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