You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Excel循环与IF语句公式咨询:首呼对应次呼原因查询

获取客户首次呼叫后的第二次呼叫原因(Excel公式方案)

我刚好处理过类似的客户旅程分析需求,结合你的场景,我给你分两种Excel版本的方案,先假设你的数据结构是这样的(方便对应公式):

  • A列:客户ID(比如ABC)
  • B列:呼叫时间(必须是可排序的日期/时间格式,不然没法判断先后)
  • C列:呼叫原因(比如Billing query、Technical query)

第一步:给每个客户的呼叫按时间排序并标记序号

首先得确保同一客户的呼叫是按时间先后排列的:

  1. 选中所有数据区域(包括表头),点击「数据」选项卡的「排序」,先按「客户ID」升序,再按「呼叫时间」升序排序。
  2. 新增一列(比如D列,命名为「呼叫序号」),在D2单元格输入公式:
    =COUNTIFS($A$2:A2,A2)
    下拉填充到所有行,这样每个客户的第一次呼叫会被标记为1,第二次为2,以此类推。

方案1:Excel 365/2021(支持动态数组,操作更简单)

在首次呼叫的行(也就是D列值为1的行,比如E2单元格)输入以下公式,下拉即可批量获取对应第二次呼叫的原因:

=XLOOKUP(1,($A$2:$A$100=A2)*($D$2:$D$100=2),$C$2:$C$100,"无第二次呼叫")

公式解释:

  • $A$2:$A$100=A2:匹配当前行的同一客户
  • $D$2:$D$100=2:定位该客户的第二次呼叫
  • XLOOKUP会找到同时满足两个条件的行,返回对应的C列呼叫原因;如果客户只有一次呼叫,就返回「无第二次呼叫」

方案2:旧版Excel(无XLOOKUP,用数组公式)

如果你的Excel版本不支持XLOOKUP(比如2019及更早),可以用INDEX+MATCH的组合公式,同样在E2单元格输入:

=IFERROR(INDEX($C$2:$C$100,MATCH(1,($A$2:$A$100=A2)*($D$2:$D$100=2),0)),"无第二次呼叫")

注意:

输入完公式后,不要直接按回车,需要按Ctrl+Shift+Enter作为数组公式确认,然后下拉填充。


举个实际例子

假设你的数据是这样的:

客户ID呼叫时间呼叫原因呼叫序号第二次呼叫原因(公式结果)
ABC2024/1/1Billing query1Technical query
ABC2024/1/3Technical query2(无需填充,仅首次呼叫行需要结果)
DEF2024/1/2Technical query1Billing query
DEF2024/1/5Billing query2(无需填充)
GHI2024/1/4Billing query1无第二次呼叫

这样就能精准提取每个客户首次呼叫对应的第二次呼叫原因了。

额外提示

  • 如果同一客户有多个相同时间的呼叫,COUNTIFS生成的序号会重复,这种情况可以把D列的公式改成=SUMPRODUCT(($A$2:A2=A2)*($B$2:B2<=B2)),确保按时间严格排序标记序号。
  • 公式里的$A$2:$A$100可以根据你的实际数据范围调整,比如如果数据到第200行,就改成$A$2:$A$200。

内容的提问来源于stack exchange,提问作者Annalise Azzopardi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:45:19