Hàm lọc dữ liệu có điều kiện

  • Thread starter sihuan95
  • Ngày gửi
S

sihuan95

Guest
10/8/17
7
0
1
33
E làm bên kho, quản lý hàng tồn, có nhiều sản phẩm bên e quản lý bằng 1 mã vạch, nhưng 1 số quản lý bằng 2 mã vạch. Mà khi e quét vào file thì bắt buộc phải quét liên tục, sp nào mà có 2 mã nó sẽ nối tiếp nhau nên sau đó phải chỉnh lại những sp mà có 2 mã vạch sao cho nó cùng 1 hàng để dễ quản lý, nhưng làm thủ công nó cực quá, hiện tại có mấy chục cái thì dc, mai mốt tới mấy trăm cái lận. Ko biết anh/chị ở đây có cách nào giải quyết dc ko ạ. E đã thử dùng hàm, IF, rồi Advance Filter các kiểu nhưng vẫn cực, ko đơn giản dc tí nào, thêm nữa những sp mà 1 mã, 2 mã nó vào ngẫu nhiên nữa. E xin cám ơn trước!
Bên dưới là file ví dụ, mã chính là mã bắt đầu bằng chữ M, còn mã phụ đôi khi có là mã 2, dãy số ngẫu nhiên
https://drive.google.com/open?id=0B-3yGgStejJ7VkhjN1hBSWtHR2s
Sheet1 là file gốc khi bắn hàng/quét mã vạch
Sheet2 sẽ là kết quả e cần nhận dc, và thường e toàn dùng tay và kết hợp 2 3 lần hàm để mới ra dc sheet2. Từ Sheet1 e phải dùng 2 lần if, rồi Go to special=>Blank, Delete row
Mã 1 bắt đầu bằng MPDS-... là mã luôn luôn có của 1 sp nào đó
Mã 2 là mã đôi khi có ở 1 số sp, thường là chuỗi ký tự ngẫu nhiên, bắt buộc phải nằm ngang hàng với mã 1 mới quản lý dc

Mà khi e e bắn hàng, bắt buộc e phải bắn liên tục thành ra nếu xuất hiện mã 2 thì nó sẽ nằm chung cột với mã 1 tương ứng ngay bên dưới luôn, nên e phải dùng nhiều cách thủ công như đã nói ở trên để chuyển mã 2 qua bên phải và khớp với mã 1
Nhờ anh/chị giúp với ạ
 
Sửa lần cuối:
Khóa học Quản trị dòng tiền
N

nguoiconxunui

Khách vãng lai
29/6/04
1,280
215
63
Bình Định
aso2pc.co.cc
Bài viết của bạn trừu tượng quá, có cách nào cụ thể không?
1. Dữ liệu đầu vào là gì?
2. Dữ liệu mong muốn cuối cùng là gì?
 
  • Like
Reactions: ngheanktv
S

sihuan95

Guest
10/8/17
7
0
1
33
Bài viết của bạn trừu tượng quá, có cách nào cụ thể không?
1. Dữ liệu đầu vào là gì?
2. Dữ liệu mong muốn cuối cùng là gì?
tức là khi quét mã vạch của sp để lưu file thì có những sp nào mà có 2 mã vạch, nó sẽ chạy liên tục trong 1 cột. Cái e cần là sau khi quét mã xong, có cách nào mà trích xuất 1 cột là mã vạch 1, còn cột 2 xuất ra mã vạch 2 tương ứng cho sp nào mà có 2 mã
 
K

Kin7

Cao cấp
8/5/15
5,196
987
113
tức là khi quét mã vạch của sp để lưu file thì có những sp nào mà có 2 mã vạch, nó sẽ chạy liên tục trong 1 cột. Cái e cần là sau khi quét mã xong, có cách nào mà trích xuất 1 cột là mã vạch 1, còn cột 2 xuất ra mã vạch 2 tương ứng cho sp nào mà có 2 mã
Nó trích ra như thế là đúng rồi.
 
S

sihuan95

