Lọc và tình Tổng các dữ liệu Trùng (1 người xem)

Liên hệ QC

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

chipxinh

Thành viên mới
Tham gia
17/12/07
Bài viết
23
Được thích
4
Xin chào các anh chị của giải pháp Excel.
Hôm nay là sinh nhật của em, cũng là ngày em tham gia CLB GPE này.
Hiên em đang có 1 bài toán lọc dữ liệu khá phức tạp (đối với em), mong anh chị có thế giúp em.
Yêu cầu bài toán như thế này:
Tại Sheet Du lieu lọc các dữ liệu trùng nhau thì lấy 1 dòng sang Sheet Baocao và tính tổng Số Lượng, Thành Tiền của các dữ liệu trùng đó.

Em gửi file kèm theo, mong anh chị hồi âm sớm.
Chân thành cám ơn anh chị và GPE

EM ko biết mình pót bài có đúng nơi ko, nếu sai thì mong các anh chuyển dùm em. Đừng xóa bài của em nha.
 
Lần chỉnh sửa cuối:
Trước hết xin được chào mừng bạn đã tham gia diễn đàn. Chúc bạn sinh nhật vui vẻ và hạnh phúc.
Có một vài thắc mắc trong câu hỏi của bạn: Hiện ví dụ của bạn gửi lên là muốn lọc theo sản phẩm. Nếu cùng 1 sản phẩm có nhiều nhân viên thì sao? Cùng một sản phẩm mà số phiếu không liên tục thì thể hiện thế nào?
 
Hiện ví dụ của bạn gửi lên là muốn lọc theo sản phẩm. Nếu cùng 1 sản phẩm có nhiều nhân viên thì sao? Cùng một sản phẩm mà số phiếu không liên tục thì thể hiện thế nào?
Em ko lọc theo sản phẩm, em muốn lọc tất cả du liệu trên 1 dòng (trừ Số lượng và thành tiền ra). Nếu giống nhau thì lấy sang bên Sheet Baocao.

Em gửi file thêm các trường hợp anh/chị vừa nêu ra.
 

File đính kèm

Xin chào các anh chị của giải pháp Excel.
Hôm nay là sinh nhật của em, cũng là ngày em tham gia CLB GPE này.
Hiên em đang có 1 bài toán lọc dữ liệu khá phức tạp (đối với em), mong anh chị có thế giúp em.
Yêu cầu bài toán như thế này:
Tại Sheet Du lieu lọc các dữ liệu trùng nhau thì lấy 1 dòng sang Sheet Baocao và tính tổng Số Lượng, Thành Tiền của các dữ liệu trùng đó.

cách giới thiệu hay nhỉ, CHÚC MỪNG bạn đến với GPE

mới xem file new của bạn nhưng cũng như

SA_DQ đã viết:
1* Phiếu PC014 hoàn toàn giống với cụm 1-5 sau bạn không gôm vô luôn vậy?
2* Phiếu PC013-13 có trường [NhanVien] khác nhau, sao bạn lại gôm chung với nhau vậy?
Bài toán này không khó bằng để hiểu được nó!

Bạn xem lại cho nó thống nhất đi nhe, mọi TV sẽ giúp ....
 
Yêu cầu bài toán

Em xin nói rõ lại yêu cầu của bài toán:
Em có 1 Sheet dữ liệu có rất nhiều dữ liệu trùng nhau, Trừ cột Số liên, ThuếThuế #, còn lại thì em muốn lọc tất cả các dòng có dữ liệu trùng nhau thì lấy 1.
Trong các dữ liệu trùng nhau ta có:

Số liên : Thì được ghi từ đầu đến cuối.
vd: Ta có 5 dữ liệu trùng nhau, nhưng có số liên là 01,02,03,04,05 thì ta lọc ra 1 cái và số liên được ghi lại là 01_05.

