Excel-有没有一种方法可以告诉一个单元格根据另一个单元格的首字母使用某个功能?

时间:2020-10-07 18:52:16

标签: excel

我正在为项目创建产品解码器。

让我们说,我们的产品可以包含“ 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?

让我知道这是否令人困惑,我会尽力清除问题。

1 个答案:

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