数力
指南价格

客单价怎么算?

更新于 2026-09-29 · 阅读约 6 分钟

简短回答

客单价 = 销售额 ÷ 单据数,单据数要按单据号(订单号、小票号)去重。它回答的是:顾客每结一次账,平均花多少钱。

最常见的错误是在透视表里把「销售金额」的汇总方式改成「平均值」。收银系统导出的数据一行是一个商品,不是一张单,这样算出来的是每个商品行的平均金额。在下面这份超市数据里,它是 8.06 元,真实客单价是 16.57 元,差了一倍,而且不会有任何报错。

为什么透视表的「平均值」不是客单价

收银系统、电商后台导出的销售明细,通常一行是一个商品:顾客一次买了 3 样东西,这张单据就占 3 行,单据号相同。透视表的「平均值」和「计数」都是按行算的,所以:

  • 「销售金额」求平均 = 销售额 ÷ 商品行数,不是 ÷ 单据数。
  • 「单据号」计数 = 商品行数。要得到单据数,必须去重计数。

两者差多少,取决于平均每单有几行:按行平均 × 每单行数 = 客单价。这份超市数据平均每单 2.06 行,所以按行平均几乎正好是客单价的一半。每单买得越多的店,差得越多。

口径:同一份数据,几种算法

下表是同一份超市销售数据(5 个收银员,共 65,535 行、31,868 张单据)用不同算法得到的「客单价」:

算法分母结果(元)
销售额 ÷ 去重单据数 ✓31,868 张单据16.57
透视表「平均值」(= 销售额 ÷ 行数)65,535 行8.06
把 5 个收银员的客单价再平均—16.29
剔除退货单和整单作废后再算31,683 张单据16.69
数据来源:数力示例数据「超市销售示例数据」,2025-10-18 至 2026-02-28。
  • 各人的客单价不能再平均。单量少的人(许丽娟只有 155 张单)和单量多的人权重一样,结果被拉偏。总客单价要用总销售额 ÷ 总单据数。
  • 退货和作废单要先定口径。这份数据里有 44 张净额为负的退货单、141 张扫了又整单取消、净额为 0 的单据。把它们剔除,客单价从 16.57 变成 16.69。差得不多,但前后对比时要用同一个口径。
  • 「商品行」也不等于「商品件数」。明细里还混着「合计分舍去」(抹零,618 行)和「积点印花」(265 行)这类不是商品的行,按行算的指标会被它们进一步稀释。

实例:按收银员看客单价

同一份数据按收银员拆开。「按行平均」是透视表求平均会给你的数字,「客单价」是正确的数字:

收银员销售额(元)商品行数单据数每单行数按行平均(错误)客单价
林悦249,513.9331,52115,3532.057.9216.25
司马婉清154,467.3621,29710,3402.067.2514.94
周慧敏105,850.8810,0444,8352.0810.5421.89
赵雅琴15,794.672,3761,1852.016.6513.33
许丽娟2,332.852971551.927.8515.05
合计527,959.6965,53531,8682.068.0616.57
数据来源:数力示例数据「超市销售示例数据」。每单行数 = 商品行数 ÷ 单据数。
数力里的「各收银员客单价」透视表:行是收银员名称,度量依次为销售额、商品行数、单据数、按行平均(错误)和客单价,合计行客单价 16.57、按行平均 8.06,与上表完全一致
在数力里对同一份文件做出的同一张表,数字与上表一致。

在 Excel 里怎么算

普通透视表没有「去重计数」,计算字段又只能对字段求和后再运算,所以不能直接写出「销售额 ÷ 去重单据数」。下面三种方法按适用范围排列。

方法一:加一列「首行标记」,再用计算字段(Windows、Mac 都能用)

  1. 1按「单据号」排序,让同一张单据的行挨在一起。收银系统导出的数据通常已经排好。
  2. 2在数据最右边加一列「首行标记」。假设单据号在 B 列,在第 2 行输入 =IF(B2<>B1,1,0) 并向下填充:每张单据的第一行是 1,其余是 0。这一列求和就是单据数。
  3. 3插入透视表:「收银员名称」拖到行,「销售金额」「首行标记」拖到值,汇总方式都是求和。
  4. 4点「数据透视表分析 → 字段、项目和集 → 计算字段」,名称填「客单价」,公式填 =销售金额/首行标记。

计算字段会先把两个字段分别求和,再相除,所以每个收银员和总计的客单价都是对的。代价是:数据一更新,就要重新排序、重新填充辅助列;忘了排序,单据数会多算。

方法二:数据模型 + DAX 度量值(仅 Windows)

  1. 1插入透视表时,勾选「将此数据添加到数据模型」。
  2. 2把「单据号」拖到值,在「值字段设置」里选「非重复计数」,这就是单据数。
  3. 3数据模型透视表不能用计算字段。要得到客单价,在字段列表里右键表名 →「添加度量值」,输入下面的公式,把「表1」换成字段列表里显示的表名。