Thuế và Thuế #: Là tổng của các dữ liệu trùng nhau.
vd: Ta có 5 dữ liệu trùng nhau và có Thuế lần lượt là 1,2,3,4,5 thì ta lọc ra 1 cái và Thuế được ghi lại là 14 (Tương tự cho Thuê # )

Em xin gữi file thực để các anh chị xem.
Chân thành cám ơn!
xxx
 

File đính kèm

Chipxinh ơi nếu các bản ghi có số liệu trùng đúng theo yêu cầu của bạn nhưng số liên ko liền kề nhau thì bên sheet Baocao trình bày kiểu gì?
 
Theo tôi bài này nếu dùng công thức thật sự không phải là dễ ăn. Chỉ riêng việc lọc thành một danh sách rút gọn theo loại (S,F...) đòi hỏi phải rất am hiểu hàm INDIRECT, SMALL và ROW(). Hơn nữa theo yêu cầu của chíp xinh, số phiếu cùng loại phải được liệt kê nữa, vấn đề sẽ phức tạp hơn...
 
Chipxinh ơi nếu các bản ghi có số liệu trùng đúng theo yêu cầu của bạn nhưng số liên ko liền kề nhau thì bên sheet Baocao trình bày kiểu gì?
trong file em gửi cũng có vd này, cụ thể là A3 và A15 của Sheet baocao

Tiêu chí để gộp là [SoPhieuThu] giống nhau, phải không?!
ko chỉ riêng Số Phiêu Thu mà tất cả các cột (trừ số liên, thuế, thuế #) nêu giống nhau thì gộp lại.
Tóm lại mình có 12cột (trừ số liên, thuế, thuế #) thì còn 9 cột. Nếu dữ liệu ở 9 cột này giống nhau thì lấy ra 1 và số liên, thuế, thuế # được tình như sau:
Thuế #, còn lại thì em muốn lọc tất cả các dòng có dữ liệu trùng nhau thì lấy 1.
Trong các dữ liệu trùng nhau ta có:

Số liên : Thì được ghi từ đầu đến cuối.
vd: Ta có 5 dữ liệu trùng nhau, nhưng có số liên là 01,02,03,04,05 thì ta lọc ra 1 cái và số liên được ghi lại là 01_05.

Thuế và Thuế #: Là tổng của các dữ liệu trùng nhau.
vd: Ta có 5 dữ liệu trùng nhau và có Thuế lần lượt là 1,2,3,4,5 thì ta lọc ra 1 cái và Thuế được ghi lại là 14 (Tương tự cho Thuê # )
Dòng nào ko trùng (nghĩa là chỉ có dòng duy nhất) thì cũng được đưa sang Sheet Baocao để theo dỏi.

Cám ơn mọi người đã góp ý.
Thân!
 
Mình hiểu thế này có dúng ko:
Có 12 cột trừ 3 cột cần tính ra thì 9 cột còn lại nếu dữ liệu trùng thì lọc lấy 1 sang Bacao và tình 3 cột còn lại.

Để mình thử lọc, còn tính 3 cột còn lại chắc bạn chờ các anh GPE giúp. (Mình cũng mới làm quen với EXCEL à)
Các anh xin giúp dùm bài này nha, cho em học hỏi với. hihi

Thân!
 
Mình hiểu thế này có dúng ko:
Có 12 cột trừ 3 cột cần tính ra thì 9 cột còn lại nếu dữ liệu trùng thì lọc lấy 1 sang Bacao và tình 3 cột còn lại.

Vâng dúng rồi ạ, nếu ko có 3 cột (Số liên,Thuế, Thuế#) em nghĩ dùng Data -> Filter thì nó sẽ ra liền. Nhưng vấn đề là tính 3 cột mới khó.
Mong các anh chị GPE giúp em bài này.
Chân thành cám ơn tất cả!
Chíp xxx
 
Vâng dúng rồi ạ, nếu ko có 3 cột (Số liên,Thuế, Thuế#) em nghĩ dùng Data -> Filter thì nó sẽ ra liền. Nhưng vấn đề là tính 3 cột mới khó.
Mong các anh chị GPE giúp em bài này.
Chân thành cám ơn tất cả!
Chíp xxx

nói chỉ là 3 cột thì vẫn filter tốt bằng cách dùng cột phụ là hợp của 3 cột này VD- thêm cột phụ H, lọc cho 3 cột B, C, E -> tại ô H3=B3&C3&E3 -> rồi lọc filter cột H,

Nhưng bài của bạn nó khác - chắc phải dùng VBA thôi, hoặc thêm 2 cột phụ -> bạn thử suy nghĩ xem

và tham khảo thử post#7 ở Link sau:
http://www.giaiphapexcel.com/forum/showthread.php?p=47629#post47629
.
 
Em đã xem file theo đường dẩn của anh Tiger gửi, em thấy bài đó cũng hơi giống bài của em về cách lọc dữ liệu trùng.
Nhưng bài của bạn nó khác - chắc phải dùng VBA thôi, hoặc thêm 2 cột phụ ->
Em nghĩ nên dùng VBA vì nó sẽ xử ly nhanh hơn và hay hơn, vì file gốc của em khoảng 3000 dòng.
Mong anh giúp em bài này.

Chân thành cám ơn anh và GPE.

Chip xxx
 
Mệt với Cô/Cậu ChipXinh này thật đấy! Tại bảng 'DuLieu' Chíp ta gộp thành 12 dòng;
Mình mất cả nữa buổi gộp thành như vậy;
Sau đó nhìn lại sheets('BaoCao') thì hỡi ơi: 15 dòng;
Các dòng khác nhau tăng thêm này là do khác dữ liệu trong cột cuối: nhân viên!

Hãy nói rõ lần cuối xem gộp theo bảng nào, hỡi Chip Xĩn?!

Cám ơn anh đã giúp đở, chắc file của em bi sai. Em gửi lại anh file khác.
Chắc chắn 1 điều là Baocao sẽ ít dòng hơn Du lieu.
Gộp bảng Du lieu thành Bảng Baocao.
Dường như anh vẩn chưa rõ bài toán, anh cứ hỏi em sẽ giải thích.
Thân!
 

File đính kèm

Dòng 9 và 10 bên sheet Baocao thấy giống y nhau (chỉ khác số liên) sao lại lọc qua luôn thế nhỉ? Lý ra chỉ lấy 1 em, đúng ko?
Dòng 13 và 14 cũng vậy...
Khó hiểu quá
ANH TUẤN
 
Lần chỉnh sửa cuối:
Dòng 9 và 10 bên sheet Baocao thấy giống y nhau (chỉ khác số liên) sao lại lọc qua luôn thế nhỉ? Lý ra chỉ lấy 1 em, đúng ko?
Dòng 13 và 14 cũng vậy...
Khó hiểu quá
hihi anh Tuan nhin ko kỹ rồi, dòng 9,10 khác tên nhân vien mà anh. (13,14 cũng vậy)
Ý của chipxinh là du lieu > 1 dòng có 9 côt đều giống nhau thì lọc ra va gộp lại.
vd:
Từ dòng 3 dến dòng 7 (Trừ số liên, thuế, thuế#) thì tất cả đều giống nhau., thì lấy ra. Và cột số liên dc ghi lại là 69-73, thuếthuế # được lấy tổng thành 279,4 và 70.

Em thì hiểu ý của Chip nhưng lại ko biết làm, nên ko thể giúp bạn ấy.
Nhờ các anh ra tay giúp dùm.
Thân!!
 
Mất cả buổi luôn!

PHP:
Option Explicit
Dim iJ As Long

Sub TrichRecords()
 Dim lRow As Long, iCol As Integer
 Dim Thue0, Thue9, Rng As Range
 Dim KhHang As String, NhVien As String, HoaDon As String
 
 Sheets("BaoCao").Select:       Range(Cells(18, 1), Cells(99, 12)).ClearContents
 
 SXep
 lRow = Range("A65432").End(xlUp).Row + 1
 iCol = Range("IV1").End(xlToLeft).Column
 For iJ = 2 To lRow
        If Cells(iJ, 3) <> KhHang Or NhVien <> Cells(iJ, 12) Then
            KhHang = Cells(iJ, 3):      NhVien = Cells(iJ, 12)
            If Not Rng Is Nothing Then
                Sheets("BaoCao").Range("J" & Sheets("BaoCAo").Range("J65432").End(xlUp).Row) = Thue0
                Sheets("BaoCao").Range("k" & Sheets("BaoCAo").Range("k65432").End(xlUp).Row) = Thue9
                If HoaDon <> Cells(iJ, 4).Offset(-1) Then
                    Sheets("BaoCao").Range("D" & Sheets("BaoCAo").Range("D65432").End(xlUp).Row) = _
                        Sheets("BaoCao").Range("D" & Sheets("BaoCAo").Range("D65432").End(xlUp).Row) & _
                        "-" & Chr(13) & Cells(iJ, 4).Offset(-1)
                End If
            End If
            
            Set Rng = Range(Cells(iJ, 1), Cells(iJ, iCol))
            Thue0 = Range("J" & iJ):        Thue9 = Range("K" & iJ)
            HoaDon = Range("D" & iJ)
            Rng.Copy Destination:=Sheets("BaoCao").Range("A" & Sheets("BaoCao") _
                .Range("A65432").End(xlUp).Row + 1)
        Else
            Set Rng = Union(Rng, Range(Cells(iJ, 1), Cells(iJ, iCol)))
            Thue0 = Thue0 + Range("J" & iJ):       Thue9 = Thue9 + Range("K" & iJ)
        End If
        
 Next iJ
End Sub
Mã:
[B]Sub SXep()[/B]    Sheets("DaTa").Select
    Columns("A:L").Select
    Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Key2:=Range("B2") _
        , Order2:=xlAscending, Key3:=Range("C2"), Order3:=xlAscending, Header:= _
        xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal, DataOption2:=xlSortNormal, DataOption3:= _
        xlSortNormal
[B]End Sub[/B]
 

File đính kèm

Lần chỉnh sửa cuối:
Hix... cuối cùng em cũng nhận được đáp án. Chân thành cám ơn anh và mọi người.
Có lẽ do em nêu yêu cầu bài toán ko rõ, nên dẩn đến tình trạng mất thời gian của mọi người. Em xin lổi và sẽ cố gắng hơn.
File của anh SA_DQ đã đúng với yêu cầu của em, nhưng sao Sheet Baocao lại có 2 Bảng vậy anh? Và anh có thể làm thêm 2 nút Button bên Sheet Data là: Tạo Báo cáo và Xóa Baocao.
Để khi em đổ dữ liệu vào Sheet data rồi nhấn nút,\.

Chân thành cám ơn các anh và GPE rất nhiều.

Thân!
Chip xxx
 

Em xem file thấy vẫn chưa được hoàn thiện lắm, anh đã giúp bạn chipxinh thì cho trót. Tụi em còn học hỏi.
Đọc code của anh em vẩn chưa thông. hix
Thân!


 
Lần chỉnh sửa cuối:
Sửa số 18 => 2
2*/ Đã thực hiện bước 1 thì bước 2 chỉ cần 1 nút lệnh mà thôi!

Em đã thử sữa như anh nói rồi sao vẩn ra 2 bảng vậy anh, mong anh sữa giúp và làm 2 button. Em yếu về macro lắm.

Chân thành cám ơn mọi người đã giúp đở và cho ý kiến.
Chip xxx
 
File của anh gửi rất hay, đúng với yêu cầu của bài toán.
Nhưng có điều em muốn anh sữa giúp cột D (số phiếu), em muốn khi xuất sang Bacao thì nó được ghi là: 0169811702074 - 77 thay vì ghi 0169811702074 - 0169811702077.
Vì khi em xuất ra phiếu thì dài quá.

Mong anh giúp dù, chân thành cám ơn anh.

Chíp xxx
 
File của anh gửi đúng với yêu cầu của bài toán.
Nhưng có điều em muốn anh sữa giúp cột D (số phiếu), em muốn khi xuất sang Bacao thì nó được ghi là: 0169811702074 - 77 thay vì ghi 0169811702074 - 0169811702077. Vì khi em xuất ra phiếu thì dài quá. Mong anh giúp dù, chân thành cám ơn anh. Chíp xxx
Thứ nhất, anh không có sữa! Anh chỉ có chữa mà thôi.
Thứ đến: Mình sẽ hướng dẫn thôi, cũng sẽ không chữa & gởi lại nữa đâu, nha!

+ Từ sheets("DuLieu") có ít nhất 3 cách đến được macro đã trích dẫn ở bài trên.
* Bằng menu;
* Bằng tổ hợp phím tắt;
* Bằng ngay cái ComboBox trên trang tính;
Sau khi đến đó, bạn sẽ thấy dòng lệnh:
PHP:
           Sheets("BaoCao").Range("D" & Sheets("BaoCAo").Range("D65432").End(xlUp).Row) = _ 
                 Sheets("BaoCao").Range("D" & Sheets("BaoCAo").Range("D65432").End(xlUp).Row) & _ 
                  "-" & Chr(13) & Cells(iJ, 4).Offset(-1)
+ Bạn để con trỏ ngay đầu hàng cuối của dòng lệnh này & thực hiện phím {ENTER} để tạo dòng mới.
+ Dấu nháy con trỏ vẫn để ở đầu dòng có mệnh đề "-" & CHR(13) . . . . Bạn nhập thêm dấu nháy đơn vô hàng lệnh này! Mục đích dấu nháy đơn thường để vô hiệu lực dòng lệnh; Nhưng ở đây ta làm vậy để lưu những gì sợ mất!
+ Tiếp tục, ta đưa con trỏ lên dòng mới tạo & gỏ câu lệnh sau:
PHP:
 "-" & Right( Cells(iJ, 4).Offset(-1),2)
( Có nghĩa là không lấy hết, chỉ lấy 2 kí tự cuối thôi!)
+ Công việc xong, bấm lưu. Để an tâm, bạn vô menu Debug & bấm trỏ chuột lên dòng đầu tiên của menu này; Nếu Ễcl không phản đối gì là iên tâm lớn!
+ Bước cuối, tất nhiên là cho macro chạy 1 lần, để xem hiệu quả công việc.


Chờ tin vui từ bạn! }}}}} )(&&@@
 
Chip... nhờ, tigertiger áy náy chưa giúp được

Hôm nay lên GPE thấy bác SA_DQ giúp rùi, hay quá

Giờ mình chữa lại 1 chút cho hợp với Chip... hy vọng Bác SA_DQ đồng ý:

- dùng sheets temp -> đế Sheet Data ko đổi
- và thêm 3 cái vụn vặt khác

chúc thành công
 

File đính kèm

CÁC BẠN DÚP MÌNH VỚI
MÌNH MUỐN CHỨNG TỪ CỘT B CHỨNG TỪ TỰ ĐỘNG NHẢY SỐ KHI :
1) CÙNG 1 KHÁCH HÀNG XUẤT BÁN NHIỀU MẶT HÀNG CÙNG 1 NGÀY CHO RA 1 SỐ PHIẾU XUẤT KÈM THÁNG : X001/01
2) CÙNG 1 KHÁCH HÀNG NHẬP NHIỀU MẶT HÀNG CÙNG 1 NGÀY CHO RA 1 SỐ PHIẾU NHẬP KÈM THÁNG : X001/01
3)QUA THÁNG MỚI PHIẾU LẠI BẮT ĐẦU TỪ PHIẾU 001 + THÁNG ĐÓ: NOO1/02
MÌNH CẢM ƠN
 

