Lại một bài toán trích xuất dữ liệu (1 người xem)

Liên hệ QC

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

ndu96081631

Huyền thoại GPE
Thành viên BQT
Super Moderator
Tham gia
5/6/08
Bài viết
30,703
Được thích
53,963
Có 1 bạn gữi file cho tôi nhờ giúp! Chi tiết yêu cầu nằm trong file. Các bạn giúp dùm nhé
 

File đính kèm

Có 1 bạn gữi file cho tôi nhờ giúp! Chi tiết yêu cầu nằm trong file.

Em gửi file đính kèm. Anh xem thử nhé! Đây cũng là một cách.

Tuy nhiên em góp ý một tí về danh mục.
Nên khai báo danh mục trước khi nhập liệu, tránh bị sai sót trong quá trình nhập liệu. Còn việc trích lọc ra duy nhất thì trên GPE mình có nhiều rồi. Anh nhắn dùm với bạn ấy như vậy nhé!
 

File đính kèm

Lần chỉnh sửa cuối:
Tại sheet BPP_BT, nếu chọn MÃ BÁOTất cả thì TUYẾN ĐƯỜNG chỉ có thể chọn Tất cả, chọn cái khác nó không ra gì?
Hình như có sai sót gì đó thì phải! Nhờ bạn xem lại giúp
 
Tại sheet BPP_BT, nếu chọn MÃ BÁOTất cả thì TUYẾN ĐƯỜNG chỉ có thể chọn Tất cả,chọn cái khác nó không ra gì?
Hình như có sai sót gì đó thì phải! Nhờ bạn xem lại giúp
Thế này thì cần gì phải trích xuất nữa, lấy luôn sheet nhập liệu mà in cho xong
  1. Dữ liệu trong sheet nhaplieu được sort như sau:
    • Short by: Mã báo
    • Then by : Tuyến đường
  2. boyxin trích xuất dữ liệu tại sheet BPP_BT
CÁC BÁC THAM KHẢO VÀ GÓP Ý THÊM
(Chưa hài lòng lắm về tốc độ xử lý )​
 

File đính kèm

Lần chỉnh sửa cuối:
Tại sheet BPP_BT, nếu chọn MÃ BÁOTất cả thì TUYẾN ĐƯỜNG chỉ có thể chọn Tất cả, chọn cái khác nó không ra gì?
Hình như có sai sót gì đó thì phải! Nhờ bạn xem lại giúp

Đúng là như vậy! Điều kiện Choose bên sheet nhập liệu sai với giá trị bằng 2. Anh tải lại file ở bài #2 nhé. Công thức cột REF bên sheet nhaplieu phải như thế này mới đúng:
=CHOOSE(DKLoc,IF(C6="","",MAX($L$5:L5)+1),IF(I6=VALUE(MID(TuyenLoc,FIND(" ",TuyenLoc,1)+1,LEN(TuyenLoc)-FIND(" ",TuyenLoc,1))),MAX($L$5:L5)+1,""),IF(C6=MaLoc,MAX($L$5:L5)+1,""),IF(AND(C6=MaLoc,I6=VALUE(MID(TuyenLoc,FIND(" ",TuyenLoc,1)+1,LEN(TuyenLoc)-FIND(" ",TuyenLoc,1)))),MAX($L$5:L5)+1,""))

Sorry anh nhé!
 
Lần chỉnh sửa cuối:
boyxin sort Dữ liệu trong sheet nhaplieu như sau:
  • Short by: Mã báo
  • Then by : Tuyến đường
Sau đó mới trích xuất dữ liệu tại sheet BPP_BT

ĐÂY LÀ BẢN ĐÃ TINH CHỈNH NAME ĐỂ TỐC ĐỘ XỬ LÝ NHANH (THẦN TỐC)
CÁC BÁC XEM VÀ GÓP Ý THÊM NHA​
 

File đính kèm

Tuy nhiên em góp ý một tí về danh mục.
Nên khai báo danh mục trước khi nhập liệu, tránh bị sai sót trong quá trình nhập liệu. Còn việc trích lọc ra duy nhất thì trên GPE mình có nhiều rồi. Anh nhắn dùm với bạn ấy như vậy nhé!

