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” “),“电话”,””))