Guest
10/8/17
7
0
1
33
Nó trích ra như thế là đúng rồi.
Cái như ảnh là tự e làm bằng tay, ý có cách làm nào để áp dụng nó bằng hàm hay công thức gì ko âý
 
K

Kin7

Cao cấp
8/5/15
5,196
987
113
Cái như ảnh là tự e làm bằng tay, ý có cách làm nào để áp dụng nó bằng hàm hay công thức gì ko âý
Ý nói nó trích ra như máy làm là đúng rồi.
Bạn đăng bài ko đầu ko cuối.
Muốn làm theo ý bạn tự đi mà làm lấy.
Có ai hiểu làm thế để làm gì đâu.
 
N

nguoiconxunui

Khách vãng lai
29/6/04
1,280
215
63
Bình Định
aso2pc.co.cc
Cái như ảnh là tự e làm bằng tay, ý có cách làm nào để áp dụng nó bằng hàm hay công thức gì ko âý
Quy luật mã 1 là gì và mã 2 là gì? nhớ là phải có quy luật nhận diện thì mới làm được.
 
The Hoang

The Hoang

Kế Toán Dạo
Thành viên BQT
Quản lý cao cấp
11/8/05
2,416
286
83
Sài Gòn - Phan Thiết
E làm bên kho, quản lý hàng tồn, có nhiều sản phẩm bên e quản lý bằng 1 mã vạch, nhưng 1 số quản lý bằng 2 mã vạch. Mà khi e quét vào file thì bắt buộc phải quét liên tục, sp nào mà có 2 mã nó sẽ nối tiếp nhau nên sau đó phải chỉnh lại những sp mà có 2 mã vạch sao cho nó cùng 1 hàng để dễ quản lý, nhưng làm thủ công nó cực quá, hiện tại có mấy chục cái thì dc, mai mốt tới mấy trăm cái lận. Ko biết anh/chị ở đây có cách nào giải quyết dc ko ạ. E đã thử dùng hàm, IF, rồi Advance Filter các kiểu nhưng vẫn cực, ko đơn giản dc tí nào, thêm nữa những sp mà 1 mã, 2 mã nó vào ngẫu nhiên nữa. E xin cám ơn trước!
Bên dưới là file ví dụ, mã chính là mã bắt đầu bằng chữ M, còn mã phụ đôi khi có là mã 2, dãy số ngẫu nhiên

XvA0_Q_By5bNfGsTnAIYbjLQREwbq_b-DY3qUr_S3wM
Chào bạn,
Bạn làm như sau nhé
C1= if(left(A1,1)="M",A1,"")
D1=if(left(A2,1)="M","",A2)
kéo công thức xuống sẽ ra kết quả gần giống. Phần còn lại chắc bạn xử lý được rồi nhỉ?
good luck
 
  • Like
Reactions: noname_89
Kaspersky

Kaspersky

Love Love Love
16/7/12
773
138
43
www.thuthuatexcel.com
Chào bạn,
Bạn làm như sau nhé
C1= if(left(A1,1)="M",A1,"")
D1=if(left(A2,1)="M","",A2)
kéo công thức xuống sẽ ra kết quả gần giống. Phần còn lại chắc bạn xử lý được rồi nhỉ?
good luck
Như bác là đúng ý bác thớt rồi. Hoặc có thể dùng cái đếm ký tự nếu bằng 10 chẳng hạn thì là cái mã dài, bằng 5 là cái ngắn nhỉ, vì em thấy mã vạch có ký tự bằng nhau
 
  • Like
Reactions: The Hoang
The Hoang

The Hoang

Kế Toán Dạo
Thành viên BQT
Quản lý cao cấp
11/8/05
2,416
286
83
Sài Gòn - Phan Thiết
Như bác là đúng ý bác thớt rồi. Hoặc có thể dùng cái đếm ký tự nếu bằng 10 chẳng hạn thì là cái mã dài, bằng 5 là cái ngắn nhỉ, vì em thấy mã vạch có ký tự bằng nhau
làm việc với Excel thì điều quan trọng nhất là nhìn vào cấu trúc của dữ liệu mình có mà tìm ra được cách làm tương ứng phù hợp với khả năng của mỗi người. :)
 
  • Like
