我相信所写的条件会很长,而且我写这篇长篇文章并不是很好
我使用了6列,即D,E,M,N,O,P
样本数据:
D3=123456(Changing variable as it can be 12345, 12345A,123456A)
E3=1
M3=31
N3=_
O3=00
P3=0
该公式是基于此D列字段设计的(变量更改在此字段中) 如果D3的长度= 6则(当前公式i已经完成)
=IF(LEN(D3)=6,CONCATENATE(M3,D3,N3,O3,E3),CONCATENATE(M3,D3,O3,E3))
这个结果将是31123456_001,如果让D变量改为123456A(其他的话) 在公式中我显示为没有连接N3) 然后结果将是31123456A001。
我已在列p中添加,以便我可以使用它连接到我需要的格式。
还有一些我需要添加的条件,
哪个是
的 1。如果D3 = 12345,格式结果将为31012345_001(连接M3,P3,D3,N3,O3,E3)
的 2。如果D = 12345A,格式结果将为31012345A001(连接M3,P3,D3,O3,E3)
第3。列D3字段的数据,12345 A , A 字母表可以在A-Z中。
这些是我在公式中需要的所有条件和结果的列表。
1. D3 = 123456 then the outcome will be 31123456_001
2. D3 = 123456A then outcome will be 31123456A001
3. D3 = 12345 then outcome will be 31012345_001
4. D3 = 12345A then outcome will be 31012345A001
其他信息:
这些只是格式,因为它可以是任何数字组合,最后一个字母字母可以是A-Z
D3 = 123456
D3 = 123456A
D3 = 12345
D3 = 12345A
答案 0 :(得分:2)
由于我无法完全了解所有条件和结果,以下是您的公式看起来如何的示例:
=IF(LEN(D3)=5,Outcome_1_Concatenation,IF(LEN(D3)=7,Outcome_2_Concatenation,IF(ISNUMBER(VALUE(RIGHT(D3,1))),Outcome_3_Concatenation,Outcome_4_Concatenation)))
Outcome_1_Concatenation => replace with formula when LEN = 5
Outcome_2_Concatenation => replace with formula when LEN = 7
Outcome_3_Concatenation => replace with formula when LEN = 6 and all are numbers
Outcome_4_Concatenation => replace with formula when LEN = 6 and last is character
如果您在condition => outcome
列表中提供所有示例,我将很乐意进一步提供帮助。
答案 1 :(得分:2)
我会考虑创建一个包含3个选项的查找表范围,长度为5,6,7。
我命名了我的查找表范围"长度"。
首先像这样设置这个查找表:
5 |
=CONCATENATE(M$3,P$3,D$3,IF(ISNUMBER(VALUE(RIGHT(D3,1))),N3,""),O$3,E$3)
6 |
=CONCATENATE(M$3,IF(ISNUMBER(VALUE(RIGHT(D$3,1))),"",P$3),D$3,IF(ISNUMBER(VALUE(RIGHT(D3,1))),N$3,""),O$3,E$3)
7 |
=CONCATENATE(M$3,D$3,IF(ISNUMBER(VALUE(RIGHT(D$3,1))),N$3,""),O$3,E$3)
对于任何D3值,它检查最后一个字符是否是一个字母,如果不是,它将插入N3,否则它将其遗漏。
此外,对于任何6个字符的值,它会检查最后一个字符是否为字母,如果是,则会插入P3,否则会将其删除。
然后,您的输出公式应为:
=VLOOKUP(LEN(D3),Length,2,FALSE)
这使它简洁明了。
答案 2 :(得分:1)
这是你的公式加上增加的条件1和2:
=IF(D3=12345,CONCATENATE(M3,P3,D3,N3,O3,E3),IF(D3="12345A",CONCATENATE(M3,P3,D3,O3,E3),IF(LEN(D3)=6,CONCATENATE(M3,D3,N3,O3,E3),CONCATENATE(M3,D3,O3,E3)))
如果你想要一个更通用的版本,你可以检查D3是否是一个数字,它的长度,如果D3以字母结尾,并根据你的需要替换嵌套的ifs
答案 3 :(得分:1)
我得到了答案,这是
=IF(AND(LEN(D3)>=6,ISNUMBER(RIGHT(D3,1)*1)),M3&D3&N3&O3&E3,IF(AND(LEN(D3)<6,ISNUMBER(RIGHT(D3,1)*1)),M3&P3&D3&N3&O3&E3,IF(AND(LEN(D3)=6,ISTEXT(RIGHT(D3,1))),M3&P3&D3&O3&E3,M3&D3&O3&E3)))