EXCEL TOOLS
Excel Add-ins ที่พัฒนาโดยคุณสันติพงศ์ ณสุย (MVP Excel 2010-2020) ด้วยภาษา C# เพื่อแก้ไขปัญหาไฟล์ใหญ่ คำนวณนาน ทำงานช้า จัดการข้อมูลต่าง ๆ ที่ทำงานประจำวันได้อย่างสะดวกรวดเร็ว สนใจคลิกไปดูได้ที่นี่ครับ => Excel Tools
Excel Add-ins ที่พัฒนาโดยคุณสันติพงศ์ ณสุย (MVP Excel 2010-2020) ด้วยภาษา C# เพื่อแก้ไขปัญหาไฟล์ใหญ่ คำนวณนาน ทำงานช้า จัดการข้อมูลต่าง ๆ ที่ทำงานประจำวันได้อย่างสะดวกรวดเร็ว สนใจคลิกไปดูได้ที่นี่ครับ => Excel Tools
[code]
และปิดด้วย [/code]
ตัวอย่างเช่น [code]dim r as range[/code]
เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)snasui wrote: ↑Mon Apr 16, 2018 5:56 pm ช่วยคีย์คำตอบที่ต้องการลงมาในไฟล์ตัวอย่างแล้วอธิบายมาอย่างละเอียดว่านำมาแสดงด้วยเงื่อนไขใดจะได้สะดวกในการทำความเข้าใจ
สูตรที่แนบมาเป็นการนำมาแสดงเฉพาะค่าที่ไม่ซ้ำ ไม่ทราบว่าเป็นสูตรที่เกี่ยวข้องกับคำถามนี้หรือไม่ หากไม่เกี่ยวข้องให้เปลี่ยนเป็นค่าคงที่ กรุณาถามด้วยข้อความที่เป็นคำอธิบายแทนการถามด้วยสูตร ยกเว้นเป็นการถามต่อเนื่องกันไปจากปัญหาที่เคยถามมาแล้ว (ซึ่งควรถามต่อจากกระทู้นั้น) จึงควรจะถามด้วยสูตรเพื่อปรับปรุงสูตรเดิมครับ
- รหัสเครื่องจัก cell (c4) = M07FA07
- รหัสเครื่องจัก cell (c4) = M07FA07
- รหัสเครื่องจัก cell (c5) = M07FA07
2. ในเซลล์ (d4:d65) มีเงื่อนไขคือ- รหัสเครื่องจัก cell (c4) = M07FA07
- รหัสเครื่องจัก cell (c5) = M13RM01
- รหัสเครื่องจัก cell (c6) = M07RK01
- รหัสเครื่องจัก cell (c7) = M13WF02AC
- รหัสเครื่องจัก cell (c8) = M07FA07
- รหัสเครื่องจัก cell (c9) = 12Mn03
3. ในเซลล์ (e4:e65) มีเงื่อนไขคือ- รหัสเครื่องจัก cell (c4) = M07FA07 fault code ME หยุดทางด้านเครื่องกล
- รหัสเครื่องจัก cell (c5) = M13RM01 fault code EE หยุดทางด้านไฟฟ้า
- รหัสเครื่องจัก cell (c6) = M07RK01 fault code EE หยุดทางด้านไฟฟ้า
- รหัสเครื่องจัก cell (c7) = M13WF02AC fault code EE หยุดทางด้านไฟฟ้า
- รหัสเครื่องจัก cell (c8) = M07FA07 fault code EE หยุดทางด้านไฟฟ้า
- รหัสเครื่องจัก cell (c9) = 12Mn03 fault code PR หยุดทางด้านผลิต
4. ในเซลล์ (f4:f65) มีเงื่อนไขคือ- รหัสเครื่องจัก cell (c4) = M07FA07 fault code ME หยุดทางด้านเครื่องกล มีึความถี่เท่า 2 ครั้ง
- รหัสเครื่องจัก cell (c5) = M13RM01 fault code EE หยุดทางด้านไฟฟ้า มีึความถี่เท่า 1 ครั้ง
- รหัสเครื่องจัก cell (c6) = M07RK01 fault code EE หยุดทางด้านไฟฟ้า มีึความถี่เท่า 1 ครั้ง
- รหัสเครื่องจัก cell (c7) = M13WF02AC fault code EE หยุดทางด้านไฟฟ้า มีึความถี่เท่า 1 ครั้ง
- รหัสเครื่องจัก cell (c8) = M07FA07 fault code EE หยุดทางด้านไฟฟ้า มีึความถี่เท่า 1 ครั้ง
- รหัสเครื่องจัก cell (c9) = 12Mn03 fault code PR หยุดทางด้านผลิต มีึความถี่เท่า 1 ครั้ง
-cell (f4) = Bearing ของพัดลมมีเสียงดังและสั่นมาก, ใบพัดลมบิดงอ
- cell (f5) = ช่างไฟฟ้าสะลับเฟสไฟกับด้าน
- cell (f6) = ชุดเครื่องชาร์จแบตเตอรี่สำรองของชุดควบคุมทั้งระบบไหม้
- cell (f7) = ยังไม่ทราบสาเหตุที่แท้จริง
- cell (f8) = Over Voltage
- cell (f9) = ขาดการตรวจเช็ค
ผมเห็นสูตรตัวอย่างตัวนี้ของอาจารย์แล้วผมแปลกใจมากเลยเพราะว่าผมพึงเคยเห็นเป็นครั้งแรก ไม่คิดเลยว่ามันจะสามารถทำแบบนี้ได้ด้วย สูตรสุดยอดมากครับอาจารย์ แต่ผมยังไม่เข้าใจเลยว่าทำไมต้องให้=IFERROR(LOOKUP(2,1/((B4=B$3:B3)*(H4=H$3:H3)),R$3:R3)&", "&J4,J4)
Lookup_value = 2 และ
Lookup_Vector = 1/((B4=B$3:B3)*(H4=H$3:H3)) ด้วยครับแล้วความหมายของมันคืออะไรกัน?
มันทำได้แต่มันไม่ได้จัดเรียงข้อมูลให้เป็นกลุ่มให้ผมครับ คือผมต้องการให้มันจัดเรียงเป็นแบบนี้ครับชีต Report Fault
ที่ C4 คีย์
=IFERROR(INDEX(Fault!B$4:B$10,SMALL(IF(FREQUENCY(MATCH(Fault!$B$4:$B$10&Fault!$H$4:$H$10,Fault!$B$4:$B$10&Fault!$H$4:$H$10,0),ROW(Fault!$B$4:$B$10)-ROW(Fault!$B$4)+1),ROW(Fault!$B$4:$B$10)-ROW(Fault!$B$4)+1),ROWS(C$4:C4))),"")
Ctrl+Shift+Enter > Copy ลงด้านล่าง
ที่ D4 คีย์
=IFERROR(INDEX(Fault!H$4:$H10,SMALL(IF(FREQUENCY(MATCH(Fault!$B$4:$B$10&Fault!$H$4:$H$10,Fault!$B$4:$B$10&Fault!$H$4:$H$10,0),ROW(Fault!$B$4:$B$10)-ROW(Fault!$B$4)+1),ROW(Fault!$B$4:$B$10)-ROW(Fault!$B$4)+1),ROWS(D$4:D4))),"")
Ctrl+Shift+Enter > Copy ลงด้านล่าง
ที่ชีต Report Fault- cell (b4) = M07FA07 cell (h4) = ME หยุดทางด้านเครื่องกล
- cell (b5) = M13RM01 cell (h5) = EE หยุดทางด้านไฟฟ้า
- cell (b6) = M07RK01 cell (h6) = EE หยุดทางด้านไฟฟ้า
- cell (b7) = M13WF02AC cell (h7) = EE หยุดทางด้านไฟฟ้า
- cell (b8) = M07FA07 cell (h8) = ME หยุดทางด้านเครื่องกล
- cell (b9) = M07FA07 cell (h9) = EE หยุดทางด้านไฟฟ้า
- cell (b10) = 12Mn03 cell (h10) = PR หยุดทางด้านผลิต
- cell (b11) = 23ss02 cell (h11) = ME หยุดทางด้านเครื่องกล
แต่ต้องการให้มันจัดเรียงกันเป็นกลุ่มตามลำดับ fault code ของชีต code เซลล์ (C3:C19) ไปด้วยเลยครับ- cell (c4) = M07FA07 cell (d4) = ME หยุดทางด้านเครื่องกล
- cell (c5) = M13RM01 cell (d5) = EE หยุดทางด้านไฟฟ้า
- cell (c6) = M07RK01 cell (d6) = EE หยุดทางด้านไฟฟ้า
- cell (c7) = M13WF02AC cell (d7) = EE หยุดทางด้านไฟฟ้า
- cell (c8) = M07FA07 cell (d8) = EE หยุดทางด้านไฟฟ้า
- cell (c9) = 12Mn03 cell (d9) = PR หยุดทางด้านผลิต
- cell (c10) = 23ss02 cell (d10) = ME หยุดทางด้านเครื่องกล
แบบการจัดเรียงเป็นกลุ่มที่ต้องการ
- cell (c4) = M07FA07 cell (d4) = ME หยุดทางด้านเครื่องกล
- cell (c5) = 23ss02 cell (d5) = ME หยุดทางด้านเครื่องกล
- cell (c6) = M13RM01 cell (d6) = EE หยุดทางด้านไฟฟ้า
- cell (c7) = M07RK01 cell (d7) = EE หยุดทางด้านไฟฟ้า
- cell (c8) = M13WF02AC cell (d8) = EE หยุดทางด้านไฟฟ้า
- cell (c9) = M07FA07 cell (d9) = EE หยุดทางด้านไฟฟ้า
- cell (c10) = 12Mn03 cell (d10) = PR หยุดทางด้านผลิต
ขอบคุณ ครับsnasui wrote: ↑Tue Apr 17, 2018 8:03 pm การเรียงลักษณะที่กล่าวมานั้นไม่ได้เรียงตามตัวอักษร เป็นการกำหนดการเรียงขึ้นมาเอง การเรียงด้วยสูตรจะมีข้อจำกัดอย่างหนึ่งคือจะต้องเรียงจากน้อยไปหามากหรือจากมากไปหาน้อยเท่านั้น
ปกติการจัดเรียงควรทำที่ต้นทางหรือทำการเรียงให้เสร็จสิ้นเสียก่อนด้วยวิธีการใด ๆ แล้วค่อยดึงข้อมูลไปใช้ด้วยสูตร เมื่อได้ทำการเรียงไว้เช่นไรสูตรก็จะดึงไปตามลำดับนั้นครับ ยกเว้นจะดึงข้อมูลมาเรียงใหม่ด้วย VBA ที่ไม่จำเป็นต้องเรียงข้อมูลเอาไว้ก่อนแต่อย่างใดครับ
ขออภัยที่ลืมตอบคำถามนี้ครับ
ขอบคุณมากสำหรับความรู้ และ การแนะนำครับsnasui wrote: ↑Wed Apr 18, 2018 6:30 amขออภัยที่ลืมตอบคำถามนี้ครับ
สามารถศึกษา Lookup ลักษณะนี้ได้จาก Link นี้ครับ wordpress/last-cell-that-not-blank/