Hỏi cách sắp thứ tự ưu tiên trong excel (5 người xem)

Liên hệ QC

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

khongchothithoi

Thành viên mới
Tham gia
17/10/13
Bài viết
18
Được thích
4
Chào các bác!
Em đang muốn làm file thứ tự sản xuất tự động trên excel.
Biết được từng mã ngày nào lắp lên, ngày nào hạ xuống, ngày nào vừa lắp lên rồi hạ xuống trong ngày.
Nhưng khi tổng hợp theo ngày, ko làm sao cho excel hiểu thứ tự mã nào sản xuất trước, rồi đến mã nào.

Nhờ các bác xem file và cho em xin cao kiến ạ.
Em xin cảm ơn và hậu tạ!!! :p:p:p
 

File đính kèm

Chào các bác!
Em đang muốn làm file thứ tự sản xuất tự động trên excel.
Biết được từng mã ngày nào lắp lên, ngày nào hạ xuống, ngày nào vừa lắp lên rồi hạ xuống trong ngày.
Nhưng khi tổng hợp theo ngày, ko làm sao cho excel hiểu thứ tự mã nào sản xuất trước, rồi đến mã nào.

Nhờ các bác xem file và cho em xin cao kiến ạ.
Em xin cảm ơn và hậu tạ!!! :p:p:p
Thử:
Mã:
E43=IFERROR(OFFSET($B$17,MOD(AGGREGATE(15,6,MATCH(E$18:E$29,$F$37:$F$40,)*10^4+ROW($1:$13),ROW($A1)),10^4),),"")
Enter, Fill xuống, xong copy qua phải.
Xem file kèm. hihi ^o^
 

File đính kèm

Thử:
Mã:
E43=IFERROR(OFFSET($B$17,MOD(AGGREGATE(15,6,MATCH(E$18:E$29,$F$37:$F$40,)*10^4+ROW($1:$13),ROW($A1)),10^4),),"")
Enter, Fill xuống, xong copy qua phải.
Xem file kèm. hihi ^o^
Cảm ơn bác đã giúp, nhưng sao em mở file phần công thức ko ra kết quả gì nhỉ? ( trắng như trường hợp error ) :(
 

File đính kèm

Chưa xét điều kiện "Máy" :p
Cảm ơn anh @HieuCD nhắc nhở, không xem đến yêu cầu có ghi trong file:
(nếu trong 1 ngày có nhiều mã UP/DOWN thì ưu tiên mã cùng máy trước , sau đó sang máy khác, nếu có máy vừa có mã UP/DOWN vừa có mã UP thì máy đó chạy sau cùng (máy ở cột A ))
Vậy phải thêm điều kiện, nên công thức thành:
Mã:
E43=IFERROR(OFFSET($B$17,MOD(SMALL(IFERROR((MATCH(E$18:E$29,$F$37:$F$40,)+IF($A$18:$A$29=IFERROR(LOOKUP(2,1/("UP"=E$18:E$29),$A$18:$A$29),""),10,))*10^4+ROW($1:$12),""),ROW($A1)),10^4),),"")
Kết thúc công thức nhấn Ctrl+Shift+Enter.
Chủ thớt xem file kèm. hihi ^o^
 

File đính kèm

Lần chỉnh sửa cuối:
Cảm ơn bác nhiều nhiều nhé, vừa down file mới về thấy ngon rồi, để em ngâm cứu công thức của bác :D
Bác ở đâu hôm nào em mời cafe :p
Cảm ơn về "gu" thưởng thức các hàm - công thức như so với cao lương, mỹ tửu của bạn, hihi ^o^!
Chỉ cần bạn hiểu rõ và vận dụng tốt công thức cho công việc, thì sự hữu dụng của công thức chính là món quà làm anh em GPE vui rồi! không làm phiền bạn mời uống café đâu!

Ở đây, tôi muốn nói thêm chút về công thức: nếu như bạn "nhìn được" kết quả, tức máy của bạn đang sử dụng Excel 2007, bạn nên nâng cấp lên phiên bản excel cao hơn để có thể học được thêm một số hàm hữu dụng và các tiện ích khác nữa.

Chúc bạn học tập vui với anh em GPE.
hihi ^o^
 
Cảm ơn các bác GPE nhiều nhiều nhé! Excel tuyệt vời thật :D
 
Cảm ơn anh @HieuCD nhắc nhở, không xem đến yêu cầu có ghi trong file:

Vậy phải thêm điều kiện, nên công thức thành:
Mã:
E43=IFERROR(OFFSET($B$17,MOD(SMALL(IFERROR((MATCH(E$18:E$29,$F$37:$F$40,)+IF($A$18:$A$29=IFERROR(LOOKUP(2,1/("UP"=E$18:E$29),$A$18:$A$29),""),10,))*10^4+ROW($1:$12),""),ROW($A1)),10^4),),"")
Kết thúc công thức nhấn Ctrl+Shift+Enter.
Chủ thớt xem file kèm. hihi ^o^
Bác cho em hỏi thêm 1 chút, phần công thức: IF($A$18:$A$29=IFERROR(LOOKUP(2,1/("UP"=E$18:E$29),$A$18:$A$29),""),10,))
em chưa hiểu rõ lắm, tại sao lại là LOOKUP(2,1/...)?, Tại sao lại là 10?
Tại sao em thêm trường hợp vào SX, DOWN, UP/DOWN, UP (em thêm UP/DOWN/UP) thì 1 số kết quả lại bị sai?

