Excel 将两列关联指定给第三列
我在Excel 2010中有以下结构Excel 将两列关联指定给第三列,excel,Excel,我在Excel 2010中有以下结构 Col1 Col2 Col3 12 C.E C.E 13 D.C.E C.E 14 P.E P.E 100 A.O.H A.O.H C.E P.E ... ... Output: Col3 12 12 14 100
Col1 Col2 Col3
12 C.E C.E
13 D.C.E C.E
14 P.E P.E
100 A.O.H A.O.H
C.E
P.E
...
...
Output: Col3
12
12
14
100
12
14
...
...
也就是说Col1和Col2在逻辑上是联系在一起的,这意味着C.E的值是12,D.C.E的值是13。我想要的是,将这些关联分配给Col3,即存在C.E的地方,不管它被12替换多少次,也不管有p.E的地方,它将被14替换。
我做这件事很困难,请指导我怎么做 我认为以下公式有效:
=IF(LEN(B2)<>LEN(SUBSTITUTE(B2,"C.E",""))
,12
,IF(LEN(B2)<>LEN(SUBSTITUTE(B2,"P.E",""))
,13
,B2))
=IF(LEN(B2)LEN(替换为(B2,“C.E”),“”)
,12
,IF(LEN(B2)LEN(替换为(B2,“P.E.”)
,13
,B2))
然而,这并不使用列作为数据源,它是纯硬编码的。如果您想要一个一般性的答案,您需要澄清您的问题。如果您交换前两列,您可以使用
VLOOKUP
函数获取与特定文本相关的值,如下所示:
Col1 Col2 Col3 Col4
C.E. 12 C.E
D.C.E 13 C.E
P.E 14 P.E
A.O.H 100 A.O.H
Col4 Cell Value = VLOOKUP(Col4Cell, $Col1$FirstRow : $Col2$LastRowWithData, 2, 0)
请注意,您不能直接替换
Col3
中的值,因为这将导致循环引用-检查单元格中的值,并在同一单元格中替换 不清楚你在问什么。您能清楚地指定所需的输入和输出吗?从程序逻辑上看,不清楚为什么第2行中的Col3
不等于13
。您是否总是从Col1
中获取尽可能低的子字符串匹配?@JustinJDavies我认为很明显,他使用前两列作为一种字典。可能不需要子字符串。我现在明白你的意思了;我仍然不清楚为什么Col3
的第2行会匹配C.E(12)
而不是D.C.E(13)
你能编辑这个问题来澄清逻辑吗?C.E=总工程师D.C.E=副总工程师用户问题在发布时不清楚,我不相信这个答案会涵盖目前的一般情况。