[Xin giúp] Chuyển dữ liệu từ bảng trên xuống bảng dưới

  • Thread starter Thread starter 20cent
  • Ngày gửi Ngày gửi
Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

20cent

Thành viên mới
Tham gia
20/7/10
Bài viết
36
Được thích
1
Mình có nhu cầu chuyển dữ liệu từ bảng trên xuống 1 bảng có định dạng khác xuống phía dưới! Nếu căn A2 không không phát sinh tiền điện và nước thì chỉ lấy dữ liệu của Tiền nhà và Quản lý. Xin vui lòng xem file đính kèm; Rất mong mọi người giúp đỡ!
 

File đính kèm

Mình có nhu cầu chuyển dữ liệu từ bảng trên xuống 1 bảng có định dạng khác xuống phía dưới! Nếu căn A2 không không phát sinh tiền điện và nước thì chỉ lấy dữ liệu của Tiền nhà và Quản lý. Xin vui lòng xem file đính kèm; Rất mong mọi người giúp đỡ!
Bạn này tự viết được cả file Sổ quỹ mà bài này không tự làm được thì có vẻ hơi lạ nhỉ.
 
Bài này đơn giản mà nhỉ

PHP:
Option Explicit
Sub thanhtoan()
Dim i&, j&, k&, ar1, ar2(1 To 4)
Dim rng, res(1 To 1000, 1 To 4)
rng = Range("C3:R66").Value
ar1 = Array(1, 7, 10, 11, 12) ' luu vi tri cot vao ar1: 7-10-11-12 la STT cua cot I-L-M-N tinh tu cot C
ar2(1) = [I2].Value: ar2(2) = [L2].Value ' luu tieu de cot vao ar2
ar2(3) = [M2].Value: ar2(4) = [N2].Value
For i = 1 To UBound(rng)
    If IsDate(rng(i, 16)) Then ' chi thuc hien khi co ngay thanh toan
        For j = 1 To 4
            If rng(i, ar1(j)) > 0 Then ' Neu so tien >0 thi add 1 dong vao ket qua
                k = k + 1: res(k, 1) = rng(i, 16): res(k, 2) = rng(i, 1)
                res(k, 3) = ar2(j): res(k, 4) = rng(i, ar1(j))
            End If
        Next
    End If
Next
Range("B69:E1000").ClearContents
If k > 0 Then Range("B69").Resize(k, 4).Value = res
End Sub
 

File đính kèm

Hihi... ngồi làm thì bị lú... mò mò hỏi Copilot thấy dùng hàm Filter ok luôn! Cảm ơn các bạn đã hỗ trợ, xin lỗi đã làm phiền!
 
Code VBA:

Muốn gán trị cho một mảng từ một số cột rời rạc của bảng tính thì code như sau:
a1 = Application.Choose(Array(1, 2, 3, 4), Range("a1:a10"), Range("m1:m10"), Range("x1:x10"), Range("aa1:aa10"))
Kết quả a1 sẽ là một mảng với cột 1 = Range("a1:a10").Value, cột 2 = Range("m1:m10").Value, ...

Muốn gán trị cho một mảng trống thì code như sau:
a2 = Array( Range("a1").Value, Range("aa1").Value, Range("ba1").Value, Range("ca1").Value )
 
Bạn này tự viết được cả file Sổ quỹ mà bài này không tự làm được thì có vẻ hơi lạ nhỉ.
Ta có quen nhau không ạ!?
Bài đã được tự động gộp:

File kia chắc không cần theo luật CSDL LH.
Công việc này là unpivot. Biết luật CSDL LH thì biết làm.
Mình đã dùng unpivot thành công... hihi cảm ơn bạn!
 
Web KT

Bài viết mới nhất

Back
Top Bottom