Cảm ơn bác nhiều!
 
Bác cho em hỏi thêm 1 chút, phần công thức: IF($A$18:$A$29=IFERROR(LOOKUP(2,1/("UP"=E$18:E$29),$A$18:$A$29),""),10,))
em chưa hiểu rõ lắm, tại sao lại là LOOKUP(2,1/...)?, Tại sao lại là 10?
Tại sao em thêm trường hợp vào SX, DOWN, UP/DOWN, UP (em thêm UP/DOWN/UP) thì 1 số kết quả lại bị sai?
Cảm ơn bác nhiều!
  1. Để tham khảo hàm Lookup(2,1/....): Dò tìm theo nhiều điều kiện bạn xem tại đây: https://www.giaiphapexcel.com/diend...ập-hàng-chân-thành-cám-ơn.123588/#post-773512
  2. Theo yêu cầu của bạn những máy nào có Thứ tự ưu tiên: vừa có "UP" vừa có "UP/DOWN" thì chạy sau cùng, cho nên tôi phân làm hai đoạn hàm:
    • =MATCH(E$18:E$29,$F$37:$F$40,)--> lấy số thứ tự của các mã trong cột E18:E29 theo bảng bạn đã sắp ưu tiên F37:F40, tức chỉ ra từ 1 đến 4
    • =IF($A$18:$A$29=IFERROR(LOOKUP(2,1/("UP"=E$18:E$29),$A$18:$A$29),""),10,)--> Nếu máy nào có mã "UP", thì các mã khác cùng máy đó sẽ cộng thêm 10. Vì dụ: cột E18:E29 có 4 mã: Máy B có hai mã, máy D có hai mã, nhưng máy B vừa có "UP" vừa có "UP/DOWN" nên phải chạy máy sau cùng. Cụ thể thứ tự của cột đó như sau:
      • Máy B: "UP"=4, cộng thêm 10, bằng 14 (dòng 21); "UP/DOWN"=3, cộng thêm 10, bằng 13 (dòng 22).
      • Máy D: "UP/DOWN"=3 (dòng 28 được xếp trên); "UP/DOWN"=3 (dòng 29 được xếp kế tiếp).
      • Nhờ cách tính như vậy thì số thứ tự của 4 mã đó khi tiến hành sắp xếp như sau (các số cho dưới chỉ minh họa):
        • Máy B dòng 21: 140021
        • Máy B dòng 22: 130022
        • Máy D dòng 28: 30028
        • Máy D dòng 29: 30029
      • Hàm Small() sẽ xếp và lấy thứ tự từ nhỏ đến lớn:
        • 30028 (tương ứng dòng 28 là: "X-(1006)")
        • 30029 (tương ứng dòng 29 là: "X-(1007)")
        • 130022 (tương ứng dòng 22 là: "X-(1008)")
        • 140021 (tương ứng dòng 21 là: "X-(1004)")
Riêng bạn nói có phát sinh thêm và bị lỗi, vậy bạn gửi file có vấn đề đó đem lên diễn đàn tôi mới xem và tìm cách hỗ trợ bạn được.
hihi ^o^
 
  1. Để tham khảo hàm Lookup(2,1/....): Dò tìm theo nhiều điều kiện bạn xem tại đây: https://www.giaiphapexcel.com/diendan/threads/nhờ-các-anh-chị-lập-công-thức-tính-số-ngày-nhập-hàng-chân-thành-cám-ơn.123588/#post-773512
  2. Theo yêu cầu của bạn những máy nào có Thứ tự ưu tiên: vừa có "UP" vừa có "UP/DOWN" thì chạy sau cùng, cho nên tôi phân làm hai đoạn hàm:
    • =MATCH(E$18:E$29,$F$37:$F$40,)--> lấy số thứ tự của các mã trong cột E18:E29 theo bảng bạn đã sắp ưu tiên F37:F40, tức chỉ ra từ 1 đến 4
    • =IF($A$18:$A$29=IFERROR(LOOKUP(2,1/("UP"=E$18:E$29),$A$18:$A$29),""),10,)--> Nếu máy nào có mã "UP", thì các mã khác cùng máy đó sẽ cộng thêm 10. Vì dụ: cột E18:E29 có 4 mã: Máy B có hai mã, máy D có hai mã, nhưng máy B vừa có "UP" vừa có "UP/DOWN" nên phải chạy máy sau cùng. Cụ thể thứ tự của cột đó như sau:
      • Máy B: "UP"=4, cộng thêm 10, bằng 14 (dòng 21); "UP/DOWN"=3, cộng thêm 10, bằng 13 (dòng 22).
      • Máy D: "UP/DOWN"=3 (dòng 28 được xếp trên); "UP/DOWN"=3 (dòng 29 được xếp kế tiếp).
      • Nhờ cách tính như vậy thì số thứ tự của 4 mã đó khi tiến hành sắp xếp như sau (các số cho dưới chỉ minh họa):
        • Máy B dòng 21: 140021
        • Máy B dòng 22: 130022
        • Máy D dòng 28: 30028
        • Máy D dòng 29: 30029
      • Hàm Small() sẽ xếp và lấy thứ tự từ nhỏ đến lớn:
        • 30028 (tương ứng dòng 28 là: "X-(1006)")
        • 30029 (tương ứng dòng 29 là: "X-(1007)")
        • 130022 (tương ứng dòng 22 là: "X-(1008)")
        • 140021 (tương ứng dòng 21 là: "X-(1004)")