File đính kèm

CÁC BẠN DÚP MÌNH VỚI
MÌNH MUỐN CHỨNG TỪ CỘT B CHỨNG TỪ TỰ ĐỘNG NHẢY SỐ KHI :
1) CÙNG 1 KHÁCH HÀNG XUẤT BÁN NHIỀU MẶT HÀNG CÙNG 1 NGÀY CHO RA 1 SỐ PHIẾU XUẤT KÈM THÁNG : X001/01
2) CÙNG 1 KHÁCH HÀNG NHẬP NHIỀU MẶT HÀNG CÙNG 1 NGÀY CHO RA 1 SỐ PHIẾU NHẬP KÈM THÁNG : X001/01
3)QUA THÁNG MỚI PHIẾU LẠI BẮT ĐẦU TỪ PHIẾU 001 + THÁNG ĐÓ: NOO1/02
MÌNH CẢM ƠN
Hình thức nêu yêu cầu của bạn toàn bộ viết hoa, nên đã phạm "Nội quy diễn đàn" Mục II.3.
Xem:

Bạn điều chỉnh lại bài viết, khắc sẽ có lời giải đáp cho bạn.

Thân
 
Bài này hai em @hocexcel_1991 và @huonglien1901 có thể giải quyết, nên làm thử.

Gợi ý giải thuật:
  • Truy lục 'số phiếu' các dòng trên, với điều kiện nếu có cùng ngày, cùng mã khách, và cùng cột Nợ (tức Nhập) hoặc cùng cột Có (tức Xuất) bằng 156, thì lấy số phiếu đó.
  • Nếu không tìm thấy (báo lỗi), thì thực hiện đếm có bao nhiêu khách 'loại bỏ dữ liệu trùng lắp', với điều kiện: cùng "tháng năm" (dùng "my"), và cùng cột Nợ (tức Nhập) hoặc cùng cột Có (tức Xuất) bằng 156, ghép thêm vào đầu phiếu: ký tự "N" nếu dạng phiếu Nhập, hoặc "X" nếu là dạng phiếu xuất, và ghép đuôi ký tự "/ tháng" tương ứng.
