• About
  • Advertise
  • Privacy & Policy
  • Contact
NQ NEWS
  • Kiến thức tổng hợp
    • Development
    • Deep Learning
    • Cloud Computing
    • Kiến thức bảo mật
    • Tin học văn phòng
  • Thủ thuật
    • Phần Mềm
    • Sửa lỗi máy tính
    • Bảo mật máy tính
    • Tăng tốc máy tính
    • Thủ thuật Wifi
  • Quản trị hệ thống
    • Giải pháp bảo mật
    • Mail Server
    • Mạng LAN – WAN
    • Máy chủ
    • Windows Server 2012
  • Tin tức
No Result
View All Result
  • Kiến thức tổng hợp
    • Development
    • Deep Learning
    • Cloud Computing
    • Kiến thức bảo mật
    • Tin học văn phòng
  • Thủ thuật
    • Phần Mềm
    • Sửa lỗi máy tính
    • Bảo mật máy tính
    • Tăng tốc máy tính
    • Thủ thuật Wifi
  • Quản trị hệ thống
    • Giải pháp bảo mật
    • Mail Server
    • Mạng LAN – WAN
    • Máy chủ
    • Windows Server 2012
  • Tin tức
No Result
View All Result
NQ NEWS
No Result
View All Result
Home Kiến thức tổng hợp Tin học văn phòng ms excel

Tự động trích ngang dữ liệu trong Excel

@admiz by @admiz
07/12/2021
in ms excel
0

Bạn được giao nhiệm vụ thực hiện một biểu dữ liệu chi tiết theo dạng bàn cờ như nhật ký chứng từ. Nhập liệu bằng tay cho biểu này phải dùng scroll bar kéo qua kéo lại để tìm cho đúng cột dữ liệu, vừa tốn công vừa dễ nhầm. Chi bằng bạn cứ nhập các thông tin cần thiết, phần việc còn lại hãy cứ để cho Excel làm giúp, đảm bảo số liệu chính xác 100%.

Ví dụ, chúng ta có một mẫu nhật ký chi tiền mặt (hình 1) với quy ước nhập liệu là nếu một chứng từ có nhiều tài khoản đối ứng thì nhập trên nhiều dòng khác nhau nhưng các cột ngày, số chứng từ và nội dung phải giống nhau. Nhiệm vụ được chia nhỏ thành 3 thủ tục macro để tiện cho việc bảo trì, sửa đổi mã lệnh sau này khi cần thiết (xin được bỏ qua bước trình bày cách tạo, lưu giữ và quản lý module, các thao tác này khá đơn giản). Một số điểm cần lưu ý trước khi trình bày mã lệnh của các thủ tục:

 

– Để gán giá trị của một cell vào biến, hãy di chuyển đến cell này và dùng thuộc tính value của cell hiện hành gán cho biến đã khai báo (Bien=ActiveCell.Value). Xong các lệnh gán, nhớ quay trở về cell cũ trước khi di chuyển.

– Sử dụng địa chỉ kiểu tương đối khi di chuyển cell bằng thuộc tính Offset (Offset(Row, Column)).

– Dùng một macro thứ tư gọi lần lượt 3 macro trên để hình thành một quá trình hoàn chỉnh, gán phím tắt cho macro này để tiện sử dụng.

1. Trích ngang dữ liệu theo tài khoản phát sinh. Trong thủ tục này, căn cứ vào số hiệu tài khoản tại cột TK, số tiền tương ứng được trải ra theo chiều ngang, tiền của tài khoản nào được điền vào cột mang đúng số hiệu tài khoản đó.

Sub TrichNgang()

Dim Taikhoan As String

Dim ThutuDong, SoCot As Integer

Dim Sotien As Long

Range(“D2”).Select

Lặp đến dòng cuối của danh sách

Do Until ActiveCell.Value = “”

Taikhoan = ActiveCell.Value

ActiveCell.Offset(0, 1).Range(“A1”).Select

 

