基于两列创建新的唯一ID-Excel

基于两列创建新的唯一ID-Excel,excel,excel-indirect,excel-match,Excel,Excel Indirect,Excel Match,我在工作中遇到了一个问题,我们需要一个旧的SKU编号,然后用一个新的替换它。不幸的是,在某些情况下,新SKU编号取代旧SKU编号最终将成为“旧”SKU本身,并将逐步淘汰。下面是一个例子 Old Sku New SKU 06223 34162 06223 34162 06553 01925 06557 19100 06557 19100 06573 11443 06573 1

我在工作中遇到了一个问题,我们需要一个旧的SKU编号,然后用一个新的替换它。不幸的是,在某些情况下,新SKU编号取代旧SKU编号最终将成为“旧”SKU本身,并将逐步淘汰。下面是一个例子

    Old Sku   New SKU
    06223     34162
    06223     34162
    06553     01925
    06557     19100
    06557     19100
    06573     11443
    06573     11443
    51095     06223
    51095     06223
按照我需要的工作格式,我需要三个不同的SKU成为一个唯一的SKU,因此06223、34162和51095将等于一个新的SKU#12345

这就是我需要它的样子

    Old Sku New SKU Unique SKU
    06223   34162   1
    06223   34162   1
    06223   34162   1
    06553   01925   2
    06557   19100   3
    06557   19100   3
    06573   11443   4
    06573   11443   4
    51095   06223   1
    51095   06223   1
我不太熟悉间接函数,但有人告诉我可能需要使用它。我感谢所有的帮助。谢谢大家!

编辑@CallumDA这是我从您的代码中得到的

    Old SKU         New SKU         All New SKU
    00080           00080           1
    00606           24264           2
    00606           98952           3
    00644           16814           4
    00721           58008           5
    00753           01929           6

第2行和第3行在所有新sku中应有2个

将此公式放入
C2
并向下拖动

=IFERROR(VLOOKUP(IFERROR(VLOOKUP(B3,$A$1:$B1,2,0),B2),$B$1:$C1,2,0),MAX($C$1:C1)+1)
看起来是这样的:

正如我在评论中所建议的,您也可以选择一个更简单的解决方案:

=IFERROR(VLOOKUP(B2,$A$2:$B$11,2,0),B2)
它只获得最新的SKU——如下所示:(在“替代品”栏中)

更新

因为您更新了数据,所以您拥有一对多关系以及多对一关系。以下是更新的方法和公式我更改了此场景的单元格
B3
中的值,并将其拆分为两列以方便使用:

D2
中的公式为:

=VLOOKUP(INDEX($A$2:$A$11,MATCH(IFERROR(VLOOKUP(B2,$A$2:$B$11,2,0),B2),$B$2:$B$11,0)),$A$2:$B$11,2,0)
=IFERROR(VLOOKUP(D2,$D$1:$E1,2,0),MAX($E$1:E1)+1)
同样地,对于E2,它是:

=VLOOKUP(INDEX($A$2:$A$11,MATCH(IFERROR(VLOOKUP(B2,$A$2:$B$11,2,0),B2),$B$2:$B$11,0)),$A$2:$B$11,2,0)
=IFERROR(VLOOKUP(D2,$D$1:$E1,2,0),MAX($E$1:E1)+1)

您的更新数据现在如下所示:


为什么您需要第三个独特的SKU。你能用“新SKU”吗?对于最后一条记录,这将是
34162
,例如,我必须这样做,因为我需要创建一个预测模型,并且由于三个SKU是相同的产品,我需要将它们预测为同一个项目,而不是三个单独的项目。当新SKU为
0000
时,您能确认您想要什么吗?@CallumDA我忘了我把它放在那里了。请忽略这一点,因为我将删除新SKU列中0000所在的行。对不起,这是我的错mistake@CallumDA如果您查看第2行和第3行,我仍然可以从您的代码中看到这一点。两种情况下的新sku均应为2。不知道出了什么问题MSPN中的逐步淘汰MSPN阶段所有新SKU 00080 00080 1 00606 24264 2 00606 98952 3 00644 16814'