EXCEL中A列为不规则的数字,有个位、有十位,有百位的。想把每行中的数字拆分成三份、且和等于A列对应行的

EXCEL中A列为不规则的数字,有个位、有十位,有百位的。想把每行中的数字拆分成不规则的两份或者三份到BCD列、且和等于A列对应行的数值,请问谁有好办法?

要“拆分成不规则的”数值,就只能用随机函数。
你的数据是“有个位、有十位,有百位的”就是百位内的整数了,就拆成三份吧:
B1=INT(RAND()*(A1-2)+1)回车并向下填充(下同)
C1=INT(RAND()*(A1-B1-1)+1)
D1=A1-B1-C1
按F2+Enter可更新运算结果。

1楼“soup5258”是个办法,但那只是把个位、十位、百位拆开,而不是“拆分成不规则的”。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-07-21
如果是有规律的拆分,请给出规律
如果是随意的拆分,请使用随机函数rand:

假设要将A1拆分为两份,那么分别在B1和C1输入:
=int(A1*rand())
=A1-B1

假设要将A1拆分为三份,那么分别在B1、C1、D1输入:
=int(A1*rand())
=int((A1-B1)*rand())
=A1-B1-C1

当然其中有可能出现0
为避免出现零,请修改如下:
分两份时:
=int((A1-0.5)*rand()+1)
=A1-B1
分三份时:
=int((A1-0.5)*rand()+1)
=int((A1-B1-0.5)*rand()+1)
=A1-B1-C1

这样可以避免前面拆分的数不会为0,但最后一个数还是可能为0
第2个回答  2011-07-21
首先确保A列 数字长度是3为
B1输入公式 =--MID($A1,COLUMN(A1),1)*(10^(3-COLUMN(A1))
向右填充,到D列
向下填充
第3个回答  2011-07-21
B1:=ROUND(RAND()*A1,0)
C1:=ROUND(RAND()*(A1-B1),0)
D1:=IF(A1-B1-C1=0,"",A1-B1-C1)
其他向下填充
第4个回答  2011-07-21
=SUMPRODUCT(B1:D10*10^{2,1,0})
相似回答