หน้าเว็บบอร์ด Knowledge Excel ถามเกี่ยวกับพนงจัดคู่กับใครมีผลงานดีที่สุด

ถามเกี่ยวกับพนงจัดคู่กับใครมีผลงานดีที่สุด

ฟอรั่มถาม-ตอบปัญหาการใช้งาน MS Excel and VBA

กฎการใช้บอร์ด

  1. ไม่อนุญาตให้ใช้ภาษาแชทในการถาม-ตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น
  2. ห้ามถามโดยระบุชื่อผู้ตอบ ต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
  3. อธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
  4. ควรแนบไฟล์ตัวอย่างมาแทนไฟล์จริงประกอบคำถาม เพื่อป้องกันข้อมูลสำคัญรั่วไหล นอกจากนี้ยังช่วยเพิ่มความสะดวกในการตอบคำถาม
  5. สำหรับคำถามเกี่ยวกับ VBA ให้ลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน
  6. แจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่

godman Silver
Silver

โพสต์: 620
คือผมมีรายชื่อพนักงาน EN เป็นจำนวนมากและใน 1 สถานีก็ทำงานกัน 3 คนบ้าง 2 คนบ้าง อยากทราบว่าจะใช้สูตรอะไรดีครับในการหา % ล้อทที่ตรวจโดยพนง 1.คนนี้ 2.ทั้งหมดที่คนนี้ไปเกี่ยวข้อง
เพื่อมาจัดลำดับ line ว่าใครนั่งกับใครมีผลงานดีที่สุด ใช้สูตร sumproduct ได้ไหมครับ ผมลองทำ Pivot Table แล้วมันหา % ไม่ได้อะครับ ช่วยผมด้วยนะครับ ต้องส่งงานวันจันท่ร์นี้
คำถามคือ
ต้องสร้างSheet Summary Report เพื่อทำเป็นกราฟต่อไป
สูตร LAR คือ จำนวนล้อทที่เป็น First และต้อง Pass / ล้อททั้งหมดที่พนักงานท่านนี้ตรวจ

อาจจะคิดว่ามีสามเคส
คือ 1.เฉพาะพนักงานท่านนี้
2.พนักงานท่านนั้กับเพื่อนอีก 2 คน
3.พนักงงานท่านนี้กับเพื่อนอีก 1 คน
ปวดหัวมากครับ พื้นฐานเอ็กเซลไม่แน่นแล้ว ทำได้แต่สูตร if vlookup วันนี้เพิ่งหัดทำ Index Match ได้ แต่เวลาไม่พอที่จะหัดทำจริงๆ
คุณไม่มีสิทธิ์ดูไฟล์ที่แนบมาในกระทู้

snasui ภาพประจำตัวสมาชิก
Site Admin
Site Admin

โพสต์: 15301
ที่อยู่: Songkhla, Thailand

:D ลองดูคำตอบตามไฟล์แนบครับว่าใช่ที่ต้องการหรือไม่
คุณไม่มีสิทธิ์ดูไฟล์ที่แนบมาในกระทู้
คนควน รูปภาพ รูปภาพ รูปภาพ รูปภาพ
MVP-Excel (2010-2014)

godman Silver
Silver

โพสต์: 620
ขอบคุณครับ กำลังดูบอลคู่สเปอร์ แมนซิ อยู่พอดี อาจารย์แก้สูตรให้ผมด้วย แสดงว่าผมใช้สูตรไม่ O เท่าไหร่ index(array,match(cell,array,0)) ผมเขียนแบบท่องจำเอา แต่ดูสูตรแล้วทึงเลย จะมีคนในประเทศไทยสักกีคนที่ทำได้อย่างอาจารย์ผมคงไม่บังอาจไปแกะ ขอใช้สูตรที่ไม่ยาวขนาดนั้นไม่ได้หรอครับ
2.เวลาอ่านสูตรต้องอ่านจากหลังไปหน้าใช่ไหมครับ หรืออ่านในวงเล็บก่อน สอนอ่านแบบง่ายหน่อยครับ ผมอ่านว่า หาค่าที่ คอลัมพ์ ที่ตรงกับ ......ไปไม่เป็น

snasui ภาพประจำตัวสมาชิก
Site Admin
Site Admin

โพสต์: 15301
ที่อยู่: Songkhla, Thailand

:D ที่แก้สูตรให้นั้นเนื่องจากว่า Sumproduct จะไม่สามารถใช้ไ้ด้กับช่วงข้อมูลที่มีค่าผิดพลาดอยู่ครับ เช่น มีค่าผิดพลาด #N/A

