【问题标题】:Formula to add text based on values of two other cells根据其他两个单元格的值添加文本的公式
【发布时间】:2015-05-14 03:04:11
【问题描述】:

我有一个需要微调的大型电子表格。 A 列包含从 1 到 4000 的数字,按顺序列出。 B 列包含一些相同的数字,但跳过了许多数字(例如:1、5、6、7、11、12、25...);这些数字相对于 A 列中的数字没有“间隔”。C 列包含与 B 列值相关的文本条目。我需要在 D 列中添加一个公式,该公式将评估 A1 中的数字(例如)是否与 B1 中的数字匹配,如果匹配,则应将 C1 的值放在 D1 中。同样,如果 A2 与 B2 匹配,则 C2 的值应放在 D1 中。

我尝试编写一些与此类似的公式,但是当您必须考虑每个单元格组合时,它们变得太大了:=IF(A1=E1,F1)。如果我可以让 B 列单元格“将自己隔开”,以便它们与 A 列中的单元格匹配,那将让我到达我需要的位置。当然,C 列数据值需要与 B 列值隔开时“跟随”。

关于如何实现这一点的任何想法?

【问题讨论】:

  • 您真的应该编写一个迭代器,将其应用于所有列。

标签: excel excel-formula


【解决方案1】:

如果数据是这样的:

A   B   C
---------------
1   1   Red
2   5   Blue
3   6   Red
4   7   Yellow
5   11  Black
6   12  Green
7   25  Yellow
8       
9       
10      
11      
12      
13      
14      
15      
16      
17      
18      
19      
20      
21      
22      
23      
24      
25  

而想要的结果是这样的:

A   B   C       D
--------------------
1   1   Red     Red
2   5   Blue    
3   6   Red
4   7   Yellow
5   11  Black   Blue
6   12  Green   Red
7   25  Yellow  Yellow
8           
9           
10          
11              Black
12              Green
13          
14          
15          
16          
17          
18          
19          
20          
21          
22          
23          
24          
25              Yellow

我们可以使用基于 INDEX-MATCH 的公式从 D1 开始并自动填充来完成此操作:

=IFERROR(INDEX(C:C,MATCH(A1,B:B,0)),"")

看起来像这样:

A   B   C           D
-----------------------------------------------------------
1   1   Red         =IFERROR(INDEX(C:C,MATCH(A1,B:B,0)),"")
2   5   Blue        =IFERROR(INDEX(C:C,MATCH(A2,B:B,0)),"")
3   6   Red         =IFERROR(INDEX(C:C,MATCH(A3,B:B,0)),"")
4   7   Yellow      =IFERROR(INDEX(C:C,MATCH(A4,B:B,0)),"")
5   11  Black       =IFERROR(INDEX(C:C,MATCH(A5,B:B,0)),"")
6   12  Green       =IFERROR(INDEX(C:C,MATCH(A6,B:B,0)),"")
7   25  Yellow      =IFERROR(INDEX(C:C,MATCH(A7,B:B,0)),"")
8                   =IFERROR(INDEX(C:C,MATCH(A8,B:B,0)),"")
9                   =IFERROR(INDEX(C:C,MATCH(A9,B:B,0)),"")
10                  =IFERROR(INDEX(C:C,MATCH(A10,B:B,0)),"")
11                  =IFERROR(INDEX(C:C,MATCH(A11,B:B,0)),"")
12                  =IFERROR(INDEX(C:C,MATCH(A12,B:B,0)),"")
13                  =IFERROR(INDEX(C:C,MATCH(A13,B:B,0)),"")
14                  =IFERROR(INDEX(C:C,MATCH(A14,B:B,0)),"")
15                  =IFERROR(INDEX(C:C,MATCH(A15,B:B,0)),"")
16                  =IFERROR(INDEX(C:C,MATCH(A16,B:B,0)),"")
17                  =IFERROR(INDEX(C:C,MATCH(A17,B:B,0)),"")
18                  =IFERROR(INDEX(C:C,MATCH(A18,B:B,0)),"")
19                  =IFERROR(INDEX(C:C,MATCH(A19,B:B,0)),"")
20                  =IFERROR(INDEX(C:C,MATCH(A20,B:B,0)),"")
21                  =IFERROR(INDEX(C:C,MATCH(A21,B:B,0)),"")
22                  =IFERROR(INDEX(C:C,MATCH(A22,B:B,0)),"")
23                  =IFERROR(INDEX(C:C,MATCH(A23,B:B,0)),"")
24                  =IFERROR(INDEX(C:C,MATCH(A24,B:B,0)),"")
25                  =IFERROR(INDEX(C:C,MATCH(A25,B:B,0)),"")

【讨论】:

  • Hmmmm... 我的 C 列数据有点不同:A/B/C----- 5/5/Red------ 6/8/Blue-- ---- 7/9/Red ........ 我将如何调整你的公式来弥补这一点?
  • 忽略我在 C 中的数据,那只是虚拟测试数据。它应该仍然有效
猜你喜欢
  • 2017-05-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-10
  • 1970-01-01
相关资源
最近更新 更多