需求描述
- 订单数据表一份,需要根据【 订单号 /可能会一个订单对应多个产品】、【用户手机号/用户编号】
- 数据表结构如图
解决
-
先上方案
=IF(COUNTIFS(D:D,D2)=1,"首单",IF(COUNTIFS(A:A,A2)=COUNTIFS(D:D,D2),"首单",IF(MINIFS(C:C,D:D,D2)=C2,"首单","非首单")))
-
方案解析(假设表中数据是全部数据)
- 如果手机号出现一次,那就是肯定是首单,使用函数 COUNTIFS(D:D,D2) 计算手机号出现的次数,如果出现1次则肯定是首单,否则不是 ,IF(COUNTIFS(D:D,D2)=1,“首单”,其他操作);
- 如果手机号出现多次,则判断手机号出现的次数,根订单号出现的次数是否相同 COUNTIFS(A:A,A2)=COUNTIFS(D:D,D2),相同则是首单,否则不是 IF(COUNTIFS(A:A,A2)=COUNTIFS(D:D,D2),“首单”,其他操作)
- 如果订单号出现的次数是不相同,则直接使用函数 IF(MINIFS(C:C,D:D,D2)=C2,“首单”,“非首单”)
- 综合以上结果得出:=IF(COUNTIFS(D:D,D2)=1,“首单”,IF(COUNTIFS(A:A,A2)=COUNTIFS(D:D,D2),“首单”,IF(MINIFS(C:C,D:D,D2)=C2,“首单”,“非首单”)))
-
函数解析
- COUNTIFS(D:D,D2) 计算D2数据在D列中出现的次数
- IF(COUNTIFS(D:D,D2)=1,“首单”,其他操作) 如果D2出现的次数等于1,IF(表达式,表达式为真,表达式为假)
- MINIFS(C:C,D:D,D2) 求最小值函数,限制范围在,D列中的出现D2的值的行,最小值列是C列,即:求 D列中D2出现的行中,C列的的最小值
- IF(MINIFS(C:C,D:D,D2)=C2,“首单”,“非首单”) 得出的最小值等于当前的C2,则表示首单,否则表示非首单
-
结果
-
函数还可以追加,如果有需要可以联系我,相互探讨。
-
根据实际业务总结,如有雷同,不胜荣幸。