Reactions: Kaspersky
S

sihuan95

Guest
10/8/17
7
0
1
33
Chào bạn,
Bạn làm như sau nhé
C1= if(left(A1,1)="M",A1,"")
D1=if(left(A2,1)="M","",A2)
kéo công thức xuống sẽ ra kết quả gần giống. Phần còn lại chắc bạn xử lý được rồi nhỉ?
good luck

Như bác là đúng ý bác thớt rồi. Hoặc có thể dùng cái đếm ký tự nếu bằng 10 chẳng hạn thì là cái mã dài, bằng 5 là cái ngắn nhỉ, vì em thấy mã vạch có ký tự bằng nhau
dạ e đã cũng làm tương tự như anh Hoàng vậy, nhưng có điều nó tạo ra khoảng trống. Nhưng sao nó lại ko nhận là ô trống vì khi E dùng chức năng Go to special => Blank, thì nó ko chọn tới dc. E phải nhấp đúp vào ô trống, xong enter thì nó mới nhận. E làm vậy để dùng chức năng Delete Row đó annh
 
Kaspersky

Kaspersky

Love Love Love
16/7/12
773
138
43
www.thuthuatexcel.com
@sihuan95
Bạn gửi cái file cụ thể của bạn lên đây cho mọi người làm luôn xem sao bạn.
 
S

sihuan95

Guest
10/8/17
7
0
1
33
@sihuan95
Bạn gửi cái file cụ thể của bạn lên đây cho mọi người làm luôn xem sao bạn.
https://drive.google.com/open?id=0B-3yGgStejJ7VkhjN1hBSWtHR2s
Sheet1 là file gốc khi bắn hàng/quét mã vạch
Sheet2 sẽ là kết quả e cần nhận dc, và thường e toàn dùng tay và kết hợp 2 3 lần hàm để mới ra dc sheet2. Từ Sheet1 e phải dùng 2 lần if, rồi Go to special=>Blank, Delete row
Mã 1 bắt đầu bằng MPDS-... là mã luôn luôn có của 1 sp nào đó
Mã 2 là mã đôi khi có ở 1 số sp, thường là chuỗi ký tự ngẫu nhiên, bắt buộc phải nằm ngang hàng với mã 1 mới quản lý dc

Mà khi e e bắn hàng, bắt buộc e phải bắn liên tục thành ra nếu xuất hiện mã 2 thì nó sẽ nằm chung cột với mã 1 tương ứng ngay bên dưới luôn, nên e phải dùng nhiều cách thủ công như đã nói ở trên để chuyển mã 2 qua bên phải và khớp với mã 1
Nhờ anh/chị giúp với ạ
 
The Hoang

The Hoang

Kế Toán Dạo
Thành viên BQT
Quản lý cao cấp
11/8/05
2,416
286
83
Sài Gòn - Phan Thiết
khi E dùng chức năng Go to special => Blank, thì nó ko chọn tới dc. E phải nhấp đúp vào ô trống, xong enter thì nó mới nhận. E làm vậy để dùng chức năng Delete Row đó annh
vì bản chất nó có chứa công thức chứ nó không phải là ô trống nên đâu thể dùng Go To Special --> blank được bạn.
Thay vào đó dùng Filter để delete các ô "blank" là được nhé. Tuy nhiên, trước khi delete thì phải chuyển nó thành value hết chứ không để công thức nhé.
good luck
 
S

sihuan95

Guest
10/8/17
7
0
1
33
vì bản chất nó có chứa công thức chứ nó không phải là ô trống nên đâu thể dùng Go To Special --> blank được bạn.
Thay vào đó dùng Filter để delete các ô "blank" là được nhé. Tuy nhiên, trước khi delete thì phải chuyển nó thành value hết chứ không để công thức nhé.
good luck
chuyển bằng cách nào ạ? Nếu dùng hàm nữa thì nó nhiều lắm rồi, sợ thêm hàm nữa bị rối
 
The Hoang

The Hoang