สำหรับการอ่านสูตรให้อ่านจากสูตรที่อยู่นอกสุดเ้้ข้าด้านในไปเรื่อย ๆ ครับ โดยต้องทราบด้วยว่าสูตรแต่ละสูตรนั้นมีส่วนประกอบอะไรบ้าง เพื่อจะได้ทำความเข้าใจได้ถูกต้อง

ส่วนสูตร Lookup ที่ผมเขียนให้นั้นเป็นสูตรประยุกต์เพื่อใช้แทน If ซึ่ง If จะเ้ข้าใจง่ายกว่ามากครับ ยกตัวอย่างเช่นใน Sheet Y-2010 เซลล์ GG2 สูุตรมีว่า

=LOOKUP(CHAR(255),CHOOSE({1,2},"",INDEX(SubmNO,MATCH(G2,Lot_NO,0))))

ถ้าเปลี่ยนเป็นสูตร If จะได้เป็น

=If(Isna(INDEX(SubmNO,MATCH(G2,Lot_NO,0))),"",INDEX(SubmNO,MATCH(G2,Lot_NO,0)))

ความหมายสูตรคือ ถ้าผลลัพธ์จาก INDEX(SubmNO,MATCH(G2,Lot_NO,0)) เป็นค่าผิดพลาด #N/A ก็ให้แสดงค่าว่าง ถ้าไม่มีค่าผิดพลาดก็ให้แสดงผลลัพธ์จาก INDEX(SubmNO,MATCH(G2,Lot_NO,0))

สังเกตการแปลผมจะแปลสูตร If ซึ่งอยู่นอกสุดก่อนครับ

ส่วนสูตร Sumproduct สามารถดูคำอธิบายเปรียบเทียบได้ที่นี่ครับ http://snasui.com/viewtopic.php?f=3&t=30
คนควน รูปภาพ รูปภาพ รูปภาพ รูปภาพ
MVP-Excel (2010-2014)

snasui ภาพประจำตัวสมาชิก
Site Admin
Site Admin

โพสต์: 15301
ที่อยู่: Songkhla, Thailand

:D อธิบายเพิ่มเพื่อความเข้าใจสูตร index(array,match(cell,array,0)) ครับ

ความหมายคือ ให้นำค่าใน array มาแสดงด้วยลำดับที่ได้จากผลลัพธ์ของ match(cell,array,0)

หาก Match แ้้ล้วได้ 10 ก็ให้นำลำดับที่ 10 มาแสดง
หาก Match แ้้ล้วได้ 90 ก็ให้นำลำดับที่ 90 มาแสดง เป็นต้น
คนควน รูปภาพ รูปภาพ รูปภาพ รูปภาพ
MVP-Excel (2010-2014)

godman Silver
Silver

โพสต์: 620
ครับกำลังหัดทำสัก 3 รอบ Practice

godman Silver
Silver

โพสต์: 620
อยากทราบว่า พนักงานรหัส 0746 จะต้องยืนคู่กับใครถึงจะได้ LAR สูงสุด และกับใคร LAR เป็นลำดับสอง สาม สี่ ถ้ายืนคู่กับคนคนนี้ ใช้สูตรใหนครับ ใช่ MAX(IF(H3='Y-2010'!H2:H169,....) แต่มันตัองไปตรงกับ แถวที่ LAR มากที่สุด นี่สิ แล้วถ้ามันเท่ากัน จะให้มันแสดงลำดับ 1 2 3 .... ได้ยังไงครับ

godman Silver
Silver

โพสต์: 620
โทษครับ รหัส 0764 ครับผมเขียนผิด

snasui ภาพประจำตัวสมาชิก
Site Admin
Site Admin

โพสต์: 15301
ที่อยู่: Songkhla, Thailand

:D ไม่เ้จ้าใจโจทย์ครับ

ที่ทำไปให้ 3 คอลัมน์สามารถนำมาหาค่าได้หรือเปล่าครับว่าค่า %LAR ของใครมากที่สุดเป็นอันดับ 1, 2 และ 3 ถ้าใช้ได้ก็จะง่ายขึ้นไม่ต้องวิ่งไปหาจากฐานข้อมูลเพราะได้หาไว้แล้ว :mrgreen:
คนควน รูปภาพ รูปภาพ รูปภาพ รูปภาพ
MVP-Excel (2010-2014)

godman Silver
Silver

โพสต์: 620
ไม่ได้ครับ เพราะว่าอาจารย์หาของแต่ละคน แต่ไม่ได้หาว่า เขา 0746 จับคู่กับ ใคร ได้ LAR มากที่สุด แต่ผมคิดว่าวิธีของผมน่าจะใช้ได้ ผมจะใช้สูตร cell&cell&cell แล้วดูว่าคู่ใหน Pass กี่ล้อท ผมจะลองดูวิธีนี้ครับ

snasui ภาพประจำตัวสมาชิก
Site Admin
Site Admin

โพสต์: 15301
ที่อยู่: Songkhla, Thailand

:D ครับ ได้ผลอย่างไรมาโพสต์ให้ทราบด้วยนะครับ จะได้เข้าใจด้วย :mrgreen:
คนควน รูปภาพ รูปภาพ รูปภาพ รูปภาพ
MVP-Excel (2010-2014)

godman Silver
Silver

โพสต์: 620
คิดว่าเข้าใจแล้วครับ ขอโทษทีครับ เข้าใจผิดไป ที่แท้อาจาย์ก็หาให้แล้ว ทุกคนเลย คืออาจาย์ติ้ต่างว่าแต่ละคนเป็นคนที่ 1 นั่นเอง แล้วก็หาล้อททั้งหมด ล้อทพาส โอเค ผมลองfilter ดูแล้วก็ตรงกับสูตร ครับ ผมจะไปจัดเรียงลำดับดูใหม่ ไม่ทราบว่าสูตรจัดเรียงลำดับมาก ไปหาน้อย มีไหมครับ แล้วให้มันแสดงลำดับกำกับด้วย โดยไม่ต้องไปเรียงแถวใหม่ ใช่สูตร Large() ได้ไหมครับ มันจะมีปัญหากรณีค่าเท่ากันไหมครับ

snasui ภาพประจำตัวสมาชิก
Site Admin
Site Admin

โพสต์: 15301
ที่อยู่: Songkhla, Thailand

:D สามารถใช้ฟังก์ัชั่น Rank ได้ครับ เช่น

Rank(H2,$H$2:$H$11,1)

จะเป็นการจัดลำดับว่า H2 อยู่ลำดับที่เท่าไรแบบมากไปหาน้อยครับ

หากยังไม่เป็นตามต้องการแจ้งมาได้เรื่อย ๆ นะครับ เพราะว่าสูตร Rank มันจะให้ลำดับแบบข้ามหากเจอว่ามีค่าลำดับที่ซ้ำกัน
คนควน รูปภาพ รูปภาพ รูปภาพ รูปภาพ
MVP-Excel (2010-2014)

godman Silver
Silver

โพสต์: 620
ทำไมผมเรียงลำดับไม่ได้ ผมใช้สูตร Large(array,k) ไฟล์เกิน 1 ได้ไงไม่รู้ครับก็เลยส่งมาแบบนี้
ID new LOT Total LotTotalbyID1 % เรียงลำดับ
076404481046 1 1 1.00 #DIV/0!
075607450 3 3 1.00 #DIV/0!
101006110600 2 0 0.00 #DIV/0!
070890761212 1 1 1.00 #DIV/0!
075607450 3 3 1.00 #DIV/0!
123701960454 1 1 1.00 #DIV/0!
074207460977 0 0 #DIV/0! #DIV/0!
075404941011 1 0 0.00 #DIV/0!
074507460 0 0 #DIV/0! #DIV/0!
075607081212 1 1 1.00 #DIV/0!
101107540448 1 1 1.00 #DIV/0!
101006110600 2 0 0.00 #DIV/0!
061107421010 1 0 0.00 #DIV/0!
087409040 14 12 0.86 #DIV/0!
090309911043 15 11 0.73 #DIV/0!
092707480 2 0 0.00 #DIV/0!
029108190 3 2 0.67 #DIV/0!
087409040 14 12 0.86 #DIV/0!
090309911043 15 11 0.73 #DIV/0!
092707460 0 0 #DIV/0! #DIV/0!

godman Silver
Silver

โพสต์: 620
ขอโทษทีส่งไปไม่เป็นระเบียบนัก สูตรภูมิปัญญาชาวบ้านผมเอาจากเวปอาจารย์นี่แหละ OPT1&OPT2&OPT3 ครับแล้วเรียงลำดับ LAR แต่ใช้สูตร Large ก็เลย เป็นดังเห็นเพี้ยนอีกแล้ว 555 สุตรใหนดีครับอาจารย์ อยากให้มันแสดงว่าใครได้ที่เท่าไหร่เหมือนตอนเลือกตั้ง สส รวมคะแนน เขาจะเขียนลำดับที่ต่อท้ายคะแนนครับ

snasui ภาพประจำตัวสมาชิก
Site Admin
Site Admin

โพสต์: 15301
ที่อยู่: Songkhla, Thailand

:D สูตร Large ใช้เรียงตัวเลขเท่านั้นครับ ไม่สามารถเรียง Text ได้

การนำข้อความมาเชื่อมกันจะเป็น Text เสมอครับ ไม่สามารถใช้สูตร Large มาเรียงได้ หากจะเรียงต้องแปลง Text ให้เป็นตัวเลข หรือไม่ก็ใช้สูตรอื่นมาช่วย

แนบตัวอย่างมาดูครับ ว่าต้องการเรียงอย่างไร เขียนคำตอบที่ถูกต้องเป็นตัวอย่างไว้สัก 2-3 ตัวอย่าง จะได้ลองเขียนสูตรเปรียบเทียบได้ครับ :mrgreen:

สำหรับไฟล์ที่ใหญ่เกิน 1 เมก ใ้ห้ Zip ก่อนครับ
คนควน รูปภาพ รูปภาพ รูปภาพ รูปภาพ
MVP-Excel (2010-2014)

godman Silver
Silver

โพสต์: 620
ใช้ Rnak ตามที่อาจารย์บออกแต่มันเออเร่อ ไม่ทราบว่าถ้ามี DIV# แบบนี้จะให้มันข้ามไปจะใช้สูตรใหนทำไมมันไม่ได้หละครับ
ID new LOT Total LotTotalbyID1 % เรียงลำดับ
076404481046 1 1 1.00 RANK(R2,R2:R21,1)
075607450 3 3 1.00 #DIV/0!
101006110600 2 0 0.00 #DIV/0!
070890761212 1 1 1.00 #DIV/0!
075607450 3 3 1.00 #DIV/0!
123701960454 1 1 1.00 #DIV/0!
074207460977 0 0 #DIV/0! #DIV/0!
075404941011 1 0 0.00 #DIV/0!
074507460 0 0 #DIV/0! #DIV/0!
075607081212 1 1 1.00 #DIV/0!
101107540448 1 1 1.00 #DIV/0!
101006110600 2 0 0.00 #DIV/0!
061107421010 1 0 0.00 #DIV/0!
087409040 14 12 0.86 #DIV/0!
090309911043 15 11 0.73 #DIV/0!
092707480 2 0 0.00 #DIV/0!
029108190 3 2 0.67 #DIV/0!
087409040 14 12 0.86 #DIV/0!
090309911043 15 11 0.73 #DIV/0!
092707460 0 0 #DIV/0! #DIV/0!

godman Silver
Silver

โพสต์: 620
ไฟล์ครับ
คุณไม่มีสิทธิ์ดูไฟล์ที่แนบมาในกระทู้

snasui ภาพประจำตัวสมาชิก
Site Admin
Site Admin

โพสต์: 15301
ที่อยู่: Songkhla, Thailand

:D ที่เซลล์ R2 คีย์

=IF(P2=0,0,Q2/P2)

Enter > Copy ลงด้านล่างแล้วสังเกตดูผลว่าใช่ที่ต้องการหรือเปล่าครับ

:o สูตรที่ S2 แ้ก้ใหม่ให้มีการ Lock เซลล์ด้วยครับ เป็น

=RANK(R2,$R$2:$R$21,1)

Enter > Copy ลงด้านล่าง
คนควน รูปภาพ รูปภาพ รูปภาพ รูปภาพ
MVP-Excel (2010-2014)

godman Silver
Silver

โพสต์: 620
โอเค คิดว่าได้ตามความต้องการครับ วันจันทร์จะลองส่งการบ้านให้ผู้จัดการดู น่าจะเป็นผลงานที่เอกอุ ถ้าไม่ได้อาจารย์ผมแย่เลย ถ้าผมได้เงินเดือนขึ้นจะแจ้งให้ทราบครับ ถ้าผู้จัดการผมติ อย่างไรผมจะมาถามไหมครับ ผจก ผมคนนี้ก็เก่ง เอ็กเซล มากๆเช่นกัน

ต่อไป

ย้อนกลับไปยัง Excel