如何标记发票编号相同但销售人员ID不同的多条记录?
标记同发票对应不同销售人员的记录方案
我来分享几个不同工具下的实操方法,帮你快速定位这类发票记录:
1. 数据库(SQL)场景
如果数据存在数据库里,用分组筛选或者窗口函数就能轻松搞定:
方法一:分组筛选法
先找出有多名销售人员的发票编号,再关联回原表拿到所有对应记录:
-- 第一步:筛选出符合条件的发票编号 WITH duplicate_invoices AS ( SELECT InvoiceNumber FROM your_table_name GROUP BY InvoiceNumber HAVING COUNT(DISTINCT SalesPersonID) > 1 ) -- 第二步:关联原表获取所有对应记录 SELECT t.* FROM your_table_name t JOIN duplicate_invoices di ON t.InvoiceNumber = di.InvoiceNumber ORDER BY t.InvoiceNumber, t.SalesPersonID;
方法二:窗口函数标记法
直接在原表添加标记列,直观看到哪些记录属于「同发票多销售」的情况:
SELECT *, COUNT(DISTINCT SalesPersonID) OVER (PARTITION BY InvoiceNumber) AS SalesPersonCount, CASE WHEN COUNT(DISTINCT SalesPersonID) OVER (PARTITION BY InvoiceNumber) > 1 THEN '是' ELSE '否' END AS IsMultiSalesPerson FROM your_table_name;
2. Excel场景
如果是Excel表格数据,用条件格式或者辅助列就能实现:
方法一:条件格式高亮
- 选中所有数据行(除表头)
- 点击「开始」→「条件格式」→「新建规则」→「使用公式确定要设置格式的单元格」
- 输入公式:
=COUNTIFS($A:$A,$A2,$B:$B,"<>"&$B2)>0(假设A列是InvoiceNumber,B列是SalesPersonID) - 设置高亮格式(比如黄色填充),确定后符合条件的记录就会被标记出来
方法二:辅助列标记
在空白列(比如C列)输入公式:=IF(COUNTIFS($A:$A,$A2,$B:$B,"<>"&$B2)>0,"多销售","单销售"),下拉填充后就能快速筛选出目标记录。
3. Python Pandas场景
处理大数据量时,用Pandas效率更高:
import pandas as pd # 读取数据(Excel或CSV都可以) df = pd.read_excel("your_data.xlsx") # 统计每个发票对应的销售人员数量 invoice_sales_count = df.groupby("InvoiceNumber")["SalesPersonID"].nunique() # 筛选出有多名销售人员的发票编号 multi_sales_invoices = invoice_sales_count[invoice_sales_count > 1].index # 获取所有对应记录并添加标记列 df["IsMultiSalesPerson"] = df["InvoiceNumber"].isin(multi_sales_invoices) result = df[df["IsMultiSalesPerson"]] # 输出结果到文件 result.to_excel("marked_invoices.xlsx", index=False)
这些方法都能帮你精准定位目标记录,后续不管是拆分佣金还是数据核对都很方便~
内容的提问来源于stack exchange,提问作者mrmcg
相关产品推荐
相关产品推荐

