Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
楼主: gvntw

[练习题]字符串中取数相加(已总结)

[复制链接]
发表于 2007-8-21 20:51 | 显示全部楼层

V20好棒[em17][em17][em17]
回复

使用道具 举报

发表于 2007-8-22 00:43 | 显示全部楼层

<p>我也来凑凑热闹[em05]:</p><p>&nbsp;定义M=MID(A2,ROW(INDIRECT("1:"&amp;LEN(A2))),5)</p><p>&nbsp;公式{=SUM(--IF(LEFT(M,1)="取",MID(M,2,(FIND("元",SUBSTITUTE(M,"块","元")))-2),0))}</p><br/>
[此贴子已经被作者于2007-8-22 0:46:41编辑过]
回复

使用道具 举报

发表于 2007-8-22 12:40 | 显示全部楼层

试一下:

<p>定义名称:a=FIND("取",A2&amp;"取",ROW(INDIRECT("1:"&amp;LEN(A2))))</p><p>公式:=SUM(IF(REPLACE(SUBSTITUTE(A2,"块","元"),1,IF(FREQUENCY(a,a),a,LEN(A2)),"")="",0,--LEFT(REPLACE(SUBSTITUTE(A2,"块","元"),1,IF(FREQUENCY(a,a),a,LEN(A2)),""),FIND("元",REPLACE(SUBSTITUTE(A2,"块","元"),1,IF(FREQUENCY(a,a),a,LEN(A2)),""))-1)))</p><p>特点:与题目要求相比,数字大小没有限制。</p><br/>
回复

使用道具 举报

 楼主| 发表于 2007-8-21 18:09 | 显示全部楼层

<div class="msgheader">QUOTE:</div><div class="msgborder"><b>以下是引用<i>zxc304</i>在2007-8-21 14:52:55的发言:</b><br/>感觉很难,因为15元跟5元之间没法区分,这样会重复加入,再想想</div><p></p><p>字符串规律:取000元或块,数字不大于1000。</p><p>也许是我说得不够清楚,数字前都有个“取”字。</p>
回复

使用道具 举报

发表于 2007-8-21 18:52 | 显示全部楼层

<p>B2=SUM(--IF(LEFT(MID(A2,ROW(INDIRECT("1:"&amp;LEN(A2))),5),1)="取",MID(MID(SUBSTITUTE(A2,"块","元"),ROW(INDIRECT("1:"&amp;LEN(A2))),5),2,SEARCH("元",MID(SUBSTITUTE(A2,"块","元"),ROW(INDIRECT("1:"&amp;LEN(A2))),5))-2)))</p><p>长~数组公式</p>
回复

使用道具 举报

 楼主| 发表于 2007-8-22 15:20 | 显示全部楼层

哦,都有点曲解的我意思了,都怪我出题不够严密,说得不够清楚,虽然是“取000元或块”,但不能完全按“取”字来取值,因为中间也可能有“取”字,如A2单元格的“张三”,如果其名字为“张取三”,完全按“取”字来做的话,会出错。
回复

使用道具 举报

发表于 2007-8-22 17:50 | 显示全部楼层

<div class="msgheader">QUOTE:</div><div class="msgborder"><b>以下是引用<i>gvntw</i>在2007-8-22 15:20:56的发言:</b><br/>哦,都有点曲解的我意思了,都怪我出题不够严密,说得不够清楚,虽然是“取000元或块”,但不能完全按“取”字来取值,因为中间也可能有“取”字,如A2单元格的“张三”,如果其名字为“张取三”,完全按“取”字来做的话,会出错。</div><p>加了个条件,加个错语处理,修改后数值可以为任意长度.</p><p>定义: M=MID(A2,ROW(INDIRECT("1:"&amp;LEN(A2))),len(A2))</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; N=--IF(LEFT(M,1)="取",MID(M,2,(FIND("元",SUBSTITUTE(M,"块","元")))-2),0)</p><p>B2=SUM(IF(ISERROR(N),0,N))</p><p>&nbsp;<br/></p><br/><br/>
[此贴子已经被作者于2007-8-22 18:02:31编辑过]
回复

使用道具 举报

发表于 2007-8-22 20:01 | 显示全部楼层

<div class="msgheader">QUOTE:</div><div class="msgborder"><b>以下是引用<i>gvntw</i>在2007-8-22 15:20:56的发言:</b><br/>哦,都有点曲解的我意思了,都怪我出题不够严密,说得不够清楚,虽然是“取000元或块”,但不能完全按“取”字来取值,因为中间也可能有“取”字,如A2单元格的“张三”,如果其名字为“张取三”,完全按“取”字来做的话,会出错。</div><p></p><p></p><p>已考虑名字问题,不过和兰版相比公式复杂一些,献丑了。<br/></p><div class="msgheader">QUOTE:</div><div class="msgborder"><p><font color="#ff0000">公式虽然比较复杂和不好理解,但结果正确,对于初级会员(不说版主贵宾,又无段位,高级会员可没有哟)来说,是非常难得的,奖励金币一个,以示鼓励!</font></p><p><font color="#ff0000">反正又花的兰色的币币,不心疼,嘿嘿…… —gvntw</font></p></div><p>&nbsp;</p>
[此贴子已经被gvntw于2007-8-24 20:29:59编辑过]
回复

使用道具 举报

发表于 2007-8-24 14:25 | 显示全部楼层

<div class="msgheader">QUOTE:</div><div class="msgborder"><b>以下是引用<i>zxc304</i>在2007-8-24 9:26:36的发言:</b><br/>难道我的思路不简单吗?一看公式就懂.</div><p></p>[em17]
回复

使用道具 举报

发表于 2007-8-24 07:56 | 显示全部楼层

<p>=SUM(IF(ISERROR(FIND("取"&amp;ROW(1:1000)&amp;{"元","块"},A2)),0,ROW(1:1000)))</p><p>来个最简单的</p>
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-16 05:23 , Processed in 0.346794 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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