首页 > 解决方案 > Vlookup 用分号分隔的多个值

问题描述

我需要帮助来对齐两列中的相同值,其中在一个单元格中有多个由分号分隔的代码。

我有一个这样的专栏:

UMLS CODE
C0443147
C0441748;C4020899
C4025900
C0085606;C3544092;C4020898

我需要将以下数据与上面的列相匹配。

UMLS CODE  TYPE    MEDDRA CODE         DEFINITION
C0443147    LT;PT   10014275;10014407   EEG;Electroencephalogram
C4020899    LT;PT   10014544;10014430   EMG;Electromyogram
C3544092    OL;LT   10014828;10014449   Electronystagmography
C0013854    PT;LT   10014455;10014359   Electro-oculogram

所以匹配 UMLS CODES 列的结果必须是这样的:

UMLS CODE                  UMLS CODE  TYPE    MEDDRA CODE         DEFINITION
C0443147                   C0443147   LT;PT   10014275;10014407   EEG;Electroencephalogram
C0441748;C4020899          C4020899   LT;PT   10014544;10014430   EMG;Electromyogram
C4025900                   -------    -----   -----------------   -------------------
C0085606;C3544092;C4020898 C3544092   OL;LT   10014828;10014449   Electronystagmography

我在 excel 上尝试了以下公式,但当查找值有多个以分号分隔的值时不起作用。

=VLOOKUP($A1;$A$13819:$D$63379;COLUMN(A:A);0)

其中 $A1 是 UMLS CODE,$A$13819:$D$63379 是与 UMLS CODE 匹配的所有数据。

图片来自 UMLS 代码: 在此处输入图像描述

图片来自 UMLS 数据: 在此处输入图像描述

所需的结果,但也可以在 UMLS 代码中以分号分隔的多个值单元格中工作: 在此处输入图像描述

标签: excelexcel-formulacellvlookupmatching

解决方案


假设您的列表中有最大数量的 UMLS 代码(我假设为 3)

第 8-12 行的表格是一个中间步骤,只是为了简化,如果您愿意,可以将其放入最终函数中。

=TRIM(MID(SUBSTITUTE($A5;";";REPT(" ";LEN($A5))); (C$8)*LEN($A5)+1;LEN($A5)))

在此处输入图像描述

=IFERROR(VLOOKUP($A12;$C$2:$F$5;4;FALSE);IFERROR(VLOOKUP($B12;$C$2:$F$5;4;FALSE);VLOOKUP($C12;$C$2: $F$5;4;假)))

在此处输入图像描述

A16 列只是 = A2 等


推荐阅读