我正在为项目创建产品解码器。
让我们说,我们的产品可以包含“ ABCDE”之类的代码或“ BCDEF”之类的代码。
ABCDE有一个数据表,我使用它来通过查找对其进行解码。例如,AB可以解码为“土豆”,而CDE可以解码为“芯片”。因此,与AB的任何组合都可以是“其他”。
BCDER,BC可以解码为“ Veggie”,因此DER可以编码为“ Chip”。
我还使用1 /搜索方法来放置解码位置。示例= IFERROR(LOOKUP(2,1 / SEARCH($ E $ 19:$ E $ 23,N18),$ E $ 19:$ E $ 23),“”)
我使用= S2&“”&T2&“”&U2&“”&V2
连接所有解码问题是...如果我们要传入大量产品代码,我想将其解码成一个单独的列...如果产品以“ A”开头,我如何告诉excel将数据表用于ABCDE “,否则,请使用产品以“ B”开头时与BCDER相关的数据表。
编辑1:
Here is my table, right side is where i look up the Part Number column N"
正如您在“ W”列上看到的,我将日期连接为从O〜V列查找。 O列功能:= IFERROR(LOOKUP(2,1 / SEARCH($ C $ 1:$ C $ 7,N2),$ C $ 1:$ C $ 7),“”)
在N列上,我分为两个部分。一种以M开头,另一种以K开头,这很标准。
Image two is me trying to use the IF Left but, it doesn't really work = IF(LEFT(AA4,10)=“ M”,W2,W18)
因此,如果零件以“ M *”开头,反之亦然,我如何告诉我的excel页面使用表A1:A12?
让我知道这是否令人困惑,我会尽力清除问题。
答案 0 :(得分:1)
首先,可能的更正
我认为此功能不能提供您所说的功能:
= IFERROR(LOOKUP(2,1/SEARCH($E$19:$E$23,N18),$E$19:$E$23), "")
您可能的意思是:
= IFERROR( LOOKUP( 2, 1/SEARCH( $E$19:$E$23, N18 ), $F$19:$F$23 ), "" )
因为您要查找E列中的值并返回F列中的值。如果不正确,请跳过此答案的其余部分。
现在解决方案
如果零件号以不同的字母开头,则您要尝试更改查找数组。因此,@ BigBen提到的IF( LEFT(
组合应该用于修改查找数组。我认为它看起来像这样:
= IFERROR( LOOKUP( 2
,1/SEARCH( IF( LEFT( AA4, 1 ) = "M"
,$C$2:$C$12
,$C$19:$C$23 )
,N2 )
,IF( LEFT( AA4, 1 ) = "M"
,$D$2:$D$12
,$D$19:$D$23 )
)
,"")