Sotien = ActiveCell.Value

Range(“F1”).Select

SoCot = 2

Thực hiện cho đến cột tài khoản cuối cùng. Nếu tìm thấy số hiệu tài khoản
thì điền số tiền lên dòng trên cùng của chứng từ và thoát vòng lặp.

Do Until ActiveCell.Value = “”

If ActiveCell.Value = Taikhoan Then

ActiveCell.Offset(ThutuDong + 1, 0).Range(“A1”).Select

ActiveCell.Value = Sotien

Exit Do

Else

ActiveCell.Offset(0, 1).Range(“A1”).Select

End If

SoCot = SoCot + 1

Loop

Trường hợp không tìm thấy tài khoản thì điền số hiệu tài khoản vào cột cuối cùng và điền số tiền vào đúng dòng đầu tiên của chứng từ. Bằng không dời con trỏ xuống đầu dòng dưới và thêm thứ tự dòng 1 đơn vị.

If ActiveCell.Value = “” Then

ActiveCell.Value = Taikhoan

ActiveCell.Offset(ThutuDong + 1, 0).Range(“A1”).Select

ActiveCell.Value = Sotien

End If

ActiveCell.Offset(1, -SoCot).Range(“A1”).Select

ThutuDong = ThutuDong + 1

Loop

End Sub

2. Mang số tiền từ các dòng dưới cộng vào dòng đầu đối với những chứng từ có hơn một dòng phát sinh. Đối với một chứng từ chi đối ứng với nhiều tài khoản, bạn phải cộng dồn số tiền của từng tài khoản vào cột tổng cộng và trích ngang số tiền này vào các tài khoản tương ứng trên cùng một dòng.

Sub CungCTu()

 

Dim Ngay, Ngay2 As Date

Dim Chungtu, Chungtu2, Taikhoan, Taikhoan2, Noidung, Noidung2 As String

Dim ThutuDong, SoCot, SoDong As Integer

Dim Sotien, Sotien2 As Long

Lặp đến dòng cuối của danh sách

Range(“A2”).Select

Ngay = ActiveCell.Value

ActiveCell.Offset(0, 1).Range(“A1”).Select

Chungtu = ActiveCell.Value

ActiveCell.Offset(0, 1).Range(“A1”).Select

Noidung = ActiveCell.Value

ActiveCell.Offset(0, 1).Range(“A1”).Select

Taikhoan = ActiveCell.Value

ActiveCell.Offset(1, -3).Range(“A1”).Select

Lưu các dữ liệu cần thiết vào biến. Lặp cho đến dòng cuối của danh sách

Do Until ActiveCell.Value = “”

Ngay2 = ActiveCell.Value

ActiveCell.Offset(0, 1).Range(“A1”).Select

Chungtu2 = ActiveCell.Value

ActiveCell.Offset(0, 1).Range(“A1”).Select

Noidung2 = ActiveCell.Value

If Ngay = Ngay2 And Chungtu = Chungtu2 And Noidung = Noidung2 Then

SoDong = SoDong + 1

ActiveCell.Offset(0, -2).Range(“A1”).Select

ThutuDong = ThutuDong + 1

ActiveCell.Offset(0, 3).Range(“A1”).Select

Taikhoan2 = ActiveCell.Value

ActiveCell.Offset(0, 1).Range(“A1”).Select

Sotien2 = ActiveCell.Value

Range(“E1”).Select

SoCot = 5

Lặp đến cột tài khoản cuối cùng. Nếu tìm thấy số hiệu tài khoản thì cộng số tiền các dòng dưới lên dòng trên cùng của chứng từ, rồi thoát vòng lặp.

Do Until ActiveCell.Value = “”

If ActiveCell.Value = Taikhoan2 Then

ActiveCell.Offset(ThutuDong – SoDong + 1, 0).Range(“A1”).Select

ActiveCell.Value = Sotien2

ActiveCell.Offset(0, -SoCot + 5).Range(“A1”).Select