Kế Toán Dạo
Thành viên BQT
Quản lý cao cấp
11/8/05
2,416
286
83
Sài Gòn - Phan Thiết
@sihuan95 Mình đã nói rất rõ ở trên thay vì bạn dùng Go To Special --> Blank để loại bỏ những dòng trống sau khi đã thực hiện công thức của mình thì bạn cũng loại trừ những dòng trống đấy bằng cách sử dụng Filter để chọn những dòng trống rồi delete là xong
 
N

nguoiconxunui

Khách vãng lai
29/6/04
1,280
215
63
Bình Định
aso2pc.co.cc
https://drive.google.com/open?id=0B-3yGgStejJ7VkhjN1hBSWtHR2s
Sheet1 là file gốc khi bắn hàng/quét mã vạch
Sheet2 sẽ là kết quả e cần nhận dc, và thường e toàn dùng tay và kết hợp 2 3 lần hàm để mới ra dc sheet2. Từ Sheet1 e phải dùng 2 lần if, rồi Go to special=>Blank, Delete row
Mã 1 bắt đầu bằng MPDS-... là mã luôn luôn có của 1 sp nào đó
Mã 2 là mã đôi khi có ở 1 số sp, thường là chuỗi ký tự ngẫu nhiên, bắt buộc phải nằm ngang hàng với mã 1 mới quản lý dc

Mà khi e e bắn hàng, bắt buộc e phải bắn liên tục thành ra nếu xuất hiện mã 2 thì nó sẽ nằm chung cột với mã 1 tương ứng ngay bên dưới luôn, nên e phải dùng nhiều cách thủ công như đã nói ở trên để chuyển mã 2 qua bên phải và khớp với mã 1
Nhờ anh/chị giúp với ạ
Vậy cột mã thứ 2 chắc chắn sẽ tồn tại ô không có dữ liệu, vì các SP có 2 mã là ngẫu nhiên?

Cái này viết một thủ tục VBA, bấm một phát là ngon lành ngay.
 
Kaspersky

Kaspersky

Love Love Love
16/7/12
773
138
43
www.thuthuatexcel.com
@nguoiconxunui Viết đi bác. Em nghiên cứu lui tới cũng chả có cách nào dùng hàm mà làm như yêu cầu bác ấy được. Kiểu chi cũng phải lọc thủ công xóa dòng trống hết.
 
S

sihuan95

Guest
10/8/17
7
0
1
33
@sihuan95 Mình đã nói rất rõ ở trên thay vì bạn dùng Go To Special --> Blank để loại bỏ những dòng trống sau khi đã thực hiện công thức của mình thì bạn cũng loại trừ những dòng trống đấy bằng cách sử dụng Filter để chọn những dòng trống rồi delete là xong
@nguoiconxunui Viết đi bác. Em nghiên cứu lui tới cũng chả có cách nào dùng hàm mà làm như yêu cầu bác ấy được. Kiểu chi cũng phải lọc thủ công xóa dòng trống hết.
Vậy cột mã thứ 2 chắc chắn sẽ tồn tại ô không có dữ liệu, vì các SP có 2 mã là ngẫu nhiên?

Cái này viết một thủ tục VBA, bấm một phát là ngon lành ngay.
vậy trong công thức if(left(A1)="M",A1,""), có cách nào chuyển kết quả của ô có dạng "" đó thành 1 ô trống/Blank ko ạ? Nếu dc thì e sẽ dùng Go to special luôn, còn ko chắc phải dùng cách lọc ô như của anh Thế Hoàng.
 
The Hoang

The Hoang

Kế Toán Dạo
Thành viên BQT
Quản lý cao cấp
11/8/05
2,416
286
83
Sài Gòn - Phan Thiết
@nguoiconxunui Viết đi bác. Em nghiên cứu lui tới cũng chả có cách nào dùng hàm mà làm như yêu cầu bác ấy được. Kiểu chi cũng phải lọc thủ công xóa dòng trống hết.
Không cần phải vba đao to búa lớn làm gì, hàm vẫn có thể ra đc kết quả mong muốn, bạn nghiên cứu thêm tý sẽ ra :)
 

Xem nhiều

Webketoan Zalo OA