楼主 wjc2090742 |
Q:如何分别提取一组3位编码的最大数字并重新组合?如下图,A列到O列,是一组由3位数字组成的编码,现要求提取其中每个编码的最大数字,并连接成新的编码在P列。如何实现? A:使用下面的数组公式:
如何提取一组3位数字的最大数字并重新组合?.rar |
2楼 piny |
感謝wjc2090742 版主告知,下式皆僅適用B2不為000 可以再簡化5至10字元 103字元 =IF(0-A2,,0)&SUM(RIGHT(LARGE(MID(A2:O2,{1;2;3},1)+COLUMN(A:O)*100,3*ROW($1:$15)-2))*10^(ROW($1:$15)-1)) ============================================================== 100字元 =IF(0-A2,,0)&SUM(RIGHT(LARGE(MID(A2:O2,{1;2;3},1)+COLUMN(A:O)*100,3*ROW($1:$15)-2))*10^ROW($2:$16))% ============================================================== 99字元 =IF(-A2,,0)&SUM(RIGHT(LARGE(MID(A2:O2,{1;2;3},1)+COLUMN(A:O)*100,3*ROW($1:$15)-2))*10^ROW($2:$16))% ============================================================== 98字元 =IF(-A2,,0)&SUM(RIGHT(LARGE(MID(A2:O2,{1;2;3},1)+COLUMN(A:O)/1%,3*ROW($1:$15)-2))*10^ROW($2:$16))% |
3楼 wjc2090742 |
下面情况出错。 |
4楼 piny |
謝謝告知 一時忘了B2也可能是000 哈 全部思緒重來 ^^ 104字元 =TEXT(SUM(RIGHT(LARGE(MID(A2:O2,{1;2;3},1)+COLUMN(A:O)/1%,3*ROW($1:$15)-2))*10^ROW($2:$16))%,REPT(0,15)) ==================================================================================== 101字元 =MID(SUM(RIGHT(LARGE(MID(A2:O2,{1;2;3},1)+COLUMN(A:O)/1%,3*ROW($1:$15)-2))/10^(17-ROW($1:$15))),4,15) ==================================================================================== 94字元 =MID(SUM(RIGHT(SMALL(MID(A2:O2,{1;2;3},1)+COLUMN(A:O)/1%,3*ROW($1:$15)))/10^ROW($2:$16)),4,15) |
5楼 wjc2090742 |
只是写法的话,下面的还会短1个、2个。应对O列不是000的情况。1楼的比较直接,也算好套用吧。
|
6楼 wqfzqgk |
自定义函数,不分单元格有几位数,代码如下:
|
7楼 wjc2090742 |
不错不错,piny兄指点之下,公式写短了不少,这是件痛快事,也可见我写帖还不够较真。也多谢止水兄,这代码刚好参照着公式的思路学习。 |
8楼 悟空师弟 |
,实践出真知,交流才是硬道理! |