Cách của Ca_dafi cũng rất hay
Theo boyxin: sẽ hay hơn nếu bổ sung thêm
  1. List tuyến đường không bì thừa (hiện tại chỉ có tuyến 3,4,12) nhưng vẫn đảm bảo khi nhâp liệu thêm tuyến đường thì tu cập nhật trong List
  2. Khi Mã báo cáo chọn tất ca thi tuyến đường không cho chọn tất cả nữa
Một vài góp ý nho nhỏ theo ý kiến riêng của boyxin
 
Tôi thử rồi mà khi chọn tất cả thì trong bảng thông kê không được
 
Tôi thử rồi mà khi chọn tất cả thì trong bảng thông kê không được
  1. thử cái gì chọn tất cả ...
  2. thử ở chỗ nào?
Nếu là của tôi: xin nhắc lại là
  1. chọn Mã báo --> chọn tuyến
    • Nếu Mã báo = tất cả
    • Đố bạn chọn được tất cả các tuyến
  2. Không được chọn tuyến --> chọn mã báo --> +-+-+-++-+-+-++-+-+-+
 
Lần chỉnh sửa cuối:
Nhờ các bác xem lại cột STT trong sheet BPP_BT không trùng lại với cột STT trong sheet nhaplieu. Cột STT lấy theo tên khách hàng.
 
Nhờ các bác xem lại cột STT trong sheet BPP_BT không trùng lại với cột STT trong sheet nhaplieu. Cột STT lấy theo tên khách hàng.
  1. Sheet BPP_BT không lọc ra STT, mà tự đánh STT nên không trùng với sheet nhập liệu
  2. Khi lọc ra danh sách BPP_BT để theo dõi, in, báo cáo ... mà lấy STT từ bên sheet nhập liệu sang có hay bằng tự đánh STT như vầy không?
  3. Việc lấy các thông tin sang còn được, huống chi là còn cái STT, nhưng vì thấy không hay nên không lấy sang mà tự động đánh STT bên sheet BPP_TT đó thoai
 
Xin vui lòng cho hỏi về công thức: SUMPRODUCT(--(nhaplieu!$C$6:$C$23=$C7),--(nhaplieu!$I$6:$I$23=VALUE(SUBSTITUTE(E$6,"T",""))),(nhaplieu!$E$6:$E$23))
dấu -- dùng mục đích gì? và có thể giải thích dùm ý nghĩa cách dùng công thức này không ah!
Xin chân thành cám ơn.
 
Xin vui lòng cho hỏi về công thức: SUMPRODUCT(--(nhaplieu!$C$6:$C$23=$C7),--(nhaplieu!$I$6:$I$23=VALUE(SUBSTITUTE(E$6,"T",""))),(nhaplieu!$E$6:$E$23))
dấu -- dùng mục đích gì? và có thể giải thích dùm ý nghĩa cách dùng công thức này không ah!
Xin chân thành cám ơn.
Theo nhận định của 1 số ngừoi thì thêm dấu -- này vào mổi biểu thức sẽ làm cho tốc độ tính toán tăng lên... Thêm nữa, các phép so sánh nhaplieu!$C$6:$C$23=$C7 vân vân sẽ cho ra kết quả là TRUE hoặc FALSE (tùy theo so sánh đúng hay sai)... Thêm dấu -- vào sẽ biến TRUE, FALSE thành 1 hoặc 0 (có thể cộng trừ nhân chia tính toán đựoc)...
Có vậy thôi! Bạn bỏ dấu ấy đi cũng không có vấn đề. Trong 1 vài trừong hợp, nếu bỏ dấu -- thì phải nhân toàn bộ công thức cho số 1.

(Bạn cứ bỏ, nếu không ra kết quả thì nhân thêm 1 vào)
Thí nghiệm: Gõ chử TRUE vào cell A1, tại B1 bạn gõ công thức =--A1 sẽ cho kết quả = 1
 
Xin cho được hỏi:Để cột mã báo sẽ tự động hiển thị trong sheet nhucau nếu như trong sheet nhaplieu có, với điều kiện mã báo phải là duy nhất không trùng lập nhau và được tự động sắp xếp theo thứ tự tăng dần.
Phải làm như thế nào vậy? Nhờ các anh chị chỉ dẫn dùm, cám ơn!
 
