Excel在公式

时间:2016-09-29 07:03:48

标签: excel excel-formula

我相信所写的条件会很长,而且我写这篇长篇文章并不是很好 我使用了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

4 个答案:

答案 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)

这使它简洁明了。

enter image description here

答案 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)))