Đảo chiều dữ liệu tự động

  • Thread starter Hugolina
  • Ngày gửi
H

Hugolina

Guest
12/11/05
37
0
0
Thành phố Hồ Chí Minh
Các anh ơi, cứu Hugolina với

Sắp tới cty em mua máy chấm công, khi đó em có thể chuyển dữ liệu thô của máy vào Excel và xử lý.


Dữ liệu thô như sau:

Mã thẻ / Ngày quét thẻ / Giờ quét thẻ

Từ dữ liệu thô này em sẽ sắp xếp lại dữ liệu được như sau: ngày và giờ làm việc sẽ được trình bày theo hàng dọc

Mã thẻ / Ngày / Giờ làm việc (Phần I)
01 1/3 8.0
01 2/3 8.0
01 3/3 8.0
... .... ....

02 1/3 8.0
02 2/3 8.0
02 3/3 8.0
... .... ....

cứ như thế cho thẻ kế tiếp.

Vấn đề là bảng lương hiện tại của công ty trình bày theo chiều ngang: (Phần 2)

Mã thẻ / Tên Nhân viên / Ngày 1/3 2/3 .......31/2
01 Nguyễn Văn A 8.0 8.0 8.0
02 Trần Văn B 8.0 8.0 8.0
.
.
100

Em muốn hỏi làm thế nào đảo chiều được dữ liệu tự động -> từ dạng Phần 1 chuyển sang được dạng Phần 2

Hiện nay em chỉ biết copy từng vùng của từng nhân viên rồi dán Paste Special/ Transpose thì OK. Tuy nhiên có điều rất bất tiện, công ty có cả 500 nhân viên thì làm sao mà dán cho xuể. Mong các anh chỉ dùm gấp gấp ạ

Cảm ơn các anh nhiều nhiều

Hugolina
 
Sửa lần cuối:
Khóa học Quản trị dòng tiền
N

Ng Ha Anh Tuan

Guest
2/8/06
76
0
0
TP HCM
Tại bảng lương, bảng nhập:
A: Mã thẻ (tự nhập mỗi ng 1 mã)
B: Tên (Nếu có DMNV th2 dùng hàm Vlookup)
C: 01/03/07 : Dùng hàm sumproduct(DK1*DK2*DK...) bạn nghiên cứu thêm hàm này ....Rất hay
D: 02/03/07: như (C)
...
X: Tổng giờ (sum())
Chào! Nếu mà chưa được thì sẽ hướng dẫn cụ thể hơn
 
tanphuc

tanphuc

Con trai miệt vườn
22/12/06
211
1
18
Tp.HCM_Tp.Mỹ Tho
C: 01/03/07 : Dùng hàm sumproduct(DK1*DK2*DK...) bạn nghiên cứu thêm hàm này ....Rất hay

Hàm này lạ quá, Công dụng của nó là gì vậy bạn Tuấn, có dể sử dụng không ?
 
S

SA_DQ

