楼主 rongjun |
出个题目大家玩玩,题目简单,欢迎大家积极参与。kk.JPG 文本合并——题目.rar |
2楼 tntpai |
卡在2000这了,怎么判断有几个重复的0啊 |
3楼 tntpai |
=SUBSTITUTE(A2,LOOKUP(9.9E+307,--MID(A2,ROW($1:$20),1)),LOOKUP(9.9E+307,--MID(A2,ROW($1:$20),1))&B2,LEN(A2)-LEN(SUBSTITUTE(A2,LOOKUP(9.9E+307,--MID(A2,ROW($1:$20),1)),""))) |
4楼 toby08 |
也来一个: =LEFT(A2,LOOKUP(1,0/(MID(A2,ROW($1:$99),1)+1),ROW($1:$99)))&B2&RIGHT(A2,LEN(A2)-LOOKUP(1,0/(MID(A2,ROW($1:$99),1)+1),ROW($1:$99))) |
5楼 tntpai |
答案也合并一下 =REPLACE(A2,LOOKUP(1,0/(MID(A2,ROW($1:$20),1)+1),ROW($1:$20)),1,LOOKUP(9.9E+307,--MID(A2,ROW($1:$20),1))&B2) |
6楼 x.f.zhao |
=REPLACE(A2,MATCH(1,-MID(0&A2,ROW($1:99),1)),,B2) |
7楼 tntpai |
MATCH(1,-MID(0&A2,ROW($1:99),1))这个没看懂,有没有高人指导一下啊 |
8楼 tntpai |
虽然这个长了点,不过自己还看得懂,对REPLACE理解深了点 =REPLACE(A2,LOOKUP(1,0/(MID(A2,ROW($1:$20),1)+1),ROW($1:$20))+1,,B2) |
9楼 gvntw |
核心公式MATCH(1,-MID(0&A2,ROW($1:99),1)): MATCH(参数1,参数2,参数3):当参数3为1或省略时, MATCH 查找小于或等于参数1的最大数值,参数2必须按升序排列。而公式中参数2实际上并没有升序排列,此公式也正利用这个特点,用二分法来找出最后一位数字的位置。 “-MID(0&A2,ROW($1:99),1)”:当字符为文本时,返回错误值(忽略),为数字时,则返回0或-1至-9之间的数字,都小于参数1的数字“1”,根据二分法原理,最后只能找到最后一位数字的位置。 其中数字“99”是随便写的一个数字,这个数字不得小于A2的字符长度。 外套的 REPLACE 是该函数的常规用法,看帮助就行了。 =REPLACE(A2,MATCH(1,-MID(0&A2,ROW($1:99),1)),,B2) 公式也可以改为: =REPLACE(A2,MATCH(1,-MID(A2,ROW($1:99),1))+1,,B2) 从最后一位数字+1位插入(替换0位)字符。 |
10楼 _s_bri |
做了一下,太长 =SUBSTITUTE(A2,LOOKUP(9E+307,--MID(A2,MIN(FIND(ROW($1:$10)-1,A2&ROW($1:$10)-1)),ROW($1:$15))),LOOKUP(9E+307,--MID(A2,MIN(FIND(ROW($1:$10)-1,A2&ROW($1:$10)-1)),ROW($1:$15)))&B2)数组 |
11楼 syz105729913 |
我的公式 =REPLACE(A2,MATCH(9E+307,-TEXT(MID(A2,ROW($1:$20),1),"0;;0;"))+1,,B2) |
12楼 xuchanghong |
D2=A2&B2 建议能不用函数的地方尽量不用。 |
13楼 xuchanghong |
哦,看错了,确实需要用函数的,见谅! |
14楼 zhi1wei3 |
初学者,请指导 |
15楼 西山晴雪 |
三种实现方法都很不错,尤其利用match等函数的二分法确实令人耳目一新 |
16楼 秋燕 |
新手上路。烦请楼主详解公式含义,拜托啦! |
17楼 秋燕 |
佩服!我是新手,请问楼主“1,0/(MID(A2,ROW($1:$20),1)+1”是什么意思?不好意思,我不太明白公式的含义,烦请楼主详解一下好吗?谢谢! |
18楼 dgxsdr |
=LEFT(A2,MAX(IF(ISNUMBER(-MID(A2,ROW($1:$99),1)),ROW($1:$99))))&B2&MID(A2,MAX(IF(ISNUMBER(-MID(A2,ROW($1:$99),1)),ROW(INDIRECT("1:"&LEN(A2)))))+1,99) |
19楼 dgxsdr |
楼上的简化了一半,应该是: =LEFT(A2,MAX(IF(ISNUMBER(-MID(A2,ROW($1:$99),1)),ROW($1:$99))))&B2&MID(A2,MAX(IF(ISNUMBER(-MID(A2,ROW($1:$99),1)),ROW($1:$99)))+1,99) |
20楼 bensonlei |
看一下回复过的帖子,刚试了一下不知为什么? <=REPLACE(A2,LOOKUP(1,0/(MID(A2,ROW($1:$20),1)+1),ROW($1:$20))+1,,B2)> -可以显示正确的答案, 但是最短的答案<=REPLACE(A2,MATCH(1,-MID(0&A2,ROW($1:99),1)),,B2)> 只是出现" N/A"的结果. 为什么? 是Excel 版本的问题? 我用的是Excel 2003. |
21楼 rongjun |
出个题目大家玩玩,题目简单,欢迎大家积极参与。kk.JPG 文本合并——题目.rar |
22楼 tntpai |
卡在2000这了,怎么判断有几个重复的0啊 |
23楼 tntpai |
=SUBSTITUTE(A2,LOOKUP(9.9E+307,--MID(A2,ROW($1:$20),1)),LOOKUP(9.9E+307,--MID(A2,ROW($1:$20),1))&B2,LEN(A2)-LEN(SUBSTITUTE(A2,LOOKUP(9.9E+307,--MID(A2,ROW($1:$20),1)),""))) |
24楼 toby08 |
也来一个: =LEFT(A2,LOOKUP(1,0/(MID(A2,ROW($1:$99),1)+1),ROW($1:$99)))&B2&RIGHT(A2,LEN(A2)-LOOKUP(1,0/(MID(A2,ROW($1:$99),1)+1),ROW($1:$99))) |
25楼 tntpai |
答案也合并一下 =REPLACE(A2,LOOKUP(1,0/(MID(A2,ROW($1:$20),1)+1),ROW($1:$20)),1,LOOKUP(9.9E+307,--MID(A2,ROW($1:$20),1))&B2) |
26楼 x.f.zhao |
=REPLACE(A2,MATCH(1,-MID(0&A2,ROW($1:99),1)),,B2) |
27楼 tntpai |
MATCH(1,-MID(0&A2,ROW($1:99),1))这个没看懂,有没有高人指导一下啊 |
28楼 tntpai |
虽然这个长了点,不过自己还看得懂,对REPLACE理解深了点 =REPLACE(A2,LOOKUP(1,0/(MID(A2,ROW($1:$20),1)+1),ROW($1:$20))+1,,B2) |
29楼 gvntw |
核心公式MATCH(1,-MID(0&A2,ROW($1:99),1)): MATCH(参数1,参数2,参数3):当参数3为1或省略时, MATCH 查找小于或等于参数1的最大数值,参数2必须按升序排列。而公式中参数2实际上并没有升序排列,此公式也正利用这个特点,用二分法来找出最后一位数字的位置。 “-MID(0&A2,ROW($1:99),1)”:当字符为文本时,返回错误值(忽略),为数字时,则返回0或-1至-9之间的数字,都小于参数1的数字“1”,根据二分法原理,最后只能找到最后一位数字的位置。 其中数字“99”是随便写的一个数字,这个数字不得小于A2的字符长度。 外套的 REPLACE 是该函数的常规用法,看帮助就行了。 =REPLACE(A2,MATCH(1,-MID(0&A2,ROW($1:99),1)),,B2) 公式也可以改为: =REPLACE(A2,MATCH(1,-MID(A2,ROW($1:99),1))+1,,B2) 从最后一位数字+1位插入(替换0位)字符。 |
30楼 _s_bri |
做了一下,太长 =SUBSTITUTE(A2,LOOKUP(9E+307,--MID(A2,MIN(FIND(ROW($1:$10)-1,A2&ROW($1:$10)-1)),ROW($1:$15))),LOOKUP(9E+307,--MID(A2,MIN(FIND(ROW($1:$10)-1,A2&ROW($1:$10)-1)),ROW($1:$15)))&B2)数组 |