Tìm và đếm số lần xuất hiện của một giá trị đứng trước và sau một giá trị chỉ định

  • Thread starter Thread starter Khiemni
  • Ngày gửi Ngày gửi
Liên hệ QC

Khiemni

Thành viên mới
Tham gia
17/8/18
Bài viết
3
Được thích
2
Thưa các bác
Như tiêu đề thì em đang đau đầu với việc lọc dữ liệu có điều kiện nhờ các bạn cao tay chỉ bảo
Với mỗi số máy ( cột barcode ) khi điều chỉnh sẽ có một giá trị Timing khác nhau
Ví dụ với giá trị OK là 1.1 thì ngoài 1.1 sẽ là NG
Trong bảng dữ liệu thì có cột CHECK OK hay NG rồi nên việc lọc máy đã OK và NG ko thành vấn đề
tuy nhiên để phải phân tích xem trước giá trị 1.1 thì sẽ xuất hiện giá trị nào, giá trị đó xuất hiện bao nhiêu lần trong dãy số đó ( với điều kiện là phải trước 1.1 )
Sau giá trị 1.1 thì sẽ là giá trị nào xuất hiện và tần suất xuất hiện trong một dãy số barcode ( với điều kiện là phải sau giá trị 1.1 )


VD.png
 

File đính kèm

Thưa các bác
Như tiêu đề thì em đang đau đầu với việc lọc dữ liệu có điều kiện nhờ các bạn cao tay chỉ bảo
Với mỗi số máy ( cột barcode ) khi điều chỉnh sẽ có một giá trị Timing khác nhau
Ví dụ với giá trị OK là 1.1 thì ngoài 1.1 sẽ là NG
Trong bảng dữ liệu thì có cột CHECK OK hay NG rồi nên việc lọc máy đã OK và NG ko thành vấn đề
tuy nhiên để phải phân tích xem trước giá trị 1.1 thì sẽ xuất hiện giá trị nào, giá trị đó xuất hiện bao nhiêu lần trong dãy số đó ( với điều kiện là phải trước 1.1 )
Sau giá trị 1.1 thì sẽ là giá trị nào xuất hiện và tần suất xuất hiện trong một dãy số barcode ( với điều kiện là phải sau giá trị 1.1 )


View attachment 202068
Thử:
Mã:
E8=IFERROR(OFFSET($B$1,AGGREGATE(15,6,ROW($B$8:$B$16)/(FIND(1.1&" ",$B$8:$B$16&" ")>0)/(COUNTIF($E$7:$E7,$B$7:$B$15)=0),1)-2,),"")
F8=COUNTIFS($B$7:$B$15,E8,$B$8:$B$16,1.1)
H8=IFERROR(OFFSET($B$1,AGGREGATE(15,6,ROW($B$8:$B$16)/(FIND(1.1&" ",$B$8:$B$16&" ")>0)/(COUNTIF($H$7:$H7,$B$9:$B$17)=0),1),),"")
I8=COUNTIFS($B$8:$B$16,H8,$B$7:$B$15,1.1)
Enter, fill xuống
Xem file kèm.

Thân
 

File đính kèm

Thử:
Mã:
E8=IFERROR(OFFSET($B$1,AGGREGATE(15,6,ROW($B$8:$B$16)/(FIND(1.1&" ",$B$8:$B$16&" ")>0)/(COUNTIF($E$7:$E7,$B$7:$B$15)=0),1)-2,),"")
F8=COUNTIFS($B$7:$B$15,E8,$B$8:$B$16,1.1)
H8=IFERROR(OFFSET($B$1,AGGREGATE(15,6,ROW($B$8:$B$16)/(FIND(1.1&" ",$B$8:$B$16&" ")>0)/(COUNTIF($H$7:$H7,$B$9:$B$17)=0),1),),"")
I8=COUNTIFS($B$8:$B$16,H8,$B$7:$B$15,1.1)
Enter, fill xuống
Xem file kèm.

