กฏกติกาของฟอรัม : แจ้งชื่อและนามสกุลจริงในการสมัครสมาชิก--ตั้งชื่อกระทู้ให้ตรงกับปัญหาที่ถาม--เขียนอธิบายคำถามทั้งในตัวกระทู้และในแฟ้มแนบให้ละเอียด--ห้ามใช้คำว่า อ่ะ คับ หรือคำผวน หรือคำที่ไม่มีในพจนานุกรมไทย--โปรดตั้งชื่อแฟ้มให้สื่อถึงปัญหาที่ถาม--อย่าระบุชื่อให้คนใดคนหนึ่งเป็นผู้ตอบ--งดให้ความร่วมมือหรือช่วยตอบคำถาม กระทู้ที่ละเมิดกฏกติกาของฟอรัม
Results 1 to 11 of 11

Thread: การใช้ vlookup แบบมีเงื่อนไข

  1. #1

    Join Date
    Jan 2009
    Location
    KhonKaen
    Job
    IT Support
    Version
    Excel 2007 / Windows XP
    Posts
    10

    Default การใช้ vlookup แบบมีเงื่อนไข

    โจทย์นะคะ
    1. ให้ นับ record V_code ใน ไฟล์ STI GERMINATION TEST 2010-2011-1.xls ค่ะ (อันนี้ทำได้แล้ว)
    2. ถ้าค่าที่นับได้ ในข้อ 1 มากกว่า 1 ให้ ไป vlookup ฟิวด์ %Vig มาจาก ไฟล์ STI GERMINATION TEST 2010-2011-1.xls (อันนี้ก็ทำได้แล้ว)
    3. แล้วเนื่องจาก ค่าที่ได้จะมากกว่า 1 เรกคอร์ด (ตามเงื่อนไขในข้อ 2) ทำให้ %Vig ที่ดึงมาจะมีหลายค่า จึงให้ กรองอีกครั้งหนึ่ง โดย
    4. เลือกเฉพาะคอลัมภ์ status มีคำว่า OK
    ตอนนี้ทำได้ ถึงข้อ 2 แล้วค่ะ ทำต่อ ไม่ได้เลยค่ะ ไม่รุ้ syntax ของ Excel เลยจริงๆ ..รบกวนผู้รู้ด้วยนะคะ
    อธิบาย ไฟล์ที่แนบ มาด้วยนะคะ
    STI GERMINATION TEST 2010-2011-1.xls เปนไฟล์ต้นฉบับที่จะดึง %vig ค่ะ

    Last edited by jaejai; 27 May 2011 at 22:28. Reason: แก้ไขไฟล์แนบค่ะ

  2. #2
    Excel Expert Volunteer เอก's Avatar
    Join Date
    May 2007
    Location
    ลาดกระบัง กรุงเทพฯ
    Job
    ธุรกิจส่วนตัว อาจารย์พิเศษ วิทยากร ที่ปรึกษาองค์กร นักเขียน "ขออนุญาตไม่ทำไฟล์ตัวอย่าง สำหรับคำถามที่ไม่แนบไฟล์ตัวอย่าง"
    Version
    Excel 2003/2007/2010/2013/OpenOffice/LibreOffice and Windows XP/Windows 7
    Posts
    1,561

    Default

    Quote Originally Posted by jaejai View Post

    โจทย์นะคะ

    ........
    อธิบาย ไฟล์ที่แนบ มาด้วยนะคะ
    จะจ่ายการบ้านใช่มั๊ยครับ?

    Quote Originally Posted by jaejai View Post
    1. ให้ นับ record V_code ใน ไฟล์ STI GERMINATION TEST 2010-2011-1.xls ค่ะ (อันนี้ทำได้แล้ว)
    2. ถ้าค่าที่นับได้ ในข้อ 1 มากกว่า 1 ให้ ไป vlookup ฟิวด์ %Vig มาจาก ไฟล์ STI GERMINATION TEST 2010-2011-1.xls (อันนี้ก็ทำได้แล้ว)
    3. แล้วเนื่องจาก ค่าที่ได้จะมากกว่า 1 เรกคอร์ด (ตามเงื่อนไขในข้อ 2) ทำให้ %Vig ที่ดึงมาจะมีหลายค่า จึงให้ กรองอีกครั้งหนึ่ง โดย
    4. เลือกเฉพาะคอลัมภ์ status มีคำว่า OK
    ตอนนี้ทำได้ ถึงข้อ 2 แล้วค่ะ ทำต่อ ไม่ได้เลยค่ะ ไม่รุ้ syntax ของ Excel เลยจริงๆ ..รบกวนผู้รู้ด้วยนะคะ
    1. แล้วที่บอกว่า "ทำได้แล้ว" ทำไว้ตรงไหนครับ เพราะมันเกี่ยวโยงไปถึงข้อ 2
    2. แล้วข้อ2 ก็บอกว่า "ก็ทำได้แล้ว" ทำไว้ตรงไหน เพราะข้อ 3 มันก็ต่อเนื่องอีก
    3. ผมจะลองทำข้อ 3 ให้ ก็หาข้อ 1 กับข้อ 2 ไม่เจอ
    4. แล้ว status OK มาได้ยังงัย? มีหลักเกณฑ์มั๊ย? หรือว่าตามใจฉัน

    และที่บอกมาทั้งหมดนั้น จะให้ไปทำผลลัพธ์ไว้ตรงไหน? ในไฟล์แนบไม่เห็นมีตรงไหนที่ใช้ VLOOKUP (ที่บอกว่าทำได้แล้ว) แล้วชีท shipment เกี่ยวอะไรมั๊ย? ถ้าไม่เกี่ยวก็ไม่ต้องเอามาก็ได้ครับ ยิ่งจะทำให้งงมากขึ้น

    เวลาทำไฟล์ตัวอย่าง ควรเอาเฉพาะข้อมูลที่เกี่ยวข้อง และทำตัวอย่างคำตอบที่ตรงการมาดูด้วย ว่าผลลัพธ์อยู่ตรงไหน อะไรที่ทำได้แล้วนั้น ไม่ต้องบอกมาก็ได้ครับ เพราะมันไม่ได้ช่วยอะไร สิ่งสำคัญที่ควรจะบอกก็คือ เงื่อนไขในการคำนวณ เพื่อให้ได้ผลลัพธ์ที่ต้องการ

  3. #3

    Join Date
    Jan 2009
    Location
    KhonKaen
    Job
    IT Support
    Version
    Excel 2007 / Windows XP
    Posts
    10

    Default

    จะจ่ายการบ้านใช่มั๊ยครับ?

    Quote Originally Posted by เอก View Post
    1. แล้วที่บอกว่า "ทำได้แล้ว" ทำไว้ตรงไหนครับ เพราะมันเกี่ยวโยงไปถึงข้อ 2
    2. แล้วข้อ2 ก็บอกว่า "ก็ทำได้แล้ว" ทำไว้ตรงไหน เพราะข้อ 3 มันก็ต่อเนื่องอีก
    N20 ค่ะ
    3. ผมจะลองทำข้อ 3 ให้ ก็หาข้อ 1 กับข้อ 2 ไม่เจอ
    Quote Originally Posted by เอก View Post
    4. แล้ว status OK มาได้ยังงัย? มีหลักเกณฑ์มั๊ย? หรือว่าตามใจฉัน

    //ตามใจ เจ้าของไฟล์ค่ะ เพราะว่าเป็นการทดสอบความงอก แล้วในการทดสอบพืบ หนึ่ง พืช เค้าจะมีการทดสอบหลายวิธี (ทำให้มีผล %vig หลายตัว) แล้วจึงเพิ่ม Colum status เพื่อ ให้เจ้าของไฟล์เค้าเลือกวิธีการที่เค้าทดสอบ ค่ะ แล้วเราก็ดึงผลตรงนั้นไปแสดง

    และที่บอกมาทั้งหมดนั้น จะให้ไปทำผลลัพธ์ไว้ตรงไหน?
    //N20
    ในไฟล์แนบไม่เห็นมีตรงไหนที่ใช้

    VLOOKUP (ที่บอกว่าทำได้แล้ว) แล้วชีท shipment เกี่ยวอะไรมั๊ย? ถ้าไม่เกี่ยวก็ไม่ต้องเอามาก็ได้ครับ ยิ่งจะทำให้งงมากขึ้น

    //ตัดออกแล้วค่ะ


    เวลาทำไฟล์ตัวอย่าง ควรเอาเฉพาะข้อมูลที่เกี่ยวข้อง และทำตัวอย่างคำตอบที่ตรงการมาดูด้วย ว่าผลลัพธ์อยู่ตรงไหน อะไรที่ทำได้แล้วนั้น ไม่ต้องบอกมาก็ได้ครับ

    //จะได้ให้ช่วยทำต่อไปเลย ไม่ต้องมาเริ่มต้นใหม่

    เพราะมันไม่ได้ช่วยอะไร สิ่งสำคัญที่ควรจะบอกก็คือ เงื่อนไขในการคำนวณ เพื่อให้ได้ผลลัพธ์ที่ต้องการ[/QUOTE]

    //บอก

  4. #4
    Excel Expert Volunteer เอก's Avatar
    Join Date
    May 2007
    Location
    ลาดกระบัง กรุงเทพฯ
    Job
    ธุรกิจส่วนตัว อาจารย์พิเศษ วิทยากร ที่ปรึกษาองค์กร นักเขียน "ขออนุญาตไม่ทำไฟล์ตัวอย่าง สำหรับคำถามที่ไม่แนบไฟล์ตัวอย่าง"
    Version
    Excel 2003/2007/2010/2013/OpenOffice/LibreOffice and Windows XP/Windows 7
    Posts
    1,561

    Default

    เห็นมีการใช้ PivotTable ด้วย ดังนั้น เราสามารถหาจำนวนได้ โดยการลากฟิลด์ F_CODE หรือ F_NAME ก็ได้ ลงไปใส่ใน Data Area เนื่องจาก F_CODE หรือ F_NAME ไม่ใช่ตัวเลข PivotTable จึงใช้การ COUNT แทนการ SUM ให้โดยอัตโนมัติ

    สำหรับการหา %VIG ผมใช้ INDEX โดยการสร้างคอลัมน์ช่วยขึ้นมาที่ P4:P15 (เวลานำไปใช้ อาจจะทำการซ่อนไว้ก็ได้) จากนั้นที่ N20 พิมพ์สูตร
    =INDEX(N$4:N$15,MATCH(C20&"OK",P$4:P$15,0))
    Attached Files Attached Files

  5. #5
    Excel Expert Volunteer orange_soi9's Avatar
    Join Date
    Nov 2007
    Location
    กรุงเทพฯ
    Job
    Financial Controller (FC)
    Version
    Excel 2007/Window 7
    Posts
    881

    Default

    ส้มพยายามอ่านตั้งหลายรอบแต่ก็ไม่เข้าใจว่า เจ้าของกระทู้ต้องการอะไร? พอดูคำตอบของอ.เอก ถึงจะเข้าใจ
    ขอเพิ่มสูตรให้อีกหนึ่งทางเลือกนะคะ
    N20 =LOOKUP(2,1/(($C$4:$C$15=C20)*($O$4:$O$15="OK")),$N$4:$N$15)
    แล้ว copy ลงมาค่ะ

  6. #6

    Join Date
    Jan 2009
    Location
    KhonKaen
    Job
    IT Support
    Version
    Excel 2007 / Windows XP
    Posts
    10

    Default

    Quote Originally Posted by เอก View Post
    เห็นมีการใช้ PivotTable ด้วย ดังนั้น เราสามารถหาจำนวนได้ โดยการลากฟิลด์ F_CODE หรือ F_NAME ก็ได้ ลงไปใส่ใน Data Area เนื่องจาก F_CODE หรือ F_NAME ไม่ใช่ตัวเลข PivotTable จึงใช้การ COUNT แทนการ SUM ให้โดยอัตโนมัติ

    สำหรับการหา %VIG ผมใช้ INDEX โดยการสร้างคอลัมน์ช่วยขึ้นมาที่ P4:P15 (เวลานำไปใช้ อาจจะทำการซ่อนไว้ก็ได้) จากนั้นที่ N20 พิมพ์สูตร
    =INDEX(N$4:N$15,MATCH(C20&"OK",P$4:P$15,0))
    อ.เอกคะ รบกวนถามต่ออีกนิดนึงค่ะ ถ้าเราอยากใส่เงื่อนไขให้เค้าเข้าไปว่า ถ้าไม่มีค่า(n/a) ให้เค้าไปดึง %Vig มาจากอีก Sheet เราจะใส่ If เข้าไปตรงไหนคะ
    เหมือนตัวอย่างใน เอกสารแนบนะคะ คือ จะมีเกษตร 2คน(ที่ทำไฮไลท์มีเลืองไว้) ที่ไม่มีค่า %vig ในหน้าแรก แต่จะมี %vig ในอีกชีท

    รบกวนอาจารย์อีกครั้งนะคะ

  7. #7
    Excel Expert Volunteer orange_soi9's Avatar
    Join Date
    Nov 2007
    Location
    กรุงเทพฯ
    Job
    Financial Controller (FC)
    Version
    Excel 2007/Window 7
    Posts
    881

    Default

    Quote Originally Posted by jaejai View Post
    อ.เอกคะ รบกวนถามต่ออีกนิดนึงค่ะ ถ้าเราอยากใส่เงื่อนไขให้เค้าเข้าไปว่า ถ้าไม่มีค่า(n/a) ให้เค้าไปดึง %Vig มาจากอีก Sheet เราจะใส่ If เข้าไปตรงไหนคะ
    เหมือนตัวอย่างใน เอกสารแนบนะคะ คือ จะมีเกษตร 2คน(ที่ทำไฮไลท์มีเลืองไว้) ที่ไม่มีค่า %vig ในหน้าแรก แต่จะมี %vig ในอีกชีท

    รบกวนอาจารย์อีกครั้งนะคะ
    ที่ N19 ใส่
    =IF(ISERROR(INDEX($N$4:$N$15,MATCH(C19&"OK",$P$4:$P$15,0))),INDEX('TM crop 2010-2011'!$O$2:$O$9,MATCH(C19&"OK",'TM crop 2010-2011'!$Q$2:$Q$9,0)),INDEX($N$4:$N$15,MATCH(C19&"OK",$P$4:$P$15,0)))

    เวลาใส่สูตรเองอย่าลืมเครื่องหมาย $ ด้วยนะคะ เพราะหากไม่ใส่เวลา Copy สูตรลงมามันจะไม่ได้คำตอบนะคะ เช่น N21 และ N22 ตามตัวอย่างที่ให้ไว้

  8. #8

    Join Date
    Jan 2009
    Location
    KhonKaen
    Job
    IT Support
    Version
    Excel 2007 / Windows XP
    Posts
    10

    Default

    Quote Originally Posted by orange_soi9 View Post
    ที่ N19 ใส่
    =IF(ISERROR(INDEX($N$4:$N$15,MATCH(C19&"OK",$P$4:$P$15,0))),INDEX('TM crop 2010-2011'!$O$2:$O$9,MATCH(C19&"OK",'TM crop 2010-2011'!$Q$2:$Q$9,0)),INDEX($N$4:$N$15,MATCH(C19&"OK",$P$4:$P$15,0)))

    เวลาใส่สูตรเองอย่าลืมเครื่องหมาย $ ด้วยนะคะ เพราะหากไม่ใส่เวลา Copy สูตรลงมามันจะไม่ได้คำตอบนะคะ เช่น N21 และ N22 ตามตัวอย่างที่ให้ไว้
    ขอบคุณ คุณส้ม มากเลยนะคะ

  9. #9
    Excel Expert Volunteer เอก's Avatar
    Join Date
    May 2007
    Location
    ลาดกระบัง กรุงเทพฯ
    Job
    ธุรกิจส่วนตัว อาจารย์พิเศษ วิทยากร ที่ปรึกษาองค์กร นักเขียน "ขออนุญาตไม่ทำไฟล์ตัวอย่าง สำหรับคำถามที่ไม่แนบไฟล์ตัวอย่าง"
    Version
    Excel 2003/2007/2010/2013/OpenOffice/LibreOffice and Windows XP/Windows 7
    Posts
    1,561

    Default

    Quote Originally Posted by orange_soi9 View Post
    ที่ N19 ใส่
    =IF(ISERROR(INDEX($N$4:$N$15,MATCH(C19&"OK",$P$4:$P$15,0))),INDEX('TM crop 2010-2011'!$O$2:$O$9,MATCH(C19&"OK",'TM crop 2010-2011'!$Q$2:$Q$9,0)),INDEX($N$4:$N$15,MATCH(C19&"OK",$P$4:$P$15,0)))

    เวลาใส่สูตรเองอย่าลืมเครื่องหมาย $ ด้วยนะคะ เพราะหากไม่ใส่เวลา Copy สูตรลงมามันจะไม่ได้คำตอบนะคะ เช่น N21 และ N22 ตามตัวอย่างที่ให้ไว้
    แถมให้อีกสูตรนึงครับ สูตรจะสั้นลงมาอีกเล็กน้อย
    =IF(ISNA(MATCH(C19&"OK",P$4:P$15,0)),INDEX('TM crop 2010-2011'!O$2:O$9,MATCH(C19&"OK",'TM crop 2010-2011'!Q$2:Q$9,0)),INDEX(N$4:N$15,MATCH(C19&"OK",P$4:P$15,0)))

    ปล. สามารถทำให้สูตรสั้นกว่านี้ได้อีก โดยใช้การตั้งชื่อช่วงเซลล์

  10. #10

    Join Date
    Jan 2009
    Location
    KhonKaen
    Job
    IT Support
    Version
    Excel 2007 / Windows XP
    Posts
    10

    Default

    Quote Originally Posted by เอก View Post
    แถมให้อีกสูตรนึงครับ สูตรจะสั้นลงมาอีกเล็กน้อย
    =IF(ISNA(MATCH(C19&"OK",P$4:P$15,0)),INDEX('TM crop 2010-2011'!O$2:O$9,MATCH(C19&"OK",'TM crop 2010-2011'!Q$2:Q$9,0)),INDEX(N$4:N$15,MATCH(C19&"OK",P$4:P$15,0)))

    ปล. สามารถทำให้สูตรสั้นกว่านี้ได้อีก โดยใช้การตั้งชื่อช่วงเซลล์
    อาจารย์เอก และ คุณส้ม คะ จาก คำตอบด้านล่างทั้งของ อาจารย์เอก และ คุณส้ม นะคะ ถ้านอกจากคำว่า "OK" ที่เราอยากให้เค้าจับแล้ว เราอยากให้เค้าจับคำว่า "NO" (OK หรือ NO ) ด้วยหล่ะคะ เราจะเพิ่ม สูตร เข้าไปที่ตรงไหน

  11. #11
    Excel Expert Volunteer เอก's Avatar
    Join Date
    May 2007
    Location
    ลาดกระบัง กรุงเทพฯ
    Job
    ธุรกิจส่วนตัว อาจารย์พิเศษ วิทยากร ที่ปรึกษาองค์กร นักเขียน "ขออนุญาตไม่ทำไฟล์ตัวอย่าง สำหรับคำถามที่ไม่แนบไฟล์ตัวอย่าง"
    Version
    Excel 2003/2007/2010/2013/OpenOffice/LibreOffice and Windows XP/Windows 7
    Posts
    1,561

    Default

    Quote Originally Posted by jaejai View Post
    อาจารย์เอก และ คุณส้ม คะ จาก คำตอบด้านล่างทั้งของ อาจารย์เอก และ คุณส้ม นะคะ ถ้านอกจากคำว่า "OK" ที่เราอยากให้เค้าจับแล้ว เราอยากให้เค้าจับคำว่า "NO" (OK หรือ NO ) ด้วยหล่ะคะ เราจะเพิ่ม สูตร เข้าไปที่ตรงไหน
    ถ้า "NO" แล้วจะให้เป็นอย่างไรล่ะครับ?
    เพราะถ้าคำตอบมันมีแค่ OK กับ NO พูดง่ายๆ ว่า ถ้าไม่ซ้าย ก็ขวา ดังนั้น ก็ไม่มีความจำเป็นที่จะต้องไปจับ NO ครับ (เว้นแต่จะเปลี่ยนจาก OK เป็น NO ก็แก้ในสูตรได้เลยครับ)

Similar Threads

  1. vlookup แบบมีเงื่อนไข
    By luffy in forum Forum Library
    Replies: 7
    Last Post: 18 Nov 2010, 07:30
  2. Replies: 4
    Last Post: 21 Apr 2008, 15:08
  3. Replies: 2
    Last Post: 16 Feb 2008, 20:05
  4. การใช้ Vlookup
    By p_d in forum Forum Library
    Replies: 1
    Last Post: 5 Jul 2007, 15:51
  5. Replies: 3
    Last Post: 28 Jun 2007, 17:58

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •