姓名 工号 时间 工资 罚金 证件费 伙食费 所得税 工资(元)
A 04589 2年 6618 50 20 120 1323.6 5104
B 04590 9年 6373 50   120 1274.6 4928
C 04591 6年 2853 50 20 120 570.6 2092
D 04592 5年 3848     120 769.6 2958
E 04593 5年 5398 50 20 120 1079.6 4128
F 04594 9年 6263 50 20 120 1252.6 4820
G 04595 6年 3501 50   120 700.2 2630
H 04596 6年 6003   20 120 1200.6 4662
I 04597 3年 4216   20 120 843.2 3232
J 04598 2年 4553     120 910.6 3522
K 04599 7年 3260 50 20 120 652 2418
L 04600 7年 5170 50 20 120 1034 3946
 
要得到的效果
 
姓名 工号 时间 工资 罚金 证件费 伙食费 所得税 工资(元)
A 04589 6年 6244 50 20 120 1248.8 4805
姓名 工号 时间 工资 罚金 证件费 伙食费 所得税 工资(元)
B 04590 2年 2427 50 0 120 485.4 1771
 
CHOOSE(MOD(ROW(),3)+1,"",单行表头工资明细!A$1,OFFSET(单行表头工资明细!A$1,ROW()/3+1,))
 
 
CHOOSE(index_num,value1,value2,...)
Index_num   指定所选定的值参数。Index_num 必须为 1 到 254 之间的数字,或者是包含数字 1 到 254 的公式或单元格引用。
  • 如果 index_num 为 1,函数 CHOOSE 返回 value1;如果为 2,函数 CHOOSE 返回 value2,以此类推。
  • 如果 index_num 小于 1 或大于列表中最后一个值的序号,函数 CHOOSE 返回错误值 #VALUE!。
  • 如果 index_num 为小数,则在使用前将被截尾取整。
 MOD(ROW(),3)+1 如果在3的倍数行(3,6,9,...),MOD(3,3)=0+1=1,取“” 空行
 
 MOD(ROW(),3)+1 如果在2的倍数行(2,5,8,...),MOD(2,3)=2+1=3,取OFFSET(单行表头工资明细!A$1,ROW()/3+1=偏移$A$1+1=$A$2=A
 
 MOD(ROW(),3)+1 如果在1的倍数行(1,4,7,...),MOD(1,3)=1+1=2,单行表头工资明细!A$1=“姓名”