匹配多个列并分配代码

时间:2017-05-23 09:14:33

标签: excel excel-formula excel-2010

我需要帮助Excel匹配多个列(此处为3列),并为值分配代码(如果它们是唯一的或重复或一式三份)以及它们所在的列。为了更清楚,我提供了一个示例以及代码,如下所示:

| A   | B   | C   | D   | E   | 
|   11|   22|   22|   11|     | 
|   22|   44|   11|   22|     | 
|   33|   77|   33|   33|     | 
|   44|   99|   88|   44|     | 
|   55|   33|   99|   55|     | 
|   66|     |     |   66|     | 
|     |     |     |   77|     |      
|     |     |     |   88|     | 
|     |     |     |   99|     | 

数据的整体描述是A,B和C列包含数据,而D列包含A,B和C列的所有唯一值.IE列,我想要唯一值的代码基于它们在列的类型中的出现以及发生的次数。 If条件和代码如下:

如果所有三列A,B和C中都存在值,则编码" T"
如果值存在于两列A和B中,则编码" U"
如果值存在于两列A和C中,则编码" V"
如果值存在于两列B和C中,则编码" W"
如果值仅存在于A中,则代码为" X"
如果值仅存在于B中,则代码为" Y"
如果值仅存在于C中,则代码为" Z"

因此,代码应在E列中,预期输出应如下所示:

| A   | B   | C   | D   | E   | 
|   11|   22|   22|   11|    V| 
|   22|   44|   11|   22|    T| 
|   33|   77|   33|   33|    T| 
|   44|   99|   88|   44|    U| 
|   55|   33|   99|   55|    X| 
|   66|     |     |   66|    X| 
|     |     |     |   77|    Y|     
|     |     |     |   88|    Z| 
|     |     |     |   99|    W| 

我尝试在Excel-2010中使用嵌套if与MATCH,AND和NOT条件,但没有任何结果。我有大量的数据需要解决,因此不能手动完成。

请帮我解决这个问题。

提前感谢你。

Ashalatha

2 个答案:

答案 0 :(得分:1)

很长的公式。我确信必须有一种更简单的方法:

=IF(AND(IFERROR(MATCH(D1,A:A,0),0)<>0,IFERROR(MATCH(D1,B:B,0),0)<>0,IFERROR(MATCH(D1,C:C,0),0)<>0)=TRUE,"T",IF(AND(IFERROR(MATCH(D1,A:A,0),0)<>0,IFERROR(MATCH(D1,B:B,0),0)<>0,IFERROR(MATCH(D1,C:C,0),0)=0)=TRUE,"U",IF(AND(IFERROR(MATCH(D1,A:A,0),0)<>0,IFERROR(MATCH(D1,B:B,0),0)<=0,IFERROR(MATCH(D1,C:C,0),0)<>0)=TRUE,"V",IF(AND(IFERROR(MATCH(D1,A:A,0),0)=0,IFERROR(MATCH(D1,B:B,0),0)<>0,IFERROR(MATCH(D1,C:C,0),0)<>0)=TRUE,"W",IF(AND(IFERROR(MATCH(D1,A:A,0),0)<>0,IFERROR(MATCH(D1,B:B,0),0)=0,IFERROR(MATCH(D1,C:C,0),0)=0)=TRUE,"X",IF(AND(IFERROR(MATCH(D1,A:A,0),0)=0,IFERROR(MATCH(D1,B:B,0),0)<>0,IFERROR(MATCH(D1,C:C,0),0)=0)=TRUE,"Y",IF(AND(IFERROR(MATCH(D1,A:A,0),0)=0,IFERROR(MATCH(D1,B:B,0),0)=0,IFERROR(MATCH(D1,C:C,0),0)<>0)=TRUE,"Z","")))))))

答案 1 :(得分:1)

另一个很长的公式:

=IF(ISNUMBER(MATCH(D1,$A$1:$A$10,0))=TRUE,IF(ISNUMBER(MATCH(D1,$B$1:$B$10,0))=TRUE,IF(ISNUMBER(MATCH(D1,$C$1:$C$10,0))=TRUE,"T","U"),IF(ISNUMBER(MATCH(D1,$C$1:$C$10,0))=TRUE,"V","X")),IF(ISNUMBER(MATCH(D1,$B$1:$B$10,0))=TRUE,IF(ISNUMBER(MATCH(D1,$C$1:$C$10,0))=TRUE,"W","Y"),IF(ISNUMBER(MATCH(D1,$C$1:$C$10,0))=TRUE,"Z","")))

根据需要拖放/复制,并根据您的数据更改范围。

参见图片以供参考

enter image description here