Cảm ơn tất cả các bạn đã tận tình góp ý, chỉ dẫn cho tôi nhé! Nhất là bạn ndu96081631 đã post bài giúp. Nói thật là tôi không ngờ các bạn có thể nhiệt tình giúp đỡ và đưa ra giải pháp tốt đến thế. Nếu biết trước tôi đã thiết kế dữ liệu cho thật chuẩn để khi các bạn ra tay tôi đưa vào sử dụng luôn quá.hihi.. nói vui thôi chớ cũng không dám phương tiện đến thế đâu. Nhưng về phần công thức tôi gặp trở ngại do chưa rành sử dụng để ứng dụng nhưng tôi cũng đang học hỏi tìm tòi trên diễn đàn GPE. Nhưng nếu có được sự trợ giúp của các bạn thì còn gì bằng. Vì hiện tại là tôi cần phải hiểu ý nghĩa những công thức sau :
1/ =CHOOSE(DKLoc,IF(C9="","",MAX($K$5:K8)+1),IF(I9=VALUE(MID(TuyenLoc,FIND(" ",TuyenLoc,1)+1,LEN(TuyenLoc)-FIND(" ",TuyenLoc,1))),MAX($K$5:K8)+1,""),IF(C9=MaLoc,MAX($K$5:K8)+1,""),IF(AND(C9=MaLoc,I9=VALUE(MID(TuyenLoc,FIND(" ",TuyenLoc,1)+1,LEN(TuyenLoc)-FIND(" ",TuyenLoc,1)))),MAX($K$5:K8)+1,""))
Công thức này khi tôi sửa đổi lại trong sheet nhaplieu cột tuyến đường là chữ thì công thức trên phải như thế nào để không phân biệt là số hay chữ ? (VD: 4 hay bon đều được)
2/ =IF(AND(MAX(nhaplieu!$K:$K)>0,B11<MAX(nhaplieu!$K:$K)),ROW()-8,"")
Mong các bạn giải đáp thắc mắc hay gợi ý giúp tôi hiểu thêm về công thức. Xin chân thành cảm ơn!
 
1/ =CHOOSE(DKLoc,IF(C9="","",MAX($K$5:K8)+1),IF(I9=VALUE(MID(TuyenLoc,FIND(" ",TuyenLoc,1)+1,LEN(TuyenLoc)-FIND(" ",TuyenLoc,1))),MAX($K$5:K8)+1,""),IF(C9=MaLoc,MAX($K$5:K8)+1,""),IF(AND(C9=MaLoc,I9=VALUE(MID(TuyenLoc,FIND(" ",TuyenLoc,1)+1,LEN(TuyenLoc)-FIND(" ",TuyenLoc,1)))),MAX($K$5:K8)+1,""))
Công thức này khi tôi sửa đổi lại trong sheet nhaplieu cột tuyến đường là chữ thì công thức trên phải như thế nào để không phân biệt là số hay chữ ? (VD: 4 hay bon đều được)

Bạn để ý DKLoc có bốn giá trị chạy từ 1 đến 4.
Hàm Choose(Index_number, value1,[value2],[value3],[value4],.....) diễn giải như sau:
Chọn giá trị của biểu thức Choose căn cứ vào giá trị của DKLoc tương ứng với giá trị của các biểu thức sau đó (value1, value2, value3,value4.... )
Ở đây DKLoc có bốn giá trị 1,2,3,4 -->quan trọng là ta phải biết điều này, giá trị của index_number trong hàm choose phải là số nguyên bắt từ số 1.

Như vậy,
value1: IF(C9="","",MAX($K$5:K8)+1)
value2: IF(I9=VALUE(MID(TuyenLoc,FIND(" ",TuyenLoc,1)+1,LEN(TuyenLoc)-FIND(" ",TuyenLoc,1))),MAX($K$5:K8)+1,"")
value3: IF(C9=MaLoc,MAX($K$5:K8)+1,"")
value4: IF(AND(C9=MaLoc,I9=VALUE(MID(TuyenLoc,FIND(" ",TuyenLoc,1)+1,LEN(TuyenLoc)-FIND(" ",TuyenLoc,1)))),MAX($K$5:K8)+1,"")