ActiveCell.Value = ActiveCell.Value + Sotien2

Exit Do

Else

ActiveCell.Offset(0, 1).Range(“A1”).Select

 

End If

SoCot = SoCot + 1

Loop

ActiveCell.Offset(1, -4).Range(“A1”).Select

Else

SoDong = 0

ActiveCell.Offset(0, -2).Range(“A1”).Select

ThutuDong = ThutuDong + 1

End If

Lưu giữ các giá trị hiện tại để tiếp tục so sánh trong vòng lặp

Ngay = Ngay2

Chungtu = Chungtu2

Noidung = Noidung2

ActiveCell.Offset(1, 0).Range(“A1”).Select

Nếu một chứng từ có nhiều dòng, phải dời con trỏ đến đúng dòng cuối.

If SoDong > 1 Then

ActiveCell.Offset(SoDong – 1, 0).Range(“A1”).Select

End If

Loop

End Sub

3. Xóa các dòng thừa (dòng thứ hai trở đi) ở những chứng từ có nhiều tài khoản đối ứng, đồng thời xóa cột TK (tài khoản).

Sub XoaDong()

Dim Ngay, Ngay2 As Date

Dim Chungtu, Chungtu2, Noidung, Noidung2 As String

Lưu giữ các giá trị ở dòng đầu để so sánh trong vòng lặp

Range(“A2”).Select

Ngay = ActiveCell.Value

ActiveCell.Offset(0, 1).Range(“A1”).Select

Chungtu = ActiveCell.Value

ActiveCell.Offset(0, 1).Range(“A1”).Select

Noidung = ActiveCell.Value

ActiveCell.Offset(1, -2).Range(“A1”).Select

So sánh lần lượt dòng trên với dòng dưới, nếu xác định là trùng nhau thì xóa các dòng thừa phía dưới.

Do Until ActiveCell.Value = “”

Ngay2 = ActiveCell.Value

ActiveCell.Offset(0, 1).Range(“A1”).Select

Chungtu2 = ActiveCell.Value

ActiveCell.Offset(0, 1).Range(“A1”).Select

Noidung2 = ActiveCell.Value

ActiveCell.Offset(0, -2).Range(“A1”).Select

If Ngay = Ngay2 And Chungtu = Chungtu2 And Noidung = Noidung2 Then

Selection.EntireRow.Delete

ActiveCell.Offset(-1, 0).Range(“A1”).Select

Else

End If

Ngay = Ngay2

Chungtu = Chungtu2

Noidung = Noidung2

ActiveCell.Offset(1, 0).Range(“A1”).Select

Loop

Xóa cột số hiệu tài khoản (TK)

Columns(“D:D”).Select

Selection.Delete Shift:=xlToLeft

Range(“A1”).Select

End Sub

Kết quả sau khi chạy cả 3 macro thể hiện ở hình 2.

Trần Xuân Thiên
txthientx@fastmail.fm
Công ty may Trường Giang – Quảng Nam

Post Views: 114
Previous Post

Có gì mới trong Linux Kernel 5.14?

Next Post

106 thủ thuật với Microsoft Office 2003

Related Posts

Cách định Dạng Ngày Tháng Trên Excel 6093d95944e43.jpeg
ms excel

Cách định dạng ngày tháng trên Excel

30/04/2022
Tổng Hợp Các Hàm Số Lượng Giác Trong Excel 6093d945e72fa.jpeg
ms excel

Tổng hợp các hàm số lượng giác trong Excel

30/04/2022
Cách Sắp Xếp Tên Theo Thứ Tự Chữ Cái Trong Excel 6093d96262167.jpeg
ms excel

Cách sắp xếp tên theo thứ tự chữ cái trong Excel

30/04/2022
Cách Tạo Bảng Excel, Chèn Bảng Trong Excel 6093d9760b0ed.jpeg
ms excel

Cách tạo bảng Excel, chèn bảng trong Excel

