中人网

标题: excel排班转换 [打印本页]

作者: o圆o    时间: 2012-7-28 11:22
标题: excel排班转换
各位同仁,想麻烦请教以下问题:
" K: @  F1 Q8 J) W  n; x% E因我司排班由系统批量导出,现需排版成签收表形式。
* f2 Y3 h. M  y/ z2 x如何将sheet1的数据,根据函数自动转换到sheet2,ABCD表示员工姓名,想要的结果如sheet2 A列所示,但本人设的公式无法达到该有的效果。% z' c1 e+ ^3 k* z/ O7 ~
现求助,谢谢!
作者: 竹轩    时间: 2012-7-28 12:05
你可以用下这个函数; v/ ~0 R  V2 |6 s8 A
VLOOKUP.在表格或数值数组的首列查找指定的数值,并由此返回表格或数组中该数值所在行中指定列处的数值。. i: B% B/ [$ o1 U) o' Z
VLOOKUP(查找值,区域,列序号,逻辑值)
! T; n/ R: z; e* z, O0 X+ X- p% P6 F“查找值”:为需要在数组第一列中查找的数值,它可以是数值、引用或文字符串。 % |" j/ n8 l& X; l, m, d/ |
“区域”:数组所在的区域,如“B2:E10”,也可以使用对区域或区域名称的引用,例如数据库或数据清单。
3 ]" l# _" f' x, k6 f1 T4 \“列序号”:即希望区域(数组)中待返回的匹配值的列序号,为1时,返回第一列中的数值,为2时,返回第二列中的数值,以此类推;若列序号小于1,函数VLOOKUP 返回错误值 #VALUE!;如果大于区域的列数,函数VLOOKUP返回错误值 #REF!。 # n: r% Y& R' N4 c- j
“逻辑值”:为TRUE或FALSE。它指明函数 VLOOKUP 返回时是精确匹配还是近似匹配。如果为 TRUE 或省略,则返回近似匹配值,也就是说,如果找不到精确匹配值,则返回小于“查找值”的最大数值;如果“逻辑值”为FALSE,函数 VLOOKUP 将返回精确匹配值。如果找不到,则返回错误值 #N/A。如果“查找值”为文本时,“逻辑值”一般应为 FALSE 。另外:
/ _! F, U7 Y1 W, B: ^·如果“查找值”小于“区域”第一列中的最小数值,函数 VLOOKUP 返回错误值 #N/A。
1 v# e# k& `3 U: Q; f" q) O/ y·如果函数 VLOOKUP 找不到“查找值” 且“逻辑值”为 FALSE,函数 VLOOKUP 返回错误值 #N/A。
作者: 木子娃娃    时间: 2012-7-28 12:11
没看董
作者: 和闲    时间: 2012-7-29 01:00
本帖最后由 和闲 于 2012-7-29 01:03 编辑
+ m- G- F9 @6 L' |9 L( k
) U. ^0 \* \# B/ k) K5 F' _不知道怎么回事,我重新设计个表格按你这个公式来说都是可以的。" Q6 q( j+ i1 `/ d
; h9 I! c* U+ G2 ~( S% b1 s, o
不过我找到了另外一种方法,用数据透视表。

( `1 e' M, A& ~
第一步:将表格中的班次ID文本相同的内容用相同序号代替[attach]294792[/attach]  p- l# v' J" Z( S0 d* y
            将表格中替换成这样[attach]294793[/attach]2 N* D* x$ Z0 C% |5 Y4 ?) {

# V) A2 r8 r' R. j1 P% Z" M第二部:将表格都框住,选择插入数据透视表,按你的要求,将行标签选择为员工姓名,列标签选择为日期,讲班次ID选择为数值且数值为求和项(其实最大值最小值也可以)这样数据透视表就回自动透视成:[attach]294794[/attach]
) d  s- [2 f! ]4 g8 H3 C. B0 I第三部,将整个数据透视表选择性粘贴只保留数值复制到新表中,然后将里面的班次ID序号按第一步中那样替换成回文字就可以了。
2 G7 g  M, N5 |* a4 h说明:这个方法关键在于数据透视表不能对文本内容进行透视输出,所以将需要透视的内容即你的班次ID相同的替换成1个序号,进行编号,这样透视表就能生成,最后再将这些序号替换回文本就行了。
5 s$ B3 d! L, M: P3 o: S- Q/ |5 n" }9 U( D. P  {( G; r" `, m* J- K
其实,还是你原表中的IF+VLOOKUP公式最方便,但是不知道为什么只能在第一列公式有效,更改到第二列就无效了,我看了下 是两张表员工姓名不一致IF公式判断为FALSE的,我将表1的员工姓名复制到表二中并该为常规格式也没用,搞不懂了。。。。。。。只能舍近求远的用数据透视表了。   如果还有问题 可以加我Q34282939讨论讨论
) x2 ?$ y& ~1 M0 U3 y

8 {. M, D& l) ]. ^) e% q8 d1 w; `6 c6 ?+ Y4 _3 T! i* y
5 Q' U# {2 A  R" j# I8 @0 V

作者: o圆o    时间: 2012-7-29 22:14
和闲 发表于 2012-7-29 01:00 4 d5 K0 U* L( q7 f9 `
不知道怎么回事,我重新设计个表格按你这个公式来说都是可以的。' [; m" b7 R7 P4 r
% y+ ], `- V8 Q# N& M
不过我找到了另外一种方法, ...

' J, Y- X4 u7 X# W1 y谢谢!因数据涉及较多,恐这种方法还是工作量有点大。
作者: 和闲    时间: 2012-7-30 10:03
本帖最后由 和闲 于 2012-7-30 10:31 编辑 % X# k4 Q1 e" V8 j, P7 b8 G5 C. s/ w
o圆o 发表于 2012-7-29 22:14
' @2 Q$ {- `5 n4 W& S/ V谢谢!因数据涉及较多,恐这种方法还是工作量有点大。
6 p( {5 p1 ?1 }, d1 h
哈哈 研究好了 VLOOKup双条件输出$ G3 k( N6 D- m$ W, Q
用这个公式=VLOOKUP($C$1&A3,IF({1,0},Sheet1!A:A&Sheet1!B:B,Sheet1!D: D),2,)   
! `3 h4 u( w- e9 O. t' j! ^  z7 t7 q, ~% V$ L
因为帖子中一打冒号D就变成 了,我冒号后加了空格,记得删除空格
" X1 p$ b. V2 ]记得公式输完后不能直接回车Shift+Ctrl+Enter 三个键一起按下去(重要)。
, @# i1 Z7 u6 f6 f" ?9 P8 B1 C; u
! @/ h$ u2 l% b) T8 x$ A. D5 s他的意思是  当sheet2中 $c$1(职工名称固定死了,换列的时候记得更换)和A3 分别与shee1中的A列和B列相同的时候,输出sheet1中D列的内容(即你需要的班次ID),另外SHEE1!A:A等几个范围选取的是列,换个人的时候公式会变化,记得更正,或者改为用shee1!$a$1:shee1!$a$1000000等 固定单元格范围  i; S% Z8 Y: X2 l

: l& S/ ?8 O. |; E0 P2 u切记:公式输完后不要回车,三个键同时按下去!
) Q$ p9 e  |; U
) T! ?3 D& O. X3 n" x6 U9 ?
作者: o圆o    时间: 2012-7-30 19:34
和闲 发表于 2012-7-30 10:03 5 s! N# `9 a' `" l+ T
哈哈 研究好了 VLOOKup双条件输出
2 a; ~4 N# [9 Y: g( E/ C+ f. ^用这个公式=VLOOKUP($C$1&A3,IF({1,0},Sheet1!A:A&Sheet1!B:B,Sheet1!D: ...
% H4 H) D$ v* d1 W
太牛了,万分感谢!
作者: pcxsunshine    时间: 2012-8-1 10:29
VLOOKUP函数的功能好强大
作者: sallyzj    时间: 2012-8-1 12:03
好厉害啊 EXCEL高手啊
作者: 和闲    时间: 2012-8-1 19:39
pcxsunshine 发表于 2012-8-1 10:29
8 z" k. l" o% B- Q- eVLOOKUP函数的功能好强大
0 l) Z& y; v$ b+ M% B! O
所以要好好学学的呢  确实用处很大
作者: 和闲    时间: 2012-8-1 19:40
sallyzj 发表于 2012-8-1 12:03 % t. k' y- I+ r( h% y3 O
好厉害啊 EXCEL高手啊

! E+ {' n; y6 x! @3 L(*^__^*) 嘻嘻
作者: liusidou    时间: 2012-9-26 10:56
好厉害啊 EXCEL高手
作者: ashamaob    时间: 2012-10-27 13:10
学习ing




欢迎光临 中人网 (http://bbs.chinahrd.net/) Powered by Discuz! X2.5