Có cách nào gõ số phiếu mà có thể liệt kê toàn bộ nội dung của phiếu đó được không? (1 người xem)

Người dùng đang xem chủ đề này

ninhtom1

Thành viên hoạt động
Tham gia
26/8/10
Bài viết
106
Được thích
4
Em có file dữ liệu gồm 2 Sheet CTVatu và CTKetoan của 2 phòng kế toán và vật tư có nội dung (số phiếu, mã vật tư, tên vật tư, đvt) như nhau chỉ khác nhau về số lượng hoặc đơn giá. Các anh chị có thể giúp em lọc được dữ liệu để đối chiếu giữa 2 phòng với nhau bên Sheet DCChitiet bằng cách gõ số phiếu vào ô G2 thì có thể lọc được toàn bộ nội dung 2 phiếu đó theo 2 Sheet CTVattu và CTKetoan với điều kiện là mã vật tư, tên vật tư, đơn vị tính, số lượng (kế toán), giá trị (kế toán) bên Sheet CTKetoan, số lượng (VT), giá trị (VT) lọc bên Sheet CTVattu được không?
Em xin cảm ơn.
 

File đính kèm

Em có file dữ liệu gồm 2 Sheet CTVatu và CTKetoan của 2 phòng kế toán và vật tư có nội dung (số phiếu, mã vật tư, tên vật tư, đvt) như nhau chỉ khác nhau về số lượng hoặc đơn giá. Các anh chị có thể giúp em lọc được dữ liệu để đối chiếu giữa 2 phòng với nhau bên Sheet DCChitiet bằng cách gõ số phiếu vào ô G2 thì có thể lọc được toàn bộ nội dung 2 phiếu đó theo 2 Sheet CTVattu và CTKetoan với điều kiện là mã vật tư, tên vật tư, đơn vị tính, số lượng (kế toán), giá trị (kế toán) bên Sheet CTKetoan, số lượng (VT), giá trị (VT) lọc bên Sheet CTVattu được không?
Em xin cảm ơn.
Chào ninhtom1,

Cái gì Excel có sẵn thì nên tận dụng mà không cần phải tốn thời gian và công sức để lập công thức cho lâu:
1. Bạn tạo Pivot table lấy source từ mỗi sheet
2. Lập cột chênh lệch là xong.

Bạn tham khảo file đính kèm.

Chúc bạn ngày vui.
 

File đính kèm

Chào ninhtom1,

Nếu thích vba thì dùng đoạn sau.
Code trong Sheet3:
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Address = "$G$2" Then LP: Target.Select
End Sub
Code trong Module:
Mã:
Sub LP()
Dim i As Long, j As Long, k As Long, KT(), VT(), tmp(), sp As String, No As Integer
sp = Sheet3.Range("G2").Value
On Error Resume Next
No = WorksheetFunction.CountIf(Sheet1.Range("B5:B" & Sheet1.Range("B65000").End(xlUp).Row), sp)
KT = Sheet1.Range("B5:I" & Sheet1.Range("B65000").End(xlUp).Row)
VT = Sheet2.Range("B5:I" & Sheet2.Range("B65000").End(xlUp).Row)
ReDim tmp(1 To No, 1 To 7)
For i = 1 To UBound(KT, 1)
    If KT(i, 1) = sp Then
        k = k + 1
        tmp(k, 1) = KT(i, 3): tmp(k, 2) = KT(i, 4): tmp(k, 3) = KT(i, 5)
        tmp(k, 4) = KT(i, 6): tmp(k, 5) = KT(i, 8)
    End If
Next i
For k = 1 To No
For j = 1 To UBound(VT, 1)
    If VT(j, 1) = sp And VT(j, 3) = tmp(k, 1) Then
        tmp(k, 6) = VT(j, 6): tmp(k, 7) = VT(j, 8)
    End If
Next j
Next k
Sheet3.Range("B7").Resize(200, 7).ClearContents
Sheet3.Range("B7").Resize(No, 7).Value = tmp
End Sub
 
Em có file dữ liệu gồm 2 Sheet CTVatu và CTKetoan của 2 phòng kế toán và vật tư có nội dung (số phiếu, mã vật tư, tên vật tư, đvt) như nhau chỉ khác nhau về số lượng hoặc đơn giá. Các anh chị có thể giúp em lọc được dữ liệu để đối chiếu giữa 2 phòng với nhau bên Sheet DCChitiet bằng cách gõ số phiếu vào ô G2 thì có thể lọc được toàn bộ nội dung 2 phiếu đó theo 2 Sheet CTVattu và CTKetoan với điều kiện là mã vật tư, tên vật tư, đơn vị tính, số lượng (kế toán), giá trị (kế toán) bên Sheet CTKetoan, số lượng (VT), giá trị (VT) lọc bên Sheet CTVattu được không?
Em xin cảm ơn.
Nếu bạn thích dùng công thức
 

File đính kèm

Nếu bạn thích dùng công thức
Chào HieuCD, befaint,

Ba anh em mình giống nhân viên "marketing" chào hàng cho khách quá! khà khà khà!

"Hàng" của mình không có khuyến mãi gì sất! nên bây giờ muốn "cạnh tranh" phải dùng chiêu "khuyến mãi" quááá! --=0--=0--=0
Mại dzô, mại dzô!!

Chúc anh em ngày làm việc vui khỏe và năng động. }}}}}}}}}}}}}}}
 
Xin chân thành cảm ơn các anh chị đã giúp đỡ em
 
Xin chân thành cảm ơn các anh chị đã giúp đỡ em
Chào ninhtom1,

Nghề của anh em mình "Sai 1 ly đi 1 dặm" hay "Sai con t(o)án, bán con trâu".
Chúc bạn áp dụng hiệu quả các giải pháp anh em gửi giúp chút ít cho công việc của bạn.

Chúc bạn một ngày vui và học tập vui với diễn đàn GPE. /-*+//-*+//-*+/
 
Bạn HieuCD cho mình hỏi
Bạn có thể dịch hộ công thức ở cột A, cột B và ô C3 được không?
Cho mình hỏi cột H và cột I có phải công thức cần sửa lại thế này không?
=IF(ISNA($B7);"";INDEX(CTVattu!$D$1:$I$1000;$B7;4))
=IF(ISNA($B7);"";INDEX(CTVattu!$D$1:$I$1000;$B7;6))
 
Lần chỉnh sửa cuối:
Bạn HieuCD cho mình hỏi
Bạn có thể dịch hộ công thức ở cột A, cột B và ô C3 được không?
Cho mình hỏi cột H và cột I có phải công thức cần sửa lại thế này không?
=IF(ISNA($B7);"";INDEX(CTVattu!$D$1:$I$1000;$B7;4))
=IF(ISNA($B7);"";INDEX(CTVattu!$D$1:$I$1000;$B7;6))
2 công thức trên mình nhầm, bản chỉnh lại rất chính xác
C3 nhằm nhắc nhở bạn số dòng không đủ cần copy thêm, nếu đủ hoặc dư thì không hiện ra
công thức A7 là lấy thứ tự dòng có số phiếu theo yêu cầu ở sheet CT ketoan
công thức B7 là lấy thứ tự dòng có số phiếu theo yêu cầu ở sheet CT vattu
bạn cứ ứng dụng theo đúng cấu trúc công thức
cấu trúc công thức lấy thứ tự dòng nầy, mình học từ ThS Thái Phúc Huy và chế biến lại, dùng cho xử lý công tác kế toán với số dòng dữ liệu tương đối nhiều nhưng vẫn tương đối nhẹ file
 
Mình nhờ bạn dịch nghĩa hộ công thức để mình hiểu công thức còn áp dụng những việc khác nữa. Bạn có áp dụng công thức nào để lọc ra danh sách số phiếu trên sheet CTKetoan hộ mình được không? Mình chỉ biết cách áp dụng cách lọc danh sách duy nhất bằng filter còn công thức không biết dùng. Cảm ơn bạn
 
Mã:
A7 =MATCH($H$2,(INDEX(CTKetoan!$B$1:$B$1000,A6+1):INDEX(CTKetoan!$B$1:$B$1000,1000)),0)+A6
$H$2 là ô chứa giá trị cần tìm, bạn gỏ trực tiếp gí trị vào cũng được, nếu tìm các giá trị thỏa các ký tự đầu còn phía sau là ký tự gì cũng được thì dùng $H$2&"*" ví dụ bạn tìm các chứng từ có các ký tự đầu là PLHR thì nhập PLHR vào ô H2
CTKetoan!$B$1:$B$1000 là cột tìm để lấy dữ liệu
A6 là ô ngay phía trên ô A7 nhập công thức
INDEX(CTKetoan!$B$1:$B$1000,1000) là ô B1000 cuối của vùng dò tìm, bạn có thể giảm hay tăng số 1000
- tại ô A7: INDEX(CTKetoan!$B$1:$B$1000,A6+1) là ô B1, vùng tìm kiếm của hàm Match là
(INDEX(CTKetoan!$B$1:$B$1000,A6+1):INDEX(CTKetoan!$B$1:$B$1000,1000)) là dãy ô B1:B1000
công thức sẽ lấy dòng đầu tiên thỏa điều kiện trong file gởi cho bạn là dòng 22
- copy công thức xuống A8 công thức sẽ là:
=MATCH($H$2,(INDEX(CTKetoan!$B$1:$B$1000,A7+1):INDEX(CTKetoan!$B$1:$B$1000,1000)),0)+A7
(INDEX(CTKetoan!$B$1:$B$1000,A7+1):INDEX(CTKetoan!$B$1:$B$1000,1000)) là vùng tìm kiếm B23:B1000
nhưng đúng ra phải tìm từ dòng 1, nghĩa là đã bỏ 22 dòng đầu nên phải công thêm 22 ở cuối công thức (giá trị ô A7)
mẩu công thức nầy dùng để lập sổ cái sổ chi tiết và nhiều thứ nữa trong kế toán
 
Ok mình đã hiểu. Bạn có thể chỉ cho mình cách đối chiếu số phiếu được ko? Ý là tạo 1 sheet mới có cột số phiếu thì liệt kê toàn bộ số phiếu (không trùng nhau) lấy bên Sheet CTKetoan, cột giá trị lấy bên sheet CTKetoan và 1 cột giá trị lấy bên sheet CTVattu được không?
 
bạn tạo 1 sheet mới
lấy sheet ketoan: C7 nhập
Mã:
=IFERROR(INDEX(CTKetoan!$B$5:$B$73,MATCH(0,INDEX(COUNTIF([COLOR=#ff0000]$C$6:C6[/COLOR],CTKetoan!$B$5:$B$73),),0)),"")

lấy sheet vattu: D7 nhập
Mã:
=IFERROR(INDEX(CTVattu!$B$5:$B$73,MATCH(0,INDEX(COUNTIF([COLOR=#ff0000]$D$6:D6[/COLOR],CTVattu!$B$5:$B$73),),0)),"")
bạn để ý vị trí các ô màu đỏ, thay đổi địa chỉ khi nhập ô khác
 
Cảm ơn bạn rất nhiều. Quá tuyệt vời
 

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

Back
Top Bottom