=DIVIDE(SUM(表1[销售金额]), DISTINCTCOUNT(表1[单据号]))

这是最规范的做法,但要写 DAX。Excel for Mac 没有数据模型,这个方法在 Mac 上用不了。

方法三:只要一个总数,用公式(Excel 2021 / Microsoft 365)

=SUM(H2:H65536)/COUNTA(UNIQUE(B2:B65536))

H 列是销售金额,B 列是单据号,按你的数据调整范围。适合快速核对一个数字;要按收银员、按月拆开,还是要回到方法一或方法二。

在数力里

在数力里:客单价是一个度量,定义一次

数力的度量之间可以直接做加减乘除,去重计数就是汇总方式里的一项。所以客单价就是一个度量:求和(销售金额) ÷ 去重计数(单据号),不用辅助列,不用排序,也不用写 DAX。

从导入示例数据,到建好「客单价」度量、按收银员拆开对比(录屏 · 57 秒)
  1. 1新建分析,把销售明细 CSV 或 Excel 文件拖进窗口,确认导入。
  2. 2点「度量值」旁边的 +,度量名称填「客单价」,切到「表达式」:左操作数选「求和」和「销售金额」,运算符选 ÷,右操作数选「去重计数」和「单据号」,保存。
  3. 3把「收银员名称」拖到行,「客单价」拖到度量。行换成门店、日期或别的维度,客单价照样是对的,合计行也是。
  4. 4同一份分析里的其他卡片都能直接用这个度量;改一次定义,所有卡片一起更新。

对数力AI 说

「按收银员看客单价,客单价 = 销售金额合计 ÷ 去重后的单据号数量」

数力的「编辑度量」对话框:度量名称为客单价,表达式模式下,左操作数是求和 销售金额,运算符选中 ÷,右操作数是去重计数 单据号
客单价 = 求和(销售金额) ÷ 去重计数(单据号),在数力里是一个度量。
免费下载数力Windows / macOS · 数力AI 免费使用,无需注册

常见问题

客单价和件单价、连带率是什么关系?
客单价 = 件单价 × 连带率。件单价是平均每件商品卖多少钱,连带率是平均每单买几件。客单价低,先看是买得少(连带率低)还是买得便宜(件单价低),改进的方向不一样。
电商店铺的客单价,是按订单算还是按买家算?
两种都有,要先看口径。按订单算是销售额 ÷ 订单数;生意参谋里的客单价是支付金额 ÷ 支付买家数,一个买家下两单只算一次。做法相同,只是去重的列从订单号换成买家 ID。
退货单要不要算进客单价?
没有统一规定,关键是前后一致。常见做法是只统计净额大于 0 的单据,退货单和整单作废的单都不计入单据数。这份超市数据里,这样算的客单价是 16.69 元,全部计入是 16.57 元。
为什么按收银员算的客单价,平均后和总客单价对不上?
因为每个人的单量不同,简单平均会让单量少的人和单量多的人权重一样。这份数据 5 个收银员的客单价简单平均是 16.29 元,总客单价是 16.57 元。总数永远用总销售额 ÷ 总单据数。
WPS 表格能算客单价吗?
能。用上面方法一的思路:加一列首行标记,在 WPS 的数据透视表里插入计算字段「销售金额 / 首行标记」。

现在下载,下份报告交给数力AI

数力AI 免费体验,无需注册

数力是电脑端应用,请在 Windows 或 Mac 上安装

Windows

推荐

Windows 10 / 11(64 位)

下载 .exe

或 下载免安装版 .zip (解压即用)

下载已开始 · 首次打开需 2 步

下载完成后,双击运行安装程序。数力 还在申请微软的软件签名,在那之前 Windows 会把它当作「无法识别的应用」拦一下 —— 这是正常的,按下面两步放行即可,只需一次。(若浏览器提示文件不常下载,选「保留」。)

  1. 1

    点左上角的「更多信息」。

    「Windows 已保护你的电脑」提示,箭头指向「更多信息」
  2. 2

    点「仍要运行」。以后就能直接打开了。

    展开后的提示,箭头指向「仍要运行」按钮

macOS

Apple 芯片(M1 及以上)· macOS 11 或更高

下载 .dmg

下载已开始 · 安装只需 3 步

下载完成后,打开 .dmg 文件,把 数力 拖进「应用程序」,再双击打开。

  1. 1

    首次打开会被拦下 —— 请选择 完成。

    macOS 提示未打开数力,箭头指向「完成」按钮
  2. 2

    打开「系统设置 → 隐私与安全性」,滑动到底部,点「仍要打开」。

    系统设置的隐私与安全性页面,底部有「仍要打开」按钮
  3. 3

    再次确认,点「仍要打开」,按系统提示进行许可。以后就能直接打开了。

    确认对话框,箭头指向「仍要打开」按钮
提示「已损坏」?

打开「终端」粘贴执行:

xattr -dr com.apple.quarantine /Applications/数力.app

下载即表示您已阅读并同意 《服务条款》 与 《隐私政策》。