Thành viên Cố vấn - Webketoan Mentors
29/6/05
568
99
28
66
HCM city
Dữ liệu thô như sau:
Mã thẻ / Ngày quét thẻ / Giờ quét thẻ
Từ dữ liệu thô này em xếp lại được ngày và giờ làm việc sẽ được trình bày theo hàng dọc
Mã thẻ / Ngày / Giờ làm việc (Phần I)
01 1/3 8.0
01 2/3 8.0
01 3/3 8.0 ... .... ....
02 1/3 8.0
02 2/3 8.0
02 3/3 8.0 ... .... ....
cứ như thế cho thẻ kế tiếp.
Vấn đề là bảng lương hiện tại của công ty trình bày theo chiều ngang: (Phần 2)
Mã thẻ / Tên Nhân viên / Ngày 1/3 2/3 .......31/2
01 Nguyễn Văn A 8.0 8.0 8.0
02 Trần Văn B 8.0 8.0 8.0 . .
100
Em muốn hỏi làm thế nào đảo chiều được dữ liệu tự động -> từ dạng Phần 1 chuyển sang được dạng Phần 2. Hugolina
/)/(ình chỉ hướng trước, nếu bạn tự làm không được sẽ có người giúp tiếp
Khai báo 1 biến mảng như sau:
Const SoNV As Integer = 999
Redim MNgCg( SoNV, 3)
1' Dùng AdvancedFilter lọc lấy tháng chấm công cần chuyển đổi (VD thành table 1A
Sau đó bạn dùng vòng lặp duyệt toàn bộ Table 1A chuyển vô biến mảng này:
Dim StrC As String: Dim Ij As Integer
ij =1
Do
ij = 1+ ij: StrC = "A" & CStr(ij)
' Đ/k thoát vòng lặp là Len(StrC)<1 then Exit Do
' Trong đó MNgCg(i,1) chứa MaNV; MNgCg(i,2) chứa Ngày làm việc; & MNgCg(i,3) chứa giờ công
Loop
Sau đó qua phần 2 & bạn gán đúng theo các cột tưong ứng cũng = các vòng lặp thích hợp!

Gắn lên còn gang nữa đến thiên đàng!
 
Sửa lần cuối:
H

Hugolina

Guest
12/11/05
37
0
0
Thành phố Hồ Chí Minh
Ui, anh Tuấn ơi.

Hàm sumproduct liên quan đến tính nhân của mảng.

Vấn đề của em chỉ là làm sao thay đổi được chiều trình bày của dữ liệu đã có sẵn từ chiều dọc đổi sang chiều ngang mà không phải cắt dán thủ công.

Các dãy dữ liệu (1 dãy là thông tin của 1 nhân viên) đều có kích thước như nhau.

To anh SA DQ,

Em sẽ thử theo cách của anh, nếu có gì không hiểu em sẽ hỏi anh sau.

Cảm ơn hai anh.
 
N

Ng Ha Anh Tuan

Guest
2/8/06
76
0
0
TP HCM
Có bao giờ bạn cần lấy tổng tiền lương của phòng A, chỉ lâý những người lương > 5tr, và lấy những ng là nam, vấn đề này access làm rất tốt, thì Excel là hàm sumproduct dùng làm như vậy. Quan trong những là các vùng phải có độ dài bằng nhau. Bạn tìm trên WKT có phần chỉ về hàm này.
Gởi Hugolina file lấy giờ công để tham khảo, hàm sumproduct đâu phải chỉ nhân, mà còn cộng, đếm...
 

Đính kèm

  • LayGioCong.rar
    9.8 KB · Lượt xem: 196
S

son_ktt

Guest
25/11/06
341
0
0
Ha Noi
Theo mình bạn nên có Đơn đặt hàng với bác SA_DQ ấy.
 
S

SA_DQ

Thành viên Cố vấn - Webketoan Mentors
29/6/05
568
99
28
66
HCM city
Có bao giờ bạn cần lấy tổng tiền lương của phòng A, chỉ lâý những người lương > 5tr, và lấy những ng là nam, vấn đề này access làm rất tốt, thì Excel là hàm sumproduct dùng làm như vậy. Quan trong những là các vùng phải có độ dài bằng nhau. Bạn tìm trên WKT có phần chỉ về hàm này...
Mình có hàm tự viết xài rất ưu trong trường hợp này:
=DVLOOKUP( CSDL; Dk1; DK2)

& không nhất thiết CSDL buột phải giống nhau!
 
N

Ng Ha Anh Tuan

Guest
2/8/06
76
0
0
TP HCM
Do là công thức mà nên chưa phải sử dụng VBA, em đã xem hàm Dvlookup của anh rồi, với lại VBA thấy khó quá.
 
S

SA_DQ

Thành viên Cố vấn - Webketoan Mentors
29/6/05
568
99
28
66
HCM city
H

Hugolina

Guest
12/11/05
37
0
0
Thành phố Hồ Chí Minh
Cảm ơn sự nhiệt tình của các anh

Dạo này em bận lu bu nên không vào mạng kiểm tra được, em xin lỗi đã không hồi âm sớm. Thật ra em đã tìm ra cách đảo chiều theo hướng em mong muốn. Chỉ cần sử dụng Pivot Table là đảo chiều theo hướng nào cũng được. Hihi

Thân chào

Hugolina
 

Xem nhiều

Webketoan Zalo OA