Tự động cập nhật dữ liệu trong EXCEL
Trong Excel có một hàm mà chúng ta có thể dùng nó để tự động hóa quá trình
cập nhật dữ liệu! đó là hàm OFFSET
Hàm Offset cho kết quả là nội dung của một ô.
cú pháp của hàm này như sau: OFFSET(tọa độ một ô bất kỳ, số dòng, số cột)
Lưu ý: Số dòng và số cột chứ không phải tọa độ dòng hay tọa độ cột, hay đó là
khoảng cách từ ô A1 đến ô cần lấy dữ liệu. (Ta nên chọn ô bất kỳ đó là ô A1)
Ví dụ ở ô C5 có nội dung là 1/1/2004, và ta cần lấy nội dung 1/1/2004 đó.
công thức là offset($A$1,4,2)
sẽ cho kết quả là 1/1/2004
Do đó dùng hàm này để tự động cập nhật dữ liệu của các chứng từ khi lập các sổ
Nhật ký chung, nhật ký đặc biệt, sổ cái... từ sheet chứng từ. :f_o :bia
View Full Version : Tự động cập nhật dữ liệu giữa các sheet
Lenbao
21-03-09, 05:28 PM
Các bán giúp mình bài này nhé. Mình có danh sách lớp A, danh sách lớp B và danh sách học sinh
trong trường. Mình sẽ phải sử dụng công thức nào để khi cập nhật học sinh vào danh sách các lớp
thì tự động danh sách học sinh trong trường sẽ được cập nhật.
Cám ơn các bạn
ChanhTQ@
21-03-09, 05:52 PM
Các dùng: Phải chuột vô lần lượt các sheets 'lop A' & 'lop B' chọn dòng cuối cửa sổ vừa hiện ra &
chép mảco dưới vô chúng
Sau đó hễ bạn nhập vô 'Lop A' hay 'Lop B' sẽ có những từ đó bên sheet thứ ba;
Mà bạn cần sửa lại tên các trang tính:
(+) Không có khoảng trắng
(+) Tên gì mà dài lê thê, đến nổi mình phải thay bằng tên cúng cơm của nó luôn làm vậy?!
Thay vì dài ngoãng như vậy, ta chỉ nên là 'DSHS' )(&&@@ !$@!!
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Columns("B:B")) Is Nothing Then _
Sheet3.[b65500].End(xlUp).Offset(1) = Target.Value
End Sub
Lenbao
21-03-09, 06:37 PM
:( rất tiếc vì kiến thức tin học của mình có hạn nên bạn có thể chỉ cho mình kỹ hơn về vụ đưa macro
này vào excel bằng cách nào được không và nếu có hàm nào đơn giản hơn thì càng tốt.
Cám ơn bạn trước
ndu96081631
21-03-09, 08:09 PM
:( rất tiếc vì kiến thức tin học của mình có hạn nên bạn có thể chỉ cho mình kỹ hơn về vụ đưa macro
này vào excel bằng cách nào được không và nếu có hàm nào đơn giản hơn thì càng tốt.
Cám ơn bạn trước
Nếu tôi là người nhập liệu thì tôi làm khác:
- Tôi nhập toàn bộ hs trường vào 1 sheet với các trường: STT, Họ và Tên, Mã HS, Ngày sinh,.... vân
vân... là tất cả thông tin cần thiết để truy tìm 1 hs nào đó khi cần thiết
- Ở sheet thứ 2, nếu muốn biết ds của 1 lớp nào đó thì đơn giản ta dùng AutoFilter hoặc Advanced
Filter mà lọc
* Thêm nữa:
- Bạn có từng nghĩ đến việc 1 hs nào đó từ lớp này sẽ chuyển sang học lớp khác không?
- Hay đơn giản, bạn có từng nghĩ lớp 10A của niên khóa này khác với lớp 10A của niên khóa trước
không?
---> Lúc đó bạn quản lý dử liệu thế nào đây nếu như nhập liệu mỗi lớp là 1 sheet?
Thay
23-03-09, 11:36 PM
Các dùng: Phải chuột vô lần lượt các sheets 'lop A' & 'lop B' chọn dòng cuối cửa sổ vừa hiện ra &
chép mảco dưới vô chúng
Sau đó hễ bạn nhập vô 'Lop A' hay 'Lop B' sẽ có những từ đó bên sheet thứ ba;
Mà bạn cần sửa lại tên các trang tính:
(+) Không có khoảng trắng
(+) Tên gì mà dài lê thê, đến nổi mình phải thay bằng tên cúng cơm của nó luôn làm vậy?!
Thay vì dài ngoãng như vậy, ta chỉ nên là 'DSHS' )(&&@@ !$@!!
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Columns("B:B")) Is Nothing Then _
Sheet3.[b65500].End(xlUp).Offset(1) = Target.Value
End Sub
Bạn cho tôi hỏi nếu khi vào danh sách mà bị sai, sau đó sửa lại thì bên Shee3 vẫn còn tên gõ sai,
Vậy phải làm thế nào để tự động cập nhật khi sửa tên gõ sai
ChanhTQ@
24-03-09, 07:16 AM
Cho hỏi, nếu khi vào danh sách mà bị sai, sau đó sửa lại thì bên Shee3 vẫn còn tên gõ sai, Vậy phải
làm thế nào để tự động cập nhật khi sửa tên gõ saiĐể tìm tên sai bên CSDL tổng hợp, theo mình, có
lẻ nên có mã HS riêng biệt cho từng em.
& kiểm mỗi lần khi chép; nếu trùng thì báo cho ta biết để sửa; Nhưng cũng còn lắm công phu lắm
để sửa cái sai này. . . .
Đến đây, vấn đề sẽ liên quan đến việc NDU đã đề cập; Vì chúng ta làm ngược quy trình ngay từ đầu
nên sẽ phức tạp chuyện sửa đổi tên sai . . . .
Thật ra, Macro mình đưa ra chỉ để thỏa mãn iêu cầu của chủ topic mà thôi, . . . )(&&@@ @!##
agiap
25-03-09, 05:51 PM
Tôi không hiểu về maco lắm nhưng tôi nghĩ dùng hàm Vlookup cũng được mà.
View Full Version : Tự động cập nhật dữ liệu khi thêm worksheet mới
quandrc
04-06-09, 02:25 PM
Bác Chuyên gia nào cho em hỏi một vấn đề ......
em đang có một flie nhập dữ liệu các mặt hàng ở các kho A B C. Hằng ngày em phải nhập vào các
sheet ứng với một sheet là một kho là một ngày vd: a.1 là kho a ngày 1, b.1 là kho b ngay 1 tương
tự. Bây giờ em muốn khi dữ liệu nhập vào sheet a.1 là nó sẻ tự động cập nhật cộng vào sheet tổng
hợp và các sheet kho ngày này không định sẳn, có nghĩa là làm đến ngày nào thì chèn thêm sheet
ngày đó...Bác chuyên gia nào giúp em với em cám ơn. và giúp em băng công thức nhé. chức maro
thì em bó tay, không hiểu (file đính kèm )
domfootwear
04-06-09, 02:53 PM
Bác Chuyên gia nào cho em hỏi một vấn đề ......
em đang có một flie nhập dữ liệu các mặt hàng ở các kho A B C. Hằng ngày em phải nhập vào các
sheet ứng với một sheet là một kho là một ngày vd: a.1 là kho a ngày 1, b.1 là kho b ngay 1 tương
tự. Bây giờ em muốn khi dữ liệu nhập vào sheet a.1 là nó sẻ tự động cập nhật cộng vào sheet tổng
hợp và các sheet kho ngày này không định sẳn, có nghĩa là làm đến ngày nào thì chèn thêm sheet
ngày đó...Bác chuyên gia nào giúp em với em cám ơn. và giúp em băng công thức nhé. chức maro
thì em bó tay, không hiểu (file đính kèm )
Bạn nên sấp xếp và thiết kế lại bảng nhập liệu, làm như bạn rất là rối, 1 kho nhập 1 ngày = 1
sheet, làm sao quản lý cho nổi **~**. Cái này mình chỉ cần xây dùng 2 sheet. 1 Sheet dùng nhập
liệu và 1 sheet dùng làm bảng tổng hợp thôi
Bạn xem file đính kèm nhé
Thân
quandrc
04-06-09, 03:35 PM
Ban thông cảm ...! file này đã có sẳn và nội dung trong file rất nhiều vấn đề nhiều yêu cầu và nhiều
công đoạn nhập dữ liêu. ở đây mình chỉ trích ra một yêu cầu công việc để đưa lên diễn đàn hỏi
chuyên gia. do đó các chuyên gia cố gắng giúp mình theo như mình trình bày thank...!
thivantan
05-06-09, 12:21 PM
Ban thông cảm ...! file này đã có sẳn và nội dung trong file rất nhiều vấn đề nhiều yêu cầu và nhiều
công đoạn nhập dữ liêu. ở đây mình chỉ trích ra một yêu cầu công việc để đưa lên diễn đàn hỏi
chuyên gia. do đó các chuyên gia cố gắng giúp mình theo như mình trình bày thank...!
Bạn nên sắp sếp lại theo hướng dẫn của bạn Domfootwear; có sắp sếp dữ liệu khoa học thì mới dễ
tổng hợp, theo tôi bạn nên nhập các ngày của một kho lại thành một sheet VD Sheet A chứa việc
nhập số liệu theo các ngày của Kho A...như vậy khi bạn có 4 kho (A;B;C;D) thì chỉ cần 4 sheet
tương ứng, sau đó tổng hợp thì sẽ dễ dàng hơn và chắc chắn các anh chị trên GPE sẽ giúp được bạn.
quandrc
06-06-09, 07:21 AM
Nội dung đặt ra là như vậy. với lại file đòi hỏi là như vậy như trình bày ở trên, làm sao các bác biểu
em phải thay đổi được. Chắc là bó tay thôi... sâu xa của vấn đền ở đây em nghỉ không ra là dữ liệu
nguồn không cố định có nghĩa là các sheet không định dạng trước được.
HYen17
06-06-09, 08:30 AM
(2) Với lại file đòi hỏi là như vậy như trình bày ở trên, làm sao các bác biểu em phải thay đổi được.
Chắc là bó tay thôi... sâu xa của vấn đền ở đây em nghỉ không ra là dữ liệu nguồn không cố định có
nghĩa là các sheet không định dạng trước được.
(1) & giúp em băng công thức nhé. chứ maro thì em bó tay, không hiểu
(1): Bạn có hiểu hết excel không (í tôi muốn nói, cái cách mà người ta xây dựng lên cái excel cho
bạn xài đó? Nhưng bạn vẫn xài được nó đó thôi!)
Macro người khác viết cho bạn mà bạn từ chối thì đành chờ vậy bạn nha; Tuy nhiên mình cũng báo
cho bạn biết rằng, với VBA cái này giải quyết rất ư là đơn giản so với công thức nhiều.
Bạn phải hiểu rằng, bạn yêu cầu di chuyển/Copy dữ liệu đó nha!
Nếu bạn suy nghĩ lại mình sẽ đưa file đính kèm & cụ thể với bạn sau
Chúc vui!
HYen17
06-06-09, 03:24 PM
em có một flie nhập dữ liệu các mặt hàng ở các kho A B C.
Hằng ngày em phải nhập vào các sheet
Ứng với một sheet là một kho là một ngày vd: a.1 là kho a ngày 1, b.1 là kho b ngay 1 tương tự.
Bây giờ em muốn khi dữ liệu nhập vào sheet a.1 là nó sẻ tự động cập nhật cộng vào sheet tổng
hợp.
& các sheet kho ngày này không định sẳn, có nghĩa là làm đến ngày nào thì chèn thêm sheet ngày
đó...
(file đính kèm )Bạn hãy tải file đính kèm & trình tự trãi qua các bước mình hướng dẫn. (Chỗ nào
chưa thông thì ta thảo luận tiếp)
Trong file của mình, giờ chỉ có hai trang tính Trong đó có trang tính 'TongHop' & trang tính thứ 2 có
chứa macro sự kiện, như sau:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Columns(2)) Is Nothing Then
CopyToGeneral Target.Value, Target.Offset(, -1).Value, [b1].Value
End If
End SubThực tế, macro này có 1 dòng lệnh mà thôi; Diễn nôm dòng lệnh đó như sau:
Nếu Ta nhập số lượng mặt hàng nào đó vô cột 'B' (của trang tính này) thì thực thi macro
CopyToGeneral Với ba thông số sau: (Thông số ta vừa nhập, Thông số tên mặt hàng & thông số tên
kho)
Macro CopyToGeneral có nội dung như dưới đây:
(Tất nhiên bạn chưa cần quan tâm nhiều đến nội dung này;)
Sơ lược như vầy:
(*) Tìm Đúng tên kho đang tại cột nào lưu vô biến Col
(*) Tìm đúng dòng có tên mặt hàng trùng với thông số về mặt hàng mà nó vừa được nhận
(*) Chép số lượng lên đó
(Chú ý nó đang chỉ là chép hay chép đè lên cái số cũ hiện có; Nếu bạn muốn chép cộng vô, thì
chúng ta sẽ sửa lại dòng lệnh đôi chút - Chuyện ấy không phức tạp)
Đến đây bạn nên thử nhập số liệu nhiều lần lên trang tính này & kiểm tra sau mỗi lần nhập coi chơi
nha.
Khi tạo trang tính mới. (Đồng thời với việc ấy là tạo ra trường ứng với trang tính mới này tại
'TongHop') Cách mà bạn nên làm như sau:
Bạn bấm chuột vô trang 'A.1'; Sau đó ấn giữ {CTRL} & dùng chuột kéo tên trang tính này trên
thanh SheetName sang phải (Copy trang tính)
Bây giờ, việc tiếp theo chỉ là sửa lại tên trang tính, nội ung tại [B1] & thêm tên trường tương ứng
với trang tính này tại 'TongHop' (Đến đây xin dừng để nhắc bạn 1 điều, tên trang tính nên viết liền
(Thay vì 'TONG HOP' ta nên gán nó cái tên 'TongHop') & không nên chưa các ký tự như dấu '.' đó
đâu. Tất nhiên dấu chấm đó vẫn dùng được, cũng giống như không ai cấm chúng ta đi bộ mà 1
chân trên vĩa hè, một chân dưới lòng đường cả)
Làm cách này, là excel sẽ copy luôn cho bạn cái macro cần thiết sang trang tính mới
(Không tin thì bạn thử phải chuột lên trang tính song sinh mới tạo ra & chọn dòng cuối trong cửa số
vừa xuất hiện xem sao.
Option Explicit
Sub CopyToGeneral(SoLg As Double, TenHg As String, Kho As String)
Dim Sh As Worksheet, Rng As Range, sRng As Range, RngK As Range
Dim Col As Byte
Set Sh = Sheets("TongHop")
Set Rng = Sh.Range(Sh.[A1], Sh.[A65500].End(xlUp))
Set RngK = Sh.Range(Sh.[A1], Sh.[iV1].End(xlToLeft))
Set sRng = RngK.Find(Kho, , xlFormulas, xlWhole)
If sRng Is Nothing Then
MsgBox "Chua Co Kho Nay", , "Welcome to GPE.COM": Exit Sub
Else
Col = sRng.Column - 1
End If
Set sRng = Rng.Find(TenHg)
If sRng Is Nothing Then
MsgBox "Chua Co Mat Hang Nay", , "Bye!": Exit Sub
Else
sRng.Offset(, Col).Value = SoLg
End If
End Sub
Chờ tin bạn!
quandrc
08-06-09, 09:04 AM
Bạn hãy tải file đính kèm & trình tự trãi qua các bước mình hướng dẫn. (Chỗ nào chưa thông thì ta
thảo luận tiếp)
Trong file của mình, giờ chỉ có hai trang tính Trong đó có trang tính 'TongHop' & trang tính thứ 2 có
chứa macro sự kiện...
không được rồi bạn ơi....! mình chẳng hiểu gì về những câu lệnh trong vba của bạn. nhưng mình đã
thử rồi copy một sheet mới và đổi tên nhưng nó không cập nhật dữ liệu. còn dữ liệu của các ngày
của từng kho mình còn đang lưởng lự không biết nên cộng dồn vào cột của kho đó ở sheet
"tonghop" luôn hay tạo một cột phụ sẻ liệt kê các ngày trong tháng kho đó để tiện theo dõi khi bị
lệch dự liệu. mong bạn chỉ giáo.
Trong Excel có một hàm mà chúng ta có thể dùng nó để tự động hóa quá trình
cập nhật dữ liệu! đó là hàm OFFSET
dùng hàm này để tự động cập nhật dữ liệu của các chứng từ khi lập các sổ Nhật ký
chung, nhật ký đặc biệt, sổ cái... từ sheet chứng từ. :f_o :bia
VD thế này:
Khi các nghiệp vụ sảy ra thì các bạn tập hợp vào 1 Sheet riêng, gọi đại là
SheetCT đi.
Bây giờ bạn muốn lập sổ NKC chẳng hạn, có nhiều cách để lập:
1: Bạn copy dữ liệu từ SheetCT ra SheetNKC rồi tiến hành vài thao tác sao chép
đơn giản. Công việc này bạn phải làm mỗi khi muốn có sổ NKC, hay khi có
nghiệp vụ mới phát sinh.... và còn tùm lum thứ nữa.
2: Bạn dùng Offset. thì bạn lập một công thức chung ban đầu, sau đó mỗi khi có
nghiệp vụ KT sảy ra thì bạn chỉ việc chép công thức xuống dưới và dữ liệu sẽ tự
động được lấy từ SheetCT sang điền vào Sheet NKC.
Trong Sheet NKC này bạn có thể thêm vào 2 ô "ngayD" và "ngayC" để lọc dữ
liệu trong một khoảng thời gian nào đó bằng hàm SUBTOTAL mà mình đã trình
bày, dĩ nhiên hàm Offset cũng chỉ lấy những nghiệp vụ nào thỏa điều kiện mà
thôi.
Từ hàm offset,Dsum,dlookup,if...và sử dụng một số macro ta có thể tự động hàon
toàn công việc kế toán, từ công nợ chi tiết cho đến tổng hợp và báo cáo kế toán,kể
cả tự động tính kết quả SXKD,tôi đã làm được một chương trình này để lam kế toán
rất hay nhưng thú thực Excel chỉ áp dụng được cho đơn vị có nghiệp vụ kế toán
không lớn thì nó chạy nhanh, nhưng nếu xử lý đối với những DN có nghiệp vụ phát
sinh lớn thì không dùng được nên tôi phải chuyển qua ACCess tốt hơn nhiều và
cũng.... oai hơn.