Excel精英培训网

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

[通知] 费了好大力气,写了这么个公式,想求更简洁的

[复制链接]
发表于 2008-5-27 14:29 | 显示全部楼层 |阅读模式
<table cellspacing="0" cellpadding="0" width="257" border="0" xstr="" style="WIDTH: 193pt; BORDER-COLLAPSE: collapse;"><colgroup><col width="155" style="WIDTH: 116pt; mso-width-source: userset; mso-width-alt: 4960;"></col><col></col><col></col><col></col><col width="102" style="WIDTH: 77pt; mso-width-source: userset; mso-width-alt: 3264;"></col><col></col><col></col><col></col></colgroup><tbody><tr height="19" style="HEIGHT: 14.25pt;"><td class="xl22" width="155" height="19" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext 0.5pt solid; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 116pt; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 14.25pt; BACKGROUND-COLOR: transparent;"><font face="宋体">22*33*44</font></td><td class="xl22" align="right" width="102" xnum="" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext 0.5pt solid; BORDER-LEFT: windowtext; WIDTH: 77pt; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent;"><font face="宋体">31944</font></td></tr><tr height="19" style="HEIGHT: 14.25pt;"><td class="xl22" height="19" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 14.25pt; BACKGROUND-COLOR: transparent;"><font face="宋体">1*2</font></td><td class="xl22" align="right" xnum="" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent;"><font face="宋体">2</font></td></tr><tr height="19" style="HEIGHT: 14.25pt;"><td class="xl22" height="19" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 14.25pt; BACKGROUND-COLOR: transparent;"><font face="宋体">11*222</font></td><td class="xl22" align="right" xnum="" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent;"><font face="宋体">2442</font></td></tr><tr height="19" style="HEIGHT: 14.25pt;"><td class="xl22" height="19" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 14.25pt; BACKGROUND-COLOR: transparent;"><font face="宋体">1*2*3*4*5*6*7*8*9</font></td><td class="xl22" align="right" xnum="" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent;"><font face="宋体">362880</font></td></tr><tr height="19" style="HEIGHT: 14.25pt;"><td class="xl22" height="19" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 14.25pt; BACKGROUND-COLOR: transparent;"><font face="宋体">1*22*333*4444</font></td><td class="xl22" align="right" xnum="" style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent;"><font face="宋体">32556744</font></td></tr></tbody></table><p>&nbsp;</p><p>=PRODUCT(--(SUBSTITUTE(0&amp;(MID(A1,SMALL(IF(RIGHT(MID("*"&amp;A1,1,ROW($1:$20)))="*",ROW($1:$20),21),ROW($1:$20)),SMALL(IF(RIGHT(MID(A1,1,ROW($1:$20)))="*",ROW($1:$20),21),ROW($1:$20))-SMALL(IF(RIGHT(MID("*"&amp;A1,1,ROW($1:$20)))="*",ROW($1:$20),21),ROW($1:$20))))&amp;".","0.",1)))</p><p>&nbsp;</p><p>宏表函数的不要[em05]</p><p>&nbsp;</p><p>将就一下,这样了</p><p>=PRODUCT(--(SUBSTITUTE("0000000000"&amp;(MID(A1,SMALL(IF(RIGHT(MID("*"&amp;A1,1,ROW($1:$20)))="*",ROW($1:$20),21),ROW($1:$20)),SMALL(IF(RIGHT(MID(A1,1,ROW($1:$20)))="*",ROW($1:$20),21),ROW($1:$20))-SMALL(IF(RIGHT(MID("*"&amp;A1,1,ROW($1:$20)))="*",ROW($1:$20),21),ROW($1:$20))))&amp;".","0000000000.",1)))</p>
[此贴子已经被作者于2008-5-27 14:55:55编辑过]
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
 楼主| 发表于 2008-5-27 14:32 | 显示全部楼层

<p>再解释一下,例如</p><p>A1内是字符串22*33*44,B1内是22*33*44的结果,以下类推。</p>
回复

使用道具 举报

发表于 2008-5-27 14:36 | 显示全部楼层

<p><font face="楷体_GB2312" size="1">不明白是啥意思,能说的详细点吗</font></p>
回复

使用道具 举报

 楼主| 发表于 2008-5-27 14:37 | 显示全部楼层

<p>RODUCT函数中不能有0,为了把0变成1,费了好大的周折</p><p>不过到底解决了,0&amp;字符串&amp;. 替换0.为1 </p><p>&nbsp;</p><p>(好像这里有弊端20*30可能就会出错)[em03]</p>
[此贴子已经被作者于2008-5-27 14:39:15编辑过]
回复

使用道具 举报

发表于 2008-5-27 14:42 | 显示全部楼层

<p>定义名称AA=EVALUATE($A1)</p><p>B1输入=AA</p>
回复

使用道具 举报

发表于 2008-5-27 14:42 | 显示全部楼层

<p>看清了,才知EVALUATE是宏表</p><p>还是HAI的TEXT用的出神入化.</p><p>用另一种思路,=PRODUCT(--MID(A1,SMALL(IF(MID("*"&amp;A1&amp;"*",ROW(1:20),1)="*",ROW(1:20),100),ROW(1:3)),SMALL(IF(MID("*"&amp;A1&amp;"*",ROW(1:20),1)="*",ROW(1:20),100),ROW(2:4))-SMALL(IF(MID("*"&amp;A1&amp;"*",ROW(1:20),1)="*",ROW(1:20),100),ROW(1:3))-1)),不知道*数量怎么算</p><p>&nbsp;</p>
[此贴子已经被作者于2008-5-27 16:57:34编辑过]
回复

使用道具 举报

发表于 2008-5-27 14:52 | 显示全部楼层

<p>不好意思了哈,没看清版面</p>
[此贴子已经被作者于2008-5-27 15:02:45编辑过]
回复

使用道具 举报

 楼主| 发表于 2008-5-27 14:59 | 显示全部楼层

回楼上,想讨论的是数组问题
回复

使用道具 举报

发表于 2008-5-27 15:10 | 显示全部楼层

<p>用TEXT把0转为1</p><p>=PRODUCT(--TEXT(MID(A1,SMALL(IF(RIGHT(MID("*"&amp;A1,1,ROW($1:$20)))="*",ROW($1:$20),21),ROW($1:$20)),SMALL(IF(RIGHT(MID(A1,1,ROW($1:$20)))="*",ROW($1:$20),21),ROW($1:$20))-SMALL(IF(RIGHT(MID("*"&amp;A1,1,ROW($1:$20)))="*",ROW($1:$20),21),ROW($1:$20))),"0;;;!1"))</p>
回复

使用道具 举报

 楼主| 发表于 2008-5-27 15:25 | 显示全部楼层

<p>想过hai的方法,可TEXT用不好[em03]</p>
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-19 16:37 , Processed in 0.270683 second(s), 7 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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