Chúc hai em thành công.

Thân
 
Bài này hai em @hocexcel_1991 và @huonglien1901 có thể giải quyết, nên làm thử.

Gợi ý giải thuật:
  • Truy lục 'số phiếu' các dòng trên, với điều kiện nếu có cùng ngày, cùng mã khách, và cùng cột Nợ (tức Nhập) hoặc cùng cột Có (tức Xuất) bằng 156, thì lấy số phiếu đó.
  • Nếu không tìm thấy (báo lỗi), thì thực hiện đếm có bao nhiêu khách 'loại bỏ dữ liệu trùng lắp', với điều kiện: cùng "tháng năm" (dùng "my"), và cùng cột Nợ (tức Nhập) hoặc cùng cột Có (tức Xuất) bằng 156, ghép thêm vào đầu phiếu: ký tự "N" nếu dạng phiếu Nhập, hoặc "X" nếu là dạng phiếu xuất, và ghép đuôi ký tự "/ tháng" tương ứng.
Chúc hai em thành công.

Thân
Em làm theo cách em hiểu không biết có đúng không? Em chưa hiểu lắm về cách đánh số thứ tự của chủ thớt.
Mong anh chỉ thêm
Mã:
=IF(OR(D5=156,E5=""),"N","X")&TEXT(IF(IFERROR(MONTH(C4),)<>MONTH(C5),1,IF(OR(D5=156,E5=""),COUNT(1/(MATCH(IF(MONTH($C$5:C5)=MONTH(C5),IF((D$5:D5=156)+(E$5:E5=""),$F$5:F5)),$F$5:F5,)=ROW($1:$100))),COUNT(1/(MATCH(IF(MONTH($C$5:C5)=MONTH(C5),IF((E$5:E5=156)+(D$5:D5=""),$F$5:F5)),$F$5:F5,)=ROW($1:$100))))),"000")&"/"&TEXT(C5,"mm")
 

