手上一张报价表,上游说整体上浮两成,你总不能一个个单元格去敲。这篇把几种批量乘法的做法按场景摆出来:只想临时看结果、想保留原始价、想直接覆盖原数,分别怎么做,改完又怎么确认没算错、没漏行。
手上一张报价表,上游说整体上浮两成,你总不能一个个单元格去敲。这篇把几种批量乘法的做法按场景摆出来:只想临时看结果、想保留原始价、想直接覆盖原数,分别怎么做,改完又怎么确认没算错、没漏行。
先把话说前面:批量乘法本身不难,难的是改完之后账还对得上。所以下面每讲一个做法,都会带上「什么情况下不适用」,你照着挑就行。
先想清楚:你要改原数还是只想看结果
很多人一上来就问哪个方法最快,其实顺序反了。先问自己一句:这个上浮后的价,是给别人看的,还是后面还要在这份表上继续算的?答案不同,做法完全不一样。
- 只是汇报时展示上浮后的价,建议用公式加一列辅列,原价留着随时能对回来
- 要交给别人、后续还要在这份表上继续算,就得把数值真正落下来,辅列公式留着反而容易出错
- 涉及对外报价或结算口径,先确认这张表有没有被别人引用过,改数前留一份备份
- 如果这张表是从系统导出的、每月还会重新导一次,那这次改的只是临时结果,别在表里塞太多手工痕迹
| 你的目的 | 推荐做法 | 代价 |
|---|---|---|
| 只想看结果,原价要留 | 辅列写公式 | 多一列,交付前要记得删 |
| 直接覆盖原数,以后按新价算 | 选择性粘贴运算 | 不可逆,必须先备份 |
| 行数很多、系数以后还会变 | Power Query 自定义列 | 有学习成本,小表不划算 |
做法一:加辅列写公式,最稳也最好回退
这是大多数人应该选的第一种。思路很简单:不动原列,在右边新插一列,让每个新价都指向同一行的原价,乘完再决定要不要盖回去。
- 插辅列在原价列右侧插入一列,表头写成「上浮后」之类的名字,方便自己和同事一眼看懂。
- 写第一条公式在第一个价格单元格右侧写「=原价单元格*1.2」,回车。注意看引用的是不是同一行,别错行。
- 填充到底选中这个单元格,双击右下角填充柄,公式会自动下拉到最后一行有数据的行;如果中间有空行,手动拖更保险。
- 核对几行至少看首行、末行,再随机抽中间两三行,确认每行引用的都是自己那一行的原价。
- 落成数值确认无误后复制辅列,用选择性粘贴「值」盖回原价列,再把辅列删掉,表格就干净了。
有个小细节:如果不想让结果出现一长串小数,把公式外面套一层四舍五入函数,写成「ROUND(原价*1.2,2)」。不套的话,小数点后可能拖很长,后续求和容易出现几分钱的偏差。当然,如果你明确规定保留原始精度到最后一步再舍入,那就别套,看你们团队的结算口径。
做法二:选择性粘贴运算,不写公式直接改数
如果你确定原价不需要保留,就是想原地把整列数都乘一遍,选择性粘贴是最快的。它的本质是:把选中区域里每个数都和某个数做一次运算,结果直接写回原处。
- 先备份另存一份,文件名带上「原价」两个字。这一步不能省,因为下面这个操作不可逆。
- 造一个乘数在表格外面任意一个空白单元格里输入 1.2,然后复制这个单元格。
- 选中要乘的区域只选价格那一列的数据区,别把序号、数量、日期一起框进来,那些列不该乘。
- 选择性粘贴右键,选择性粘贴,在「运算」那一组里勾「乘」,确定。整列数就被原地替换成乘完的结果。
- 删掉乘数把刚才那个空白单元格里的 1.2 删掉,免得后面有人误以为它是数据。
什么情况下不适用?区域里有合并单元格,Excel 会直接提示无法操作;区域里混着文本型数字,运算会报错或者被跳过。还有一个容易忽略的点:如果这一列被别的表用公式引用过,你改的是数值,引用那边会跟着变,动手前最好确认一下有没有外部依赖。
做法三:数据多、要反复调系数,用 Power Query
数据量上万行,或者系数之后还会来回调——今天这一版,下周又换一个——那就别在单元格里手工折腾了。把表导进 Power Query,加一步自定义列,系数只写在一个地方,改完刷新全表更新。
- 导入时选「来自表格/区域」,先确认首行是标题、没有空列
- 添加自定义列,表达式里写原价列乘以系数,系数可以先在表外单独放一个单元格
- 改系数只改那一处,回到结果表点刷新即可,原表不用重做
- 适合每月固定按某个系数调价的场景;一次性小表绕这一圈没必要
判断标准很简单:如果这件事你一年只做一次,别学新工具;如果每个月都要来一遍、系数还变,那多花半小时搭起来是值的。系数取多少不影响操作方式,具体数值按你们自己的口径定。
改完必做的四步核对
乘法本身不会错,错的是漏行、错行和被跳过的单元格。下面这四步按顺序过一遍,基本能兜住。
- 比对总金额改前改后分别对那一列求和,理论上应等于原合计乘上你用的系数。对不上,说明有行被漏掉或者被乘了两次。
- 抽查小数字段原价是 0 或者空白的单元格,很容易被顺手乘出一个错误值,单独筛一遍看看。
- 检查文本型数字单元格左上角带绿三角、或者数字是左对齐的,多半是文本格式,参与运算会报错或被跳过,先统一转成数值再算。
- 留痕把原始版本另存一份,文件名带上「原价」字样,别在同一份文件上反复覆盖,出了事还能倒回去。
如果你手头这张表还涉及对外报价、或者要跟中转站的实际计费口径对一遍,建议顺手到站内把基准数字也核一下,避免你这边上浮完、对面口径又是另一套。
下一步不同渠道的价目口径和计费方式经常对不上,上浮系数按你们自己定,但基准数字建议去站内价格相关页面核一遍当时的数字,省得两边各算一套。→常见问题
为什么我的价格乘以1.2后变成了一长串小数?
这是浮点运算的正常结果,不是算错了。想控制显示,把公式外面套一层 ROUND(原价*1.2,2),或者在单元格格式里把小数位固定为 2 位。前者改的是实际数值,后者只改显示,对外发文件时建议用前者。
整列里既有价格又有文字和空行,一次性乘会出错吗?
会。文本单元格参与乘法会返回错误值,空白单元格乘完还是 0。稳妥做法是先筛选出数值型价格所在区域,只对这块区域做运算,或者用辅列公式配合 IFERROR 包一层,把非数值行留空。
改完发现算错了,还能退回原来的价格吗?
如果还没保存,直接按撤销;如果已经保存又没备份,就不好办了,选择性粘贴的覆盖是没法反算的。所以动手前另存一份原表是硬规矩。平时习惯用辅列公式、最后一步才转成值,出错的代价会小很多。