Thay vì dùng hàm IF cho DKLoc, nếu DKLoc = 1 thì cho ra value1, nếu DKLoc=2 thì cho ra value 2....., thì ta dùng hàm Choose sẽ cho được nhiều điều kiện hơn IF, và công thức đễ kiểm soát hơn. Tuy nhiên, với điều kiện giá trị DKLoc phải là số nguyên và bắt đầu mang giá trị từ 1 trở lên..

Công thức này không phụ thuộc vào tuyến đường là số hay chữ, mà nó phụ thuộc vào công thức trong ô DKLoc. Nếu công thức trong ô DKloc trả về giá trị số thì OK, còn trả về giá trị khác số nguyên thì không dùng hàm choose được.





2/ =IF(AND(MAX(nhaplieu!$K:$K)>0,B11<MAX(nhaplieu!$K:$K)),ROW()-8,"")
Mong các bạn giải đáp thắc mắc hay gợi ý giúp tôi hiểu thêm về công thức.

Đây là công thức xếp thứ tự danh mục cần lọc ra. Hay nói cách khác là sắp xếp lại dữ liệu đã lọc ra từ bảng dữ liệu gốc (vì khi lọc, các dữ liệu thỏa điều kiện được lọc nằm rải rác tại nhiều dòng khác nhau).

IF(AND(MAX(nhaplieu!$K:$K)>0,B11<MAX(nhaplieu!$K:$K)
Có thể diễn giải như sau:
Nếu Max(cột K) >0 và ô B11<Max(Cột K)

thì:
=If(.....,ROW()-8,"")
trả về giá trị là giá trị số thứ tự của dòng hiện tại [Row()] trử đi 8 (Row()-8)

Đây là một cách đánh số thứ tự nhưng có giới hạn số thứ tự lớn nhất.
 
Lần chỉnh sửa cuối:
Cám ơn bạn ca_dafi đã trả lời.
Vậy các bạn cho biết với dkloc như thế thì sử dụng hàm if thay hàm choose để hiển thị khi gõ chữ trong cột tuyến đường có được không? --> công thức phải thay đổi như thế nào? Dĩ nhiên là khi lọc 4 và bốn phải khác nhau chớ không thể tính là một.
Mong được học hỏi từ các bạn!
 
Cám ơn bạn ca_dafi đã trả lời.
Vậy các bạn cho biết với dkloc như thế thì sử dụng hàm if thay hàm choose để hiển thị khi gõ chữ trong cột tuyến đường có được không? --> công thức phải thay đổi như thế nào? Dĩ nhiên là khi lọc 4 và bốn phải khác nhau chớ không thể tính là một.
Mong được học hỏi từ các bạn!

Chào bạn,
Mình đã khảng định việc dùng if hay choose không phụ thuộc vào việc bạn gõ chữ hay số trong ô tuyến đường, vấn đề là bạn đặt lại công thức cho ô DKLoc mà thôi!
Nếu bạn không muốn thay đổi công thức ở ô DKLoc thì bên sheet nhập liệu cột tuyến đường nếu bạn gõ chữ thì bên sheet BPP_BT ô lọc tuyến đường bạn cũng phải set validation là dạng chữ luôn.
 
Lần chỉnh sửa cuối:
Cám ơn bạn đã tận tình chỉ dẫn, nhưng biết nói như thế nào ta là mình chưa thông, mình đã sửa lại trong validation rồi mà vẫn không được, vậy đành để mình ngâm.... cứu lại cho kỹ. Hy vọng tìm ra đáp án.
 
Cám ơn bạn đã tận tình chỉ dẫn, nhưng biết nói như thế nào ta là mình chưa thông, mình đã sửa lại trong validation rồi mà vẫn không được, vậy đành để mình ngâm.... cứu lại cho kỹ. Hy vọng tìm ra đáp án.
Rất đơn giãn là bạn cứ sửa... khi cảm thấy chưa đựoc như ý thì cứ để nguyên như vậy và post file lên, nói rõ bạn muốn đạt được kết quả thế nào... Mọi ngừoi sẽ xem và giúp bạn!
 
Web KT

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

Back
Top Bottom