File đính kèm

Em làm theo cách em hiểu không biết có đúng không? Em chưa hiểu lắm về cách đánh số thứ tự của chủ thớt.
Mong anh chỉ thêm
Mã:
=IF(OR(D5=156,E5=""),"N","X")&TEXT(IF(IFERROR(MONTH(C4),)<>MONTH(C5),1,IF(OR(D5=156,E5=""),COUNT(1/(MATCH(IF(MONTH($C$5:C5)=MONTH(C5),IF((D$5:D5=156)+(E$5:E5=""),$F$5:F5)),$F$5:F5,)=ROW($1:$100))),COUNT(1/(MATCH(IF(MONTH($C$5:C5)=MONTH(C5),IF((E$5:E5=156)+(D$5:D5=""),$F$5:F5)),$F$5:F5,)=ROW($1:$100))))),"000")&"/"&TEXT(C5,"mm")

Công thức chưa đạt rồi bạn ơi
Và khi tôi sửa chỗ này thì công thức cũng chưa được
1590742955094.png
Nói đến bài này bạn ấy có 2 vấn đề đó là đánh phiếu tay bị sai và mã Khách hàng không thống nhất.
Anh Mạnh ROXREX và Anh Thanh Nam KHang sao lại cùng 1 mã khách hàng được?
 

File đính kèm

  • 1590742556411.png
    1590742556411.png
    407 KB · Đọc: 15
