如何从三个变量构建复杂的价值?

时间:2013-11-29 11:41:01

标签: excel function excel-2013

我有一个包含2000多个条目的Excel电子表格:

Field B1: CustomerID as 000012345
Field B2: CustomerID as 0000432

Field C1: CustomerCountry as DE
Field C2: CustomerCountry as IT

我需要构建长度为13位的代码,包括“CustomerCountry”+“CustomerID”,不带前导0 +随机数(可以是6位数,或多或少,取决于{{1}的长度})。

结果应如下所示:D1代码为CustomerID或D2代码为DE12345967895

如何使用Excel功能?

更新: 我试过这个。我的大问题是,随机数应该足够长,总共可以得到13个字符。有时IT43274837401只有3或4位数字,并且三个变量的串联可以只有10或9个字符。但代码必须总是13个字符。

enter image description here

3 个答案:

答案 0 :(得分:5)

使用&连接字符串。

使用VALUE(CustomerID)修剪ID

中的前导零

使用RAND()添加0到1之间的随机数或RANDBETWEEN(x,y)以在x和y之间创建一个。

结合以上和你在那里!

如果您总是想要13个数字,则可以使用LEFT(INT(RAND()*10^13);(13-LEN(CustomerCountry)-LEN(VALUE(CustomerID))))作为随机数,始终是正确的长度。

总公式

= CustomerCountry 
  & VALUE(CustomerID) 
  & LEFT(INT(RAND()*10^13);(13-LEN(CustomerCountry)-LEN(VALUE(CustomerID))))

答案 1 :(得分:2)

=C1 & TEXT(B1,"0") & RIGHT(TEXT(RANDBETWEEN(0,99999999999),"00000000000"),11 - LEN(TEXT(B1,"0")))

应该这样做

答案 2 :(得分:0)

我不明白究竟是什么,OP接受了答案,所以没有考虑过测试:

=LEFT(RIGHT(C1,2)&VALUE(MID(B1,15,13))&RANDBETWEEN(10^9,10^10),13)

(但如果没有其他人首先选择其中的缺陷,我可能会回复这个!)