Excel | 工资条:100 个人,一条公式拉完
- 2026-09-22 06:19:14
点击上方蓝字关注我们吧
工资表做完只花半小时,工资条却要花一个晚上。一个人复制一遍表头、复制一遍数据、再空一行,100 个人就是 300 次重复动作,中间错一行,整份都要重来。这件事可以不用手工做。今天分享的方法很省事:在 A1 单元格输入一条公式,回车,100 个人的工资条一次全部生成。
一条公式

01.底层逻辑
公式之前,先看一件事。工资条不神秘,它就是「表头 + 这一个人的数据 + 一个空行」重复了很多遍。100 个人,就是 300 行。公式要做的事只有一件:告诉 Excel 第几行该显示表头,第几行该显示谁的工资,第几行该空着。
这种思路和之前那篇 GROUPBY 是一样的,先把每一格该是什么想清楚,再让公式去填。
这张图要确认三件事:
① 表头是不是在第 1 行。前面如果还有标题行,公式里的行号要跟着往下挪。
② 数据是不是从第 2 行开始、到第 101 行结束。中间不要有空行,有空行公式会取错人。
③ 一共几列。示例是 8 列,你的表如果多一列补贴,公式本身不用改,它自己会数。

02.一条公式(新版 Excel)
在「工资条」工作表的 A1 单元格输入下面这条公式,回车,它会自动向右向下溢出 300 行、8 列。
公式=MAKEARRAY(ROWS(工资表!A2:A101)*3,COLUMNS(工资表!A1:H1),LAMBDA(r,c,IF(MOD(r-1,3)=0,INDEX(工资表!A1:H1,1,c),IF(MOD(r-1,3)=1,INDEX(工资表!A2:A101,QUOTIENT(r-1,3)+1,c),""))))

公式解析:
ROWS(工资表!A2:A101)*3:100 个人乘 3,算出总共要 300 行。人数变了,只改这里。COLUMNS(工资表!A1:H1):源表几列,工资条就几列。以后加一列补贴,这里不用动。MAKEARRAY(行数,列数,LAMBDA(r,c,…)):先画出 300 行 8 列的空格子,再让 LAMBDA 告诉它每一格填什么。MOD(r-1,3)=0:每 3 行里的第 1 行,填表头。MOD(r-1,3)=1:第 2 行填数据。其中QUOTIENT(r-1,3)+1算出这一行该取第几个人的工资。MOD(r-1,3)=2:第 3 行空着,专门留出来给裁剪线。

03.一条公式(老版本也能做)
同样在「工资条」的 A1 输入下面这条公式,然后向右拖到 H 列,再向下拖到第 300 行。
公式=IF(MOD(ROW()-1,3)=0,工资表!A$1,IF(MOD(ROW()-1,3)=2,"",IFERROR(INDEX(工资表!$A$2:$H$101,QUOTIENT(ROW()-1,3)+1,COLUMN(A1)),"")))

公式解析:
MOD(ROW()-1,3):判断当前行是每 3 行里的第几行,逻辑和方法一完全一样。
工资表!A$1:表头。行号前面加 $ 锁住,向右拖的时候才会自动变成 B1、C1。
COLUMN(A1):向右拖一格,它自动变成 2、3、4,等于告诉公式取第几列。
IFERROR(...,""):拖过头的那几行会报错,用这个包住,多余的显示空白。
慢慢拖也不费事,因为这条公式只写一次,剩下的全是拖拽。
公式解析:
MOD(ROW()-1,3):判断当前行是每 3 行里的第几行,逻辑和方法一完全一样。工资表!A$1:表头。行号前面加$锁住,向右拖的时候才会自动变成 B1、C1。COLUMN(A1):向右拖一格,它自动变成 2、3、4,等于告诉公式取第几列。IFERROR(...,""):拖过头的那几行会报错,用这个包住,多余的显示空白。
慢慢拖也不费事,因为这条公式只写一次,剩下的全是拖拽。
温馨提示

01.MAKEARRAY 和 LAMBDA 需要新版
Microsoft 365、新版 WPS 才有。老版本请直接用方法二,它用到的 INDEX、MOD、QUOTIENT 都是老函数,从 Excel 2003 就有了。不确定自己的版本能不能用,看下面图对比一下。

02.人数变了要改区域。
从 100 人变成 120 人,把 A2:A101 改成 A2:A121,同时把公式向下多拖 60 行。区域写小了,后面的人不会出现在工资条里,而且不会报错,这种错最难发现。

03.源表不要随便插行删行
著作权风险。培训学校翻印教材、不当使用他人的课件,都有可能构成对他人著作权的侵犯。员工在工作中完成的教案、作品、课件等智力成果,其著作权的归属、使用方式都需要事先做出明确的约定。

04.那 100 个空行不要手动删
空行有两个用处:隔开每份工资条,以及给裁剪线留位置。删掉之后每份会连成一片,打印出来分不开发给谁。
最后一句
工资条算是做完了,麻烦的地方在发出去之后。总有人回头来问,我这个月为什么比上个月少了三百?
这张表建议先存下来。下个月发薪前翻出来,把区域改一下就能直接跑,不用再从头做一遍。
你们公司的工资条是打印出来剪开分发,还是直接发电子版?
THE END