Riêng bạn nói có phát sinh thêm và bị lỗi, vậy bạn gửi file có vấn đề đó đem lên diễn đàn tôi mới xem và tìm cách hỗ trợ bạn được.
hihi ^o^
Rất cảm ơn bác vì đã nhiệt tình giảng giải.
Em gửi bác file em đang sửa lại, thêm trường hợp vào nhưng bị lỗi, bác xem giúp xem em áp dụng sai ở đâu nhé.
 

File đính kèm

Rất cảm ơn bác vì đã nhiệt tình giảng giải.
Em gửi bác file em đang sửa lại, thêm trường hợp vào nhưng bị lỗi, bác xem giúp xem em áp dụng sai ở đâu nhé.
Tôi rất thích và sẵn lòng hỗ trợ cho các bạn, những người thành tâm học hỏi và đang vướng mắc trong bảng tính excel phục vụ cho công việc của mình.
Không riêng gì tôi, mà còn rất nhiều anh em tài giỏi hơn trên GPE sẽ hỗ trợ bạn nhiệt tâm, chỉ cần bạn chân thành học hỏi.

Phần lỗi công thức: Do bạn đã "nhậu" hết 1 dấu "," sau cùng trong công thức MATCH(...,...,) của tui rồi! nên nó mới "cự nự" hổng chịu làm theo yêu cầu của bạn.
=IFERROR(OFFSET($E$117,MOD(SMALL(IFERROR((MATCH(G$118:G$129,$C$142:$C$146,)+IF($C$118:$C$129=IFERROR(LOOKUP(2,1/("UP"=G$118:G$129),$C$118:$C$129),""),10,))*10^4+ROW($1:$12),""),ROW($A1)),10^4),),"")
Xem file kèm tôi đã điều chỉnh.

Chúc bạn học tập vui với anh em GPE.
hihi ^o^
 

File đính kèm

Tôi rất thích và sẵn lòng hỗ trợ cho các bạn, những người thành tâm học hỏi và đang vướng mắc trong bảng tính excel phục vụ cho công việc của mình.
Không riêng gì tôi, mà còn rất nhiều anh em tài giỏi hơn trên GPE sẽ hỗ trợ bạn nhiệt tâm, chỉ cần bạn chân thành học hỏi.

Phần lỗi công thức: Do bạn đã "nhậu" hết 1 dấu "," sau cùng trong công thức MATCH(...,...,) của tui rồi! nên nó mới "cự nự" hổng chịu làm theo yêu cầu của bạn.
=IFERROR(OFFSET($E$117,MOD(SMALL(IFERROR((MATCH(G$118:G$129,$C$142:$C$146,)+IF($C$118:$C$129=IFERROR(LOOKUP(2,1/("UP"=G$118:G$129),$C$118:$C$129),""),10,))*10^4+ROW($1:$12),""),ROW($A1)),10^4),),"")
Xem file kèm tôi đã điều chỉnh.

Chúc bạn học tập vui với anh em GPE.
hihi ^o^
Rất cảm ơn bác, chắc bác cũng giống em, ở công ty ai nhờ vả công thức, hàm gì trên excel là em lao vào tìm hiểu ngay, vì giúp họ cũng là thêm kiến thức cho mình. Tất nhiên em không pro đc như anh em GPE trên đây đc, chính vì có hàm ko biết nên mới lên mạng tìm hiểu, may mắn gặp anh em GPE nên kiến thức được mở mang hơn nhiều :)
Quên chưa nói vấn đề chính, em sửa theo bác và đã OK rồi :D hi
 
Web KT

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

Back
Top Bottom