Excel - 从多列中提取文本

问题描述:

我想填写一个列(“通信模式”),如果某个值存在于其他列中。Excel - 从多列中提取文本

这就是行和列现在的样子。

+------+----------------+----------------+------------+----------------+ 
| Mode | In Person  | Email   | IM   | Phone   | 
+------+----------------+----------------+------------+----------------+ 
|  | In person < 5 |    |   |    | 
+------+----------------+----------------+------------+----------------+ 
|  |    | Email 10 - 15 |   |    | 
+------+----------------+----------------+------------+----------------+ 
|  |    |    | IM < 5 min |    | 
+------+----------------+----------------+------------+----------------+ 
|  |    |    |   | Phone 10 - 15 | 
+------+----------------+----------------+------------+----------------+ 
|  |    |    | IM < 5 min |    | 
+------+----------------+----------------+------------+----------------+ 

我要的是用一个公式来得到它通过数千行的扫描和插入文本到通信塔的基础上,模式如果在“亲身”,“电子邮件”中的条目,“IM”或“电话”,然后理想地创建一个带有持续时间的单独列。

+-----------------------+-------------+-----------+-------+----+-------+ 
| Mode of Communication | Time Spent | In Person | Email | IM | Phone | 
+-----------------------+-------------+-----------+-------+----+-------+ 
| In Person    | < 5 min  |   |  | |  | 
+-----------------------+-------------+-----------+-------+----+-------+ 
| Email     | 10 - 15 min |   |  | |  | 
+-----------------------+-------------+-----------+-------+----+-------+ 
| IM     | < 5 min  |   |  | |  | 
+-----------------------+-------------+-----------+-------+----+-------+ 
| Phone     | < 5 min  |   |  | |  | 
+-----------------------+-------------+-----------+-------+----+-------+ 
| In Person    | 10 - 15 min |   |  | |  | 
+-----------------------+-------------+-----------+-------+----+-------+ 

我一直在尝试使用VLOOKUP。所有的行和列都在同一张纸上。

将这个在 '通讯模式' 的栏:

=IF(C2<>"","In Person",IF(D2<>"","Email",IF(E2<>"","IM",IF(F2<>"","Phone",""))))

在 '花费时间' 列将这个:

=IF(C2<>"",SUBSTITUTE(C2,"In person ","")&" min",IF(D2<>"",SUBSTITUTE(D2,"Email ","")&" min",IF(E2<>"",SUBSTITUTE(E2,"IM ","")&" min",IF(F2<>"",SUBSTITUTE(F2,"Phone ","")&" min",""))))

这些假定A列是模式沟通和B栏是花费的时间。

插入列A和列B

在A2之间一个新的空白栏,

=IFERROR(INDEX(C$1:F$1, MATCH("zzz", C2:F2)), TEXT(,)) 

在B2,

=IFERROR(TRIM(REPLACE(INDEX(C2:F2, MATCH("zzz", C2:F2)), 1, LEN(A2), TEXT(,))), TEXT(,)) 

向下填充。

我看到的解决方案之一是连接所有列和解析。

例如,在“通信模式”一栏中,您可以使用concatenate(inperson,email,im,phone)并解析数据。

使用此公式中模式通讯塔的:细胞A2 = TRIM(SUBSTITUTE(CONCATENATE(C2,D2,E2,F2),B2, “”))

花费时间柱:细胞B2 = TRIM(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(CONCATENATE(C2,D2,E2,F2),“In person”,“”),“Email”,“”),“IM”,“”),“Phone” “”))