Lần chỉnh sửa cuối:
CÁC BẠN DÚP MÌNH VỚI
MÌNH MUỐN CHỨNG TỪ CỘT B CHỨNG TỪ TỰ ĐỘNG NHẢY SỐ KHI :
1) CÙNG 1 KHÁCH HÀNG XUẤT BÁN NHIỀU MẶT HÀNG CÙNG 1 NGÀY CHO RA 1 SỐ PHIẾU XUẤT KÈM THÁNG : X001/01
2) CÙNG 1 KHÁCH HÀNG NHẬP NHIỀU MẶT HÀNG CÙNG 1 NGÀY CHO RA 1 SỐ PHIẾU NHẬP KÈM THÁNG : X001/01
3)QUA THÁNG MỚI PHIẾU LẠI BẮT ĐẦU TỪ PHIẾU 001 + THÁNG ĐÓ: NOO1/02
MÌNH CẢM ƠN
Bạn đặt phiếu bằng tay mà cũng còn sai tùm lum. Mình ko sử dụng được số phiếu mà bạn đặt để tham khảo được.
Bài này mời bạn xem file sau.(File không cần sắp sếp theo ngày tháng)
Bài này hai em @hocexcel_1991 và @huonglien1901 có thể giải quyết, nên làm thử.

Gợi ý giải thuật:
  • Truy lục 'số phiếu' các dòng trên, với điều kiện nếu có cùng ngày, cùng mã khách, và cùng cột Nợ (tức Nhập) hoặc cùng cột Có (tức Xuất) bằng 156, thì lấy số phiếu đó.
  • Nếu không tìm thấy (báo lỗi), thì thực hiện đếm có bao nhiêu khách 'loại bỏ dữ liệu trùng lắp', với điều kiện: cùng "tháng năm" (dùng "my"), và cùng cột Nợ (tức Nhập) hoặc cùng cột Có (tức Xuất) bằng 156, ghép thêm vào đầu phiếu: ký tự "N" nếu dạng phiếu Nhập, hoặc "X" nếu là dạng phiếu xuất, và ghép đuôi ký tự "/ tháng" tương ứng.
Chúc hai em thành công.

Thân
Em thấy khó ở chỗ phiếu sang tháng mới phải đánh số lại từ đầu, và 1 ngày có 1 khách vừa mua vừa bán anh ạ
Nếu bài này sort ngày tháng và nhập liệu theo kiểu nhập hết phần nhập, rồi mới sang phần xuất thì dễ viết công thức hơn.
 

File đính kèm

Lần chỉnh sửa cuối:
Em làm theo cách em hiểu không biết có đúng không? Em chưa hiểu lắm về cách đánh số thứ tự của chủ thớt.
Mong anh chỉ thêm
Mã:
=IF(OR(D5=156,E5=""),"N","X")&TEXT(IF(IFERROR(MONTH(C4),)<>MONTH(C5),1,IF(OR(D5=156,E5=""),COUNT(1/(MATCH(IF(MONTH($C$5:C5)=MONTH(C5),IF((D$5:D5=156)+(E$5:E5=""),$F$5:F5)),$F$5:F5,)=ROW($1:$100))),COUNT(1/(MATCH(IF(MONTH($C$5:C5)=MONTH(C5),IF((E$5:E5=156)+(D$5:D5=""),$F$5:F5)),$F$5:F5,)=ROW($1:$100))))),"000")&"/"&TEXT(C5,"mm")
Gần được rồi đó em, chỉ thiếu phần trích lục lại số phiếu như phần 1 giải thuật anh nêu. Em xem kết quả sẽ ra như cột B file đính kèm.
Bạn đặt phiếu bằng tay mà cũng còn sai tùm lum. Mình ko xử dụng được số phiếu mà bạn đặt để tham khảo được.
Bài này mời bạn xem file sau

Em thấy khó ở chỗ phiếu sang tháng mới phải đánh số lại từ đầu, và 1 ngày có 1 khách vừa mua vừa bán anh ạ
Nếu bài này sort ngày tháng và nhập liệu theo kiểu nhập hết phần nhập, rồi mới sang phần xuất thì dễ viết công thức hơn.
Mặc kệ tên khách là gì, mình cứ việc bám căn cứ trên mã khách mà tính toán.
Việc đánh số lại từ đầu, và cùng ngày vừa mua, vừa bán như giải thuật anh nêu phần 2: tức nhờ đếm loại bỏ dữ liệu trùng lắp theo điều kiện mà làm được, bởi vậy trong giải thuật anh có bôi đen nhấn mạnh là điều kiện "Tháng và năm" (nhiều khi so sánh chỉ tháng 1 không thôi, thì nó gom cả tháng của năm 2019, 2020, 2021... mà tính toán), tức dùng Text(...,"my") rồi, còn điều kiện hoặc bên Nợ/ hoặc bên Có = 156 thì lúc đếm nó sẽ tự phân ra. Vd: đến ngày 03/02 có dữ liệu mới phát sinh, mà tháng 1 đã lập phiếu ở trên rồi, nhờ điều kiện "tháng năm" mà nó chỉ đếm trong tháng đó thôi, do có mình nó thì là 1, giả sử phát sinh thêm 1 khách nữa liền kề dưới cùng tháng năm nữa, thì lúc đó nó đếm là 2, 1 và 2 là kết quả đếm số lượng khách, cũng là số phiếu mình muốn lấy đó em.

Hai em đã đầu tư suy nghỉ tốt, cố gắng chút nữa, bám theo giải thuật anh nêu sẽ ra.

Chúc hai em thành công
 

File đính kèm

Gần được rồi đó em, chỉ thiếu phần trích lục lại số phiếu như phần 1 giải thuật anh nêu. Em xem kết quả sẽ ra như cột B file đính kèm.

Mặc kệ tên khách là gì, mình cứ việc bám căn cứ trên mã khách mà tính toán.
Việc đánh số lại từ đầu, và cùng ngày vừa mua, vừa bán như giải thuật anh nêu phần 2: tức nhờ đếm loại bỏ dữ liệu trùng lắp theo điều kiện mà làm được, bởi vậy trong giải thuật anh có bôi đen nhấn mạnh là điều kiện "Tháng và năm" (nhiều khi so sánh chỉ tháng 1 không thôi, thì nó gom cả tháng của năm 2019, 2020, 2021... mà tính toán), tức dùng Text(...,"my") rồi, còn điều kiện hoặc bên Nợ/ hoặc bên Có = 156 thì lúc đếm nó sẽ tự phân ra. Vd: đến ngày 03/02 có dữ liệu mới phát sinh, mà tháng 1 đã lập phiếu ở trên rồi, nhờ điều kiện "tháng năm" mà nó chỉ đếm trong tháng đó thôi, do có mình nó thì là 1, giả sử phát sinh thêm 1 khách nữa liền kề dưới cùng tháng năm nữa, thì lúc đó nó đếm là 2, 1 và 2 là kết quả đếm số lượng khách, cũng là số phiếu mình muốn lấy đó em.

Hai em đã đầu tư suy nghỉ tốt, cố gắng chút nữa, bám theo giải thuật anh nêu sẽ ra.

Chúc hai em thành công
Anh ơi. Có chỗ này vẫn chưa đạt được ạ? Nếu em sửa dòng 12 thành phiếu nhập thì vẫn chưa đánh số được đúng ạ
1590803073610.png
 
CÁC BẠN DÚP MÌNH VỚI
MÌNH MUỐN CHỨNG TỪ CỘT B CHỨNG TỪ TỰ ĐỘNG NHẢY SỐ KHI :
1) CÙNG 1 KHÁCH HÀNG XUẤT BÁN NHIỀU MẶT HÀNG CÙNG 1 NGÀY CHO RA 1 SỐ PHIẾU XUẤT KÈM THÁNG : X001/01
2) CÙNG 1 KHÁCH HÀNG NHẬP NHIỀU MẶT HÀNG CÙNG 1 NGÀY CHO RA 1 SỐ PHIẾU NHẬP KÈM THÁNG : X001/01
3)QUA THÁNG MỚI PHIẾU LẠI BẮT ĐẦU TỪ PHIẾU 001 + THÁNG ĐÓ: NOO1/02
MÌNH CẢM ƠN
Dữ liệu phải xếp thứ tự theo thời gian
Mã:
B5 =IFERROR(LOOKUP(2,1/($C$4:C4=C5)/(($D$4:D4=156)=(D5=156))/($F$4:F4=F5),$B$4:B4),IF(D5=156,"N","X")&TEXT(IFERROR(MID(LOOKUP(2,1/(MONTH($C$4:C4)=MONTH(C5))/(($D$4:D4=156)=(D5=156)),$B$4:B4),2,3),0)+1,"000")&"/"&TEXT(MONTH(C5),"00"))
Copy xuống
 

File đính kèm

CÁC BẠN DÚP MÌNH VỚI
MÌNH MUỐN CHỨNG TỪ CỘT B CHỨNG TỪ TỰ ĐỘNG NHẢY SỐ KHI :
1) CÙNG 1 KHÁCH HÀNG XUẤT BÁN NHIỀU MẶT HÀNG CÙNG 1 NGÀY CHO RA 1 SỐ PHIẾU XUẤT KÈM THÁNG : X001/01
2) CÙNG 1 KHÁCH HÀNG NHẬP NHIỀU MẶT HÀNG CÙNG 1 NGÀY CHO RA 1 SỐ PHIẾU NHẬP KÈM THÁNG : X001/01
3)QUA THÁNG MỚI PHIẾU LẠI BẮT ĐẦU TỪ PHIẾU 001 + THÁNG ĐÓ: NOO1/02
MÌNH CẢM ƠN
Góp ý cho bạn: Bạn mới tham gia diễn đàn thì nên đọc và chấp hành nội quy, cụ thể.
1/ Không nên viết hoa trong cả bài viết.
2/ Không nên chen ngang Topic của người khác khi không có cùng chủ đề. Nên mở Topic mới để được mọii thành viên giúp được tập trung hơn.
3/ Không nên viết một câu hỏi nhiều lần hay gửi cùng một câu hỏi trong nhiều box khác nhau,
Cụ thể bạn đã hỏi tại bài 11 của Link sau: Làm sao để nhập dữ liệu vào phiếu xuất và phiếu nhập thì dữ liệu tự động điền vào sheet tổng hợp xuất nhập!
4/ Đọc lại nội quy để hiểu.

A_Noiquy.JPG
 
Dữ liệu phải xếp thứ tự theo thời gian
Mã:
B5 =IFERROR(LOOKUP(2,1/($C$4:C4=C5)/(($D$4:D4=156)=(D5=156))/($F$4:F4=F5),$B$4:B4),IF(D5=156,"N","X")&TEXT(IFERROR(MID(LOOKUP(2,1/(MONTH($C$4:C4)=MONTH(C5))/(($D$4:D4=156)=(D5=156)),$B$4:B4),2,3),0)+1,"000")&"/"&TEXT(MONTH(C5),"00"))
Copy xuống
Cách của anh gọn hơn nhiều hén, khỏi đếm trùng chi mắc công.

Chúc anh ngày vui.
/-*+//-*+//-*+/
 
Cách của anh gọn hơn nhiều hén, khỏi đếm trùng chi mắc công.

Chúc anh ngày vui.
/-*+//-*+//-*+/
B5 =IFERROR(LOOKUP(2,1/($C$4:C4=C5)/(($D$4:D4=156)=(D5=156))/($F$4:F4=F5),$B$4:B4),IF(D5=156,"N","X")&TEXT(IFERROR(MID(LOOKUP(2,1/(MONTH($C$4:C4)=MONTH(C5))/(($D$4:D4=156)=(D5=156)),$B$4:B4),2,3),0)+1,"000")&"/"&TEXT(MONTH(C5),"00"))
báo lỗi chỗ bôi đậm bạn ơi
 
cho mình hỏi khi làm hàm trả kết quả là không là sao, muốn kiểm tra sai ở đâu thì làm cách nào
 
cho mình hỏi khi làm hàm trả kết quả là không là sao, muốn kiểm tra sai ở đâu thì làm cách nào
Bạn đang hỏi về bài đánh số thứ tự của bạn hay bài nào vậy? Muốn thắc mắc file nào? Công thức của ai thì trích dẫn người đó
Theo mình thấy thì bài của bạn đã được giải quyết xong rồi
 
Mình thay công thức mà hàm cho kết quả số "0"​
Chào bạn, mình xin có vài lời cùng bạn:
1/ Đầu tiên là bạn đã chen ngang Topic của người khác khi không có cùng chủ đề.
2/ Hình như trong các bài của bạn quá hiếm phần xã giao (nếu không muốn nói là hoàn toàn không có).
3/ Câu này của bạn: (Mình thay công thức mà hàm cho kết quả số "0") giống một lời thông báo, mà cũng chẳng biết là thông báo cho ai và để làm gì.
4/ Nội dung bài viết của bạn viết chữ in toàn bộ, các anh em ở đây góp ý mà bạn cũng không sửa, vậy thử hỏi có ai muốn sửa bài cho bạn nữa không nhỉ.
Rất mong bạn rút kinh nghiệm và tích cực tham gia để diễn đàn ngày càng phát triển.
Thân.
 
Bạn đang hỏi về bài đánh số thứ tự của bạn hay bài nào vậy? Muốn thắc mắc file nào? Công thức của ai thì trích dẫn người đó
Theo mình thấy thì bài của bạn đã được giải quyết xong rồi
Bạn đang hỏi về bài đánh số thứ tự của bạn hay bài nào vậy? Muốn thắc mắc file nào? Công thức của ai thì trích dẫn người đó
Theo mình thấy thì bài của bạn đã được giải quyết xong rồi
Bạn đang hỏi về bài đánh số thứ tự của bạn hay bài nào vậy? Muốn thắc mắc file nào? Công thức của ai thì trích dẫn người đó
Theo mình thấy thì bài của bạn đã được giải quyết xong rồi
cho mình hỏi khi làm hàm trả kết quả là không là sao, muốn kiểm tra sai ở đâu thì làm cách nào
cho mình hỏi khi làm hàm trả kết quả là không là sao, muốn kiểm tra sai ở đâu thì làm cách nào
 

File đính kèm

1/ Không ai đặt công thức tại 1 dòng giữa tháng như bạn làm cả. Bạn để công thức từ dòng đầu tiên ngày 01/06/2020 nhé
2/ công thức cột D & E của bạn đang sử dụng cột B =IF(LEFT(B910,1)="X",156,"") bạn đặt công thức ở cột D & E với mục đích gì? Vì đặt như thế sẽ bị tính thành vòng lặp. Nên paste value lại cột D & E nhé.
1592207781636.png
3/ Chẳng hiểu bạn đánh tay kiểu gì mà dòng 896 lại là X04/06 được.
 

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

Back
Top Bottom