Excel在公式中添加更多条件

Excel在公式中添加更多条件,excel,excel-formula,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,那么(我已经完成的当前公式) 如果D变量更改为123456A(else),则结果将为31123456_001 在公式

我相信写的条件会很长,我写这个长公式不是很好 我用过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,那么(我已经完成的当前公式)

如果D变量更改为123456A(else),则结果将为31123456_001 在公式中,我显示为无连接(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列字段12345A的数据,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

由于我不能完全理解所有的条件和结果,下面是一个示例,说明您的公式的外观:

    =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

如果您在
条件=>结果
列表中给出所有示例,我很乐意提供进一步帮助。

这是您的公式加上添加的条件1和2:

=IF(D3=12345,串联(M3,P3,D3,N3,O3,E3),IF(D3=“12345A”,串联(M3,P3,D3,O3,E3),IF(LEN(D3)=6,串联(M3,D3,N3,O3,E3),串联(M3,D3,O3,E3))


如果你想要一个更通用的版本,你可以检查D3是否是一个数字,它的长度,如果D3以字母结尾,并根据你的需要替换嵌套的ifs

我将考虑创建一个具有3个选项的查找表范围,长度为5,6,7

我将查找表范围命名为“长度”

首先按如下方式设置此查找表:

5|

6|

7|

对于任何D3值,它都会检查最后一个字符是否为字母,如果不是,则会插入N3,否则会将其删除

此外,对于任何6个字符的值,它会检查最后一个字符是否是字母,如果是,它会插入P3,否则会将其删除

那么,您的输出公式应该是:

=VLOOKUP(LEN(D3),Length,2,FALSE)
这使得它干净简单

我得到了我的答案,是

=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)))

=IF(AND(LEN(D3)>=6,ISNUMBER(RIGHT(D3,1)*1)),M3&D3&N3&O3&E3,IF(AND(LEN(D3))这些新条件的优先顺序是什么?例如,它们是属于已经存在的公式周围还是其中的某个地方?是的,它们必须添加到现有的公式中。我正在尝试你的公式,稍后会让你知道。嘿,大卫,如何检查D3以字母结尾,同时检查所有长度?你能给我一些指导吗ust再次修改了我的问题,希望你能理解。我理解了,但结果不在公式中,所以你只需要按照下面的公式添加这些内容。是的,这与我需要的内容非常相似,但问题是我将如何编写这部分,LEN=6,last is character,或者任何重写所有公式的建议?=如果(ISNUMBER(右(D3,1)*1)、M3和D3、N3、O3和E3、M3和D3、O3和E3)它与我上面写的公式非常相似,但它不满足条件3和4,因为我不能用这个公式连接p列中的0。是的,我可以这样做,这确实是一个很好的建议,但我有一个数据池,这会导致很多混乱。我更喜欢一个公式中的所有条件。
=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)
=CONCATENATE(M$3,D$3,IF(ISNUMBER(VALUE(RIGHT(D$3,1))),N$3,""),O$3,E$3)
=VLOOKUP(LEN(D3),Length,2,FALSE)
=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)))