30/04/2022
Tra Cứu Dữ Liệu Trong Bảng Excel: Thay Thế Vlookup Bằng Index Và Match 6093d986a4a62.jpeg
ms excel

Tra cứu dữ liệu trong bảng Excel: Thay thế VLOOKUP bằng INDEX và MATCH

30/04/2022
Cách Tạo Danh Sách Sổ Xuống (drop List) Trên Excel 2016 6093d9a71cf56.jpeg
ms excel

Cách tạo danh sách sổ xuống (drop list) trên Excel 2016

28/04/2022
Next Post
106 Thủ Thuật Với Microsoft Office 2003 6093e2137b64a.jpeg

106 thủ thuật với Microsoft Office 2003

Bài mới nhất

Tổng Hợp 10 Mẫu Email Marketing Giới Thiệu Sản Phẩm Nổi Bật Nhất Hiện Nay 612d0da97658c.png

Tổng hợp 10 mẫu email marketing giới thiệu sản phẩm nổi bật nhất hiện nay

07/05/2025
Dịch Vụ Thiết Kế Website Tại Hải Dương Chuyên Nghiệp, ấn Tượng Và Uy Tín 612d25752b14f.png

Dịch vụ thiết kế website tại Hải Dương chuyên nghiệp, ấn tượng và uy tín

06/05/2025
Top Công Ty Thiết Kế Website Tại Biên Hòa Chuyên Nghiệp, Chuẩn Seo 612d259494e93.jpeg

Top công ty thiết kế website tại Biên Hòa chuyên nghiệp, chuẩn SEO

06/05/2025
Top Công Ty Thiết Kế Website Tại Vinh – Nghệ An Uy Tín 612d259a9cae3.jpeg

Top công ty thiết kế website tại Vinh – Nghệ An uy tín

05/05/2025
Top 10 Công Ty Thiết Kế Website Tại Nha Trang Chuyên Nghiệp 612d0a9ad018b.jpeg

Top 10 công ty thiết kế website tại Nha Trang chuyên nghiệp

05/05/2025

Danh mục

  • Android
  • Bảo mật máy tính
  • Bảo mật, Antivirus
  • Chuyện công nghệ
  • Deep Learning
  • Development
  • Dịch vụ công trực tuyến
  • Dịch vụ nhà mạng
  • Giải pháp bảo mật
  • Hệ thống
  • Hệ thống
  • iPhone
  • Kiến thức bảo mật
  • Kiến thức cơ bản phổ thông
  • Kiến thức Marketing căn bản
  • Kiến thức tổng hợp
  • Lập trình
  • Linux
  • Linux OS
  • macOS
  • Mail Server
  • Mạng LAN – WAN
  • Máy ảo
  • Máy chủ
  • ms excel
  • ms-powerpoint
  • Nền tảng điện toán đám mây
  • Phần cứng
  • Phần Mềm
  • Quản trị hệ thống
  • Raspberry Pi
  • Sửa lỗi máy tính
  • Tăng tốc máy tính
  • Thủ thuật
  • Thủ thuật SEO
  • Thủ thuật Wifi
  • Tiện ích hệ thống
  • Tin học văn phòng
  • Tin tức
  • Uncategorized
  • Ứng dụng
  • Website
  • Windows Server 2012

Thẻ

#app #chatbot #chatbot tự động #CRM #Kiến thức cơ bản #Techblog #Thiết kế website Android apple CPU Email Marketing Google Google Drive hacker HTML hàm python hàm python có sẵn hình nền hình nền máy tính học css học python học SQL ios iphone iphone 12 iPhone X macos Microsoft mssql MS SQL Server ngôn ngữ lập trình python Raspberry Pi Samsung smartphone SQL SQL Server tham số trong C thủ thuật windows 10 tài liệu python windows windows 10 YouTube điện thoại thông minh ứng dụng
  • About
  • Advertise
  • Privacy & Policy
  • Contact

© 2022 Pha Le Solution

No Result
View All Result
  • Home

© 2022 Pha Le Solution