首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >匹配多列并分配代码

匹配多列并分配代码
EN

Stack Overflow用户
提问于 2017-05-23 09:14:33
回答 2查看 48关注 0票数 0

我需要Excel在匹配多个列方面的帮助(这里有3列),如果值是唯一的,或者是一式两份或一式三份的,以及它们所在的列,则将代码分配给值。为了更清楚地说明,我提供了一个例子和守则如下:

代码语言:javascript
复制
| 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.I E列的所有唯一值,我希望根据它们在列类型中的出现情况以及发生的次数来编写唯一值的代码。如果条件和代码如下:

如果A、B和C列中都有值,则代码"T“

如果值出现在A和B列中,则编码为"U“

如果值出现在A和C列中,则代码"V“

如果值出现在B和C列中,则编码"W“

如果值仅存在于A中,则代码为"X“

如果值仅存在于B中,则代码为"Y“

如果值仅存在于C中,则代码为"Z“

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

代码语言:javascript
复制
| 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 with,而不是Excel-2010中的条件,但是没有结果。我有大量的数据需要计算,因此无法手动完成。

请帮我解决这个问题。

提前感谢你。

阿沙拉塔

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-05-23 10:14:23

另一个很长的公式:

代码语言:javascript
复制
=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","")))

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

参考见图像

票数 1
EN

Stack Overflow用户

发布于 2017-05-23 10:07:31

很长的公式。我相信一定有更简单的方法:

代码语言:javascript
复制
=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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44130587

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档