Excel – 从多列中提取文本

我试图填写一个列(“沟通模式”),如果一个值存在于其他列。

这就是现在行和列的显示方式。

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

我想要的是使用一个公式,让它扫描成千上万的行,并插入文本到通讯模式列的基础上,如果有“人”,“电子邮件”,“IM”或“电话“,然后理想地创build一个单独的列与持续时间。

 +-----------------------+-------------+-----------+-------+----+-------+ | 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(,)) 

填好。

我看到的解决scheme之一是连接所有列和parsing。

例如,在“通信模式”栏中,可以使用连接(inperson,email,im,phone),然后parsing数据。

单元格A2 = TRIM(SUBSTITUTE(CONCATENATE(C2,D2,E2,F2),B2,“”))

时间消耗的列:单元格B2 = TRIM(替代scheme(替代scheme(替代scheme(替代scheme(CONCATENATE(C2,D2,E2,F2),“亲自”,“”),“Email”,“”),“IM” “),“电话”,””))