【问题标题】:Matching multiple columns and assign codes匹配多个列并分配代码
【发布时间】:2017-05-23 18:17:03
【问题描述】:

我需要 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列的所有唯一值。I E列,我想要唯一值的代码基于它们在列类型中的出现以及出现的次数。 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 中使用带有 MATCH、AND 和 NOT 条件的嵌套 if,但没有任何结果。我有大量数据要处理,因此无法手动完成。

请帮我解决这个问题。

提前谢谢你。

阿沙拉他

【问题讨论】:

  • 您最近对公式的尝试是什么样的?这应该可以通过 MATCH、IF 和 AND 公式实现。
  • 我可以使用公式 =COUNTIF($AC$2:$AI$74,AQ2) 获得它们的出现次数,还可以使用公式 =IF(ISERROR(MATCH(A2, $D$1:$D$45,0)),"",A2),但无法在列之间进行多重匹配并分配代码。

标签: excel excel-formula excel-2010


【解决方案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","")))

根据需要向下拖动/复制并根据您的数据更改范围。

参考图片

【讨论】:

  • 比我的少 425 个字符 :)
【解决方案2】:

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

=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","")))))))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-05
    • 1970-01-01
    • 2016-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多