Thân
cảm ơn bác rất nhiều. đang gấp mà có bác ra tay giúp đỡ . quả này kịp thời cung cấp dữ liệu báo cáo lỗi rồi.
mới học excel nên chắc để em chia từng mục công thức bác làm cho để em nghiên cứu học tập để thành của mình mới đc
 
Thử:
Mã:
E8=IFERROR(OFFSET($B$1,AGGREGATE(15,6,ROW($B$8:$B$16)/(FIND(1.1&" ",$B$8:$B$16&" ")>0)/(COUNTIF($E$7:$E7,$B$7:$B$15)=0),1)-2,),"")
F8=COUNTIFS($B$7:$B$15,E8,$B$8:$B$16,1.1)
H8=IFERROR(OFFSET($B$1,AGGREGATE(15,6,ROW($B$8:$B$16)/(FIND(1.1&" ",$B$8:$B$16&" ")>0)/(COUNTIF($H$7:$H7,$B$9:$B$17)=0),1),),"")
I8=COUNTIFS($B$8:$B$16,H8,$B$7:$B$15,1.1)
Enter, fill xuống
Xem file kèm.

Thân
Em góp vui nha Anh :p
G8=IFERROR(INDEX($B$1:$B$16,AGGREGATE(15,6,ROW($B$8:$B$16)/FIND("1.1 ",($B$8:$B$16&" ")),ROWS($G$8:G8))-1),"")
Nếu tìm liền kề sau thì thay -1 thành +1

P/S: Nếu dữ liệu của chủ thớt không có giá trị "1.12" thì suýt nữa em lại ẩu rồi.
 
Em góp vui nha Anh :p
G8=IFERROR(INDEX($B$1:$B$16,AGGREGATE(15,6,ROW($B$8:$B$16)/FIND("1.1 ",($B$8:$B$16&" ")),ROWS($G$8:G8))-1),"")
Nếu tìm liền kề sau thì thay -1 thành +1
P/S: Nếu dữ liệu của chủ thớt không có giá trị "1.12" thì suýt nữa em lại ẩu rồi.
Không phải vô duyên vô cớ mà anh bắt buộc phải dùng hàm COUNTIF(), tại sao phải làm vậy!? Đố em biết.
Khà khà khà
;););)
 
Lần chỉnh sửa cuối:
Không phải vô duyên vô cớ mà anh bắt buộc phải dùng hàm COUNTIF(), tại sao phải làm vậy!? Đố em biết.
Khà khà khà
;););)
Em nhìn thì hiểu dùng countif để nếu 1.1 xuất hiện nhiều lần thì sẽ chỉ lấy giá trị 1.1 xuất hiện gần nhất, tránh việc trả về giá trị liền kề trước/sau của "1.1" tìm thấy đầu tiên.
Vì vậy nên em tính dùng tham số K của hàm small, k sẽ nhảy tăng dần 1,2,3 ... và sẽ tránh được việc này.
Nhờ Anh giải thích chi tiết hơn dụng ý của Anh ạ :P
 
Em nhìn thì hiểu dùng countif để nếu 1.1 xuất hiện nhiều lần thì sẽ chỉ lấy giá trị 1.1 xuất hiện gần nhất, tránh việc trả về giá trị liền kề trước/sau của "1.1" tìm thấy đầu tiên.
Vì vậy nên em tính dùng tham số K của hàm small, k sẽ nhảy tăng dần 1,2,3 ... và sẽ tránh được việc này.
Nhờ Anh giải thích chi tiết hơn dụng ý của Anh ạ :p
Dùng để loại trùng kết quả.
Em dòm qua bảng giá trị đứng sau 1.1 có 2 thằng 0.5, nhưng chỉ liệt kê mỗi 1 thằng thôi.
Bởi vậy, cố gắng tập dần việc "hiểu người" rồi mới "hiểu ta"...Lúc đó việc xử lý sẽ hoàn thiện.
Chúc em cuối tuần vui
/-*+//-*+//-*+/
 
Dùng để loại trùng kết quả.
Em dòm qua bảng giá trị đứng sau 1.1 có 2 thằng 0.5, nhưng chỉ liệt kê mỗi 1 thằng thôi.
Bởi vậy, cố gắng tập dần việc "hiểu người" rồi mới "hiểu ta"...Lúc đó việc xử lý sẽ hoàn thiện.
Chúc em cuối tuần vui
/-*+//-*+//-*+/
À em đã hiểu rồi. Cảm ơn Anh.
Chúc Anh cuối tuần vui vẻ.
 
Tôi hàng bao nhiêu năm kinh nghiệm rồi, khó nhớ , hãy dũng hàn tự tạo đi bạn.
 
Tôi hàng bao nhiêu năm kinh nghiệm rồi, khó nhớ , hãy dũng hàn tự tạo đi bạn.
1/ hàng bao nhiêu năm kinh nghiệm: Có con số cụ thể không bạn!?
2/ hàn tự tạo: Nếu được thì bạn đem file bạn đã viết hàn của bạn tạo giúp đỡ chủ thớt luôn đi, để thấy được cái cái lợi ích của nó. Hóng bạn đó.
:D
 
Lần chỉnh sửa cuối:
1/ hàng bao nhiêu năm kinh nghiệm: Có con số cụ thể không bạn!?
2/ hàn tự tạo: Nếu được thì bạn đem file bạn đã viết hàn của bạn tạo giúp đỡ chủ thớt luôn đi, để thấy được cái cái lợi ích của nó. Hóng bạn đó.
:D
Đôi khi cũng sai chính tae bạn à không nên như vậy'
Cảm ơn bạn đã sửa lỗi chính tả!
 
Đôi khi cũng sai chính tae bạn à không nên như vậy'
Cảm ơn bạn đã sửa lỗi chính tả!
Tôi không ý ngạo bạn đâu, vì thật tình tôi muốn chủ thớt có sự góp ý với bài giải cụ thể. Nếu như bạn đã có kinh nghiệm về VBA thì cố gắng giúp bạn mình bằng "xác bài" hỗ trợ hẵn hoi.

Cũng như bạn thấy đó, lắm lúc bạn phải "bực mình" vì gặp phải những lời nói rỗng tuếch, lại không có bài để tham khảo. Trường hợp gặp phải đó, người viết ra chẳng những không tôn trọng chủ thớt cùng mọi thành viên đang mong mỏi thu thập kiến thức để học hỏi, mà còn xem thường chính bản thân mình nữa.

Cho nên, tôi thật tình đang hóng và tin bạn sẽ có giải pháp bằng VBA cho chủ thớt là vậy.

Chúc bạn ngày vui cuối tuần
/-*+//-*+//-*+/
 
Giờ em đang học từng nhóm lệnh các bác ạ. Vất vả phết mà thôi cố gắng vậy.
 
Giờ em đang học từng nhóm lệnh các bác ạ. Vất vả phết mà thôi cố gắng vậy.
Cho dù bạn biết sử dụng hết các hàm trong công thức đó nhưng e rằng cũng khó nắm bắt công thức đó nhanh được (có lẽ hơi bị lâu đó).

Công thức mảng lồng mảng, thêm thủ thuật xử lý dữ liệu...
 
1/ hàng bao nhiêu năm kinh nghiệm: Có con số cụ thể không bạn!?
2/ hàn tự tạo: Nếu được thì bạn đem file bạn đã viết hàn của bạn tạo giúp đỡ chủ thớt luôn đi, để thấy được cái cái lợi ích của nó. Hóng bạn đó.
:D
1/ Liền sau "hàng bao nhiêu năm", người ta có cho biết là "khó nhớ". Bạn hỏi con số cụ thể thì lấy đâu ra? Vả lại, biết đâu từ hàng ấy có nghĩa là "đầu hàng"
2/ hàn là tiếng gọi trại của từ hòm, khi người ta muốn kiêng cữ. Hàn tự tạo mà đem giúp ai, người ta tưởng rủa, họ dí cho té phở.
 
Web KT

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

Back
Top Bottom