:D snasui.com ยินดีต้อนรับ :D
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย :thup: สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ :arrow: ระบุ Version ของ Excel
:!: โปรดทราบ :!:
  1. กรุณาอ่านกฎการใช้บอร์ด (Forum rules) ในตำแหน่งด้านบนของแต่ละบอร์ด
  2. การสมัครสมาชิก การ Login การกู้คืนรหัสผ่าน
    1. สมัครสมาชิกดูขั้นตอนได้ที่ :arrow: สมัครสมาชิก
    2. Login เข้าระบบโดยคลิกปุ่ม Login ตรงมุมขวาบนของหน้านี้ :roll:
    3. การ Login ผ่าน Facebook ดูวิธีที่ :arrow: Login ผ่าน Facebook
    4. ลืมรหัสผ่านสามารถรับรหัสใหม่ได้ที่ :arrow: Reset รหัสผ่าน
  3. มีปัญหาการใช้งาน แจ้งผู้ดูแลระบบได้ที่ :arrow: ติดต่อผู้ดูแลระบบ
  4. กำหนดการตั้งค่าส่วนตัว เช่นตั้งค่าภาษาเป็นไทยหรืออังกฤษดูได้ที่ :arrow: ตั้งค่าส่วนตัว
  5. การตั้งและตอบกระทู้ดูได้ที่ :arrow: วิธีการตั้งและตอบกระทู้
  6. การจัดรูปแบบตัวอักษรด้วย bbcode ในช่องแสดงความคิดเห็นดูได้ที่ :arrow: จัดรูปแบบตัวอักษร
  7. กำหนดขนาดตัวอักษรใน Browser ดูได้ที่ :arrow: กำหนดขนาดตัวอักษรใน Browser

List รายการแบบหลาย Condition

ฟอรัมถาม-ตอบปัญหาการใช้งานสูตรและฟังก์ชัน Excel
Forum rules
  1. ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
  2. ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
  3. กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
  4. กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
  5. กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
  6. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
Peterkrubpom
Member
Member
Posts: 21
Joined: Tue Feb 27, 2018 2:06 pm

List รายการแบบหลาย Condition

#1

Post by Peterkrubpom »

เรียน ปรึกษาอาจารย์ครับ ผมต้องการ List รายการออกมาต่อกัน โดยมี 3 Condition
1. เป็นการแนะนำด้วยรหัสตั้งต้น และมีฝั่งกำหนด โดยมีชั้นที่มากกว่ารหัสสมาชิกที่สนใจ
2.เป็นรหัสสมาชิกที่สนใจ (G2) เป็นรหัสแนะนำ โดยไม่สนใจฝั่ง แต่มีชั้นที่มากกว่าชั้นที่ ตัวเองอยู่ เช่น 0000000002 อยู่ชั้นที่ 1 ก็ให้ไปหาค่ารหัสสมาชิกที่ 0000000002 แนะนำแต่อยู่ชั้นที่ 2
3. หารหัสสมาชิกที่แนะนำต่อ เช่นรหัสสมาชิก 0000000002 แนะนำรหัส 0000000013 ก็เข้ามาเรียงต่อ และหากรหัส 0000000013 ไปแนะนำท่านไหนต่อก็มา List ต่อเนื่องกันไปครับ
สิ่งที่ต้องการคือ List รหัสสมาชิกออกมา โดยพิจารณาจาก ข้อ 1-3 ครับผม รวมกัน

โดยผมแนบตัวอย่างไว้ในเอกสารแนบครับผม และใส่คำถามไว้ข้างในด้วยครับ

ช่วยแนะนำด้วยครับผม
You do not have the required permissions to view the files attached to this post.
User avatar
puriwutpokin
Guru
Guru
Posts: 3801
Joined: Fri Jan 04, 2013 9:49 pm
Location: Bangkok
Excel Ver: MS.365

Re: List รายการแบบหลาย Condition

#2

Post by puriwutpokin »

Peterkrubpom wrote: Sun Nov 03, 2019 9:03 am เรียน ปรึกษาอาจารย์ครับ ผมต้องการ List รายการออกมาต่อกัน โดยมี 3 Condition
1. เป็นการแนะนำด้วยรหัสตั้งต้น และมีฝั่งกำหนด โดยมีชั้นที่มากกว่ารหัสสมาชิกที่สนใจ
2.เป็นรหัสสมาชิกที่สนใจ (G2) เป็นรหัสแนะนำ โดยไม่สนใจฝั่ง แต่มีชั้นที่มากกว่าชั้นที่ ตัวเองอยู่ เช่น 0000000002 อยู่ชั้นที่ 1 ก็ให้ไปหาค่ารหัสสมาชิกที่ 0000000002 แนะนำแต่อยู่ชั้นที่ 2
3. หารหัสสมาชิกที่แนะนำต่อ เช่นรหัสสมาชิก 0000000002 แนะนำรหัส 0000000013 ก็เข้ามาเรียงต่อ และหากรหัส 0000000013 ไปแนะนำท่านไหนต่อก็มา List ต่อเนื่องกันไปครับ
สิ่งที่ต้องการคือ List รหัสสมาชิกออกมา โดยพิจารณาจาก ข้อ 1-3 ครับผม รวมกัน

โดยผมแนบตัวอย่างไว้ในเอกสารแนบครับผม และใส่คำถามไว้ข้างในด้วยครับ

ช่วยแนะนำด้วยครับผม
ลองทำตัวอย่างของคำตอบที่ต้องการมาดูด้วยครับ จะได้เข้าใจตรงกันครับ แล้ว สูตรที่ลิ้งค์มา มีส่วนเกียวข้องอย่างไรครับ
:shock: :roll: :D
Peterkrubpom
Member
Member
Posts: 21
Joined: Tue Feb 27, 2018 2:06 pm

Re: List รายการแบบหลาย Condition

#3

Post by Peterkrubpom »

เรียน อาจารย์ครับ
- สูตรที่ติดไปด้วย ผมน่าจะลืมเอาออกครับ
- ผมลัพท์ที่ต้องจากมันจะเรียงรหัส
0000000008 (เพราะ 000000001 แนะนำอยู่ขวามือ และชั้นสูงกว่า 0000000002)
0000000009 (เพราะ 0000000008 แนะนำ ไม่เดี่ยวกับฝั่ง)
0000000010 (เพราะ 000000001 แนะนำอยู่ขวามือ และชั้นสูงกว่า 0000000002)
0000000011 (เพราะ 0000000002 แนะนำและอยู่ชั้นที่มากกว่า)

ส่วน 0000000003-0000000007 ไม่อยู่ใน Condition

ขอบพระคุณมากครับอาจารย์
Peterkrubpom
Member
Member
Posts: 21
Joined: Tue Feb 27, 2018 2:06 pm

Re: List รายการแบบหลาย Condition

#4

Post by Peterkrubpom »

ผมพยายามใช้สูตร match(1,(....)*(....),0) และใช้สูตร List รายการเข้าไปสวมแต่มัน error นะครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31256
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: List รายการแบบหลาย Condition

#5

Post by snasui »

Peterkrubpom wrote: Sun Nov 03, 2019 9:47 am เรียน อาจารย์ครับ
- สูตรที่ติดไปด้วย ผมน่าจะลืมเอาออกครับ
- ผมลัพท์ที่ต้องจากมันจะเรียงรหัส
0000000008 (เพราะ 000000001 แนะนำอยู่ขวามือ และชั้นสูงกว่า 0000000002)
0000000009 (เพราะ 0000000008 แนะนำ ไม่เดี่ยวกับฝั่ง)
0000000010 (เพราะ 000000001 แนะนำอยู่ขวามือ และชั้นสูงกว่า 0000000002)
0000000011 (เพราะ 0000000002 แนะนำและอยู่ชั้นที่มากกว่า)

ส่วน 0000000003-0000000007 ไม่อยู่ใน Condition

ขอบพระคุณมากครับอาจารย์
:D ทำตัวอย่างให้ถูกต้องตรงกับที่ต้องการแล้วแนบไฟล์มาใหม่ กรณีต้องการข้อมูลใดมาเป็นเงื่อนไข ข้อมูลนั้นจะต้องมีอยู่ใน Database ด้วย ไม่เช่นนั้นจะหาคำตอบให้ไม่ได้ครับ
Peterkrubpom
Member
Member
Posts: 21
Joined: Tue Feb 27, 2018 2:06 pm

Re: List รายการแบบหลาย Condition

#6

Post by Peterkrubpom »

ได้ครับอาจารย์ เดี๋ยวผมแก้ไขใหม่ครับ
Peterkrubpom
Member
Member
Posts: 21
Joined: Tue Feb 27, 2018 2:06 pm

Re: List รายการแบบหลาย Condition

#7

Post by Peterkrubpom »

เรียน อาจารย์ครับ ผมแนบ File มาให้ใหม่แล้วครับ สิ่งที่ต้องการคือตัวที่เป็น Highlight สีเขียวครับผม ขอบพระคุณมากครับผม
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31256
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: List รายการแบบหลาย Condition

#8

Post by snasui »

:D ผมอ่านแล้วจับความสัมพันธ์ของข้อมูลไม่ได้ว่านำมาแสดงอย่างไร เพราะไม่ได้เป็นการ Lookup ต่อเนื่องกันไป คงต้องรอผู้ที่เข้าใจมาช่วยตอบครับ
Peterkrubpom
Member
Member
Posts: 21
Joined: Tue Feb 27, 2018 2:06 pm

Re: List รายการแบบหลาย Condition

#9

Post by Peterkrubpom »

อาจารย์ พออธิบายเรื่องการ List รายการไม่ซ้ำ ตามสูตรแบบนี้ไหมครับ ผมอาจจะเอามา Adapt นะครับผม IFERROR(INDEX($Z$4:$Z$23,SMALL(IF(ISNUMBER(MATCH($X$4:$X$23,$T$3:T6,0)),ROW($X$4:$X$23)-ROW($X$4)+1),ROWS(T$4:T7))),"")

ผมไม่เข้าใจ
1. small
2. isnumber
3. row

เพราะผมอยากเอาสูตรนี้มาใส่ match 3 conditions เพื่อ List รายการมานะครับผม
User avatar
snasui
Site Admin
Site Admin
Posts: 31256
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: List รายการแบบหลาย Condition

#10

Post by snasui »

:D ตัวอย่างการแปลสูตรครับ

จากสูตร IFERROR(INDEX($Z$4:$Z$23,SMALL(IF(ISNUMBER(MATCH($X$4:$X$23,$T$3:T6,0)),ROW($X$4:$X$23)-ROW($X$4)+1),ROWS(T$4:T7))),"") แปลว่า

หาก INDEX($Z$4:$Z$23,SMALL(IF(ISNUMBER(MATCH($X$4:$X$23,$T$3:T6,0)),ROW($X$4:$X$23)-ROW($X$4)+1),ROWS(T$4:T7))) ได้ผลลัพธ์เป็นค่าผิดพลาดให้แสดงค่าว่าง

จากสูตร INDEX($Z$4:$Z$23,SMALL(IF(ISNUMBER(MATCH($X$4:$X$23,$T$3:T6,0)),ROW($X$4:$X$23)-ROW($X$4)+1),ROWS(T$4:T7))) แปลว่า จากช่วงเซลล์ $Z$4:$Z$23 ให้นำลำดับที่เป็นผลลัพธ์ของ SMALL(IF(ISNUMBER(MATCH($X$4:$X$23,$T$3:T6,0)),ROW($X$4:$X$23)-ROW($X$4)+1),ROWS(T$4:T7)) มาแสดง

จากสูตร SMALL(IF(ISNUMBER(MATCH($X$4:$X$23,$T$3:T6,0)),ROW($X$4:$X$23)-ROW($X$4)+1),ROWS(T$4:T7)) แปลว่า ให้หาค่าที่น้อยที่สุดในช่วง IF(ISNUMBER(MATCH($X$4:$X$23,$T$3:T6,0)),ROW($X$4:$X$23)-ROW($X$4)+1) เป็นลำดับที่ ROWS(T$4:T7) ขยายวามได้ว่า หาก ROWS(T$4:T7) มีค่าเป็น 1 ก็หาค่าที่น้อยที่สุดเป็นลำดับที่ 1 ถ้าเป็น 10 ก็หมายถึงให้หาค่าที่น้อยที่สุดเป็นลำดับที่ 10 เป็นต้น

จาก IF(ISNUMBER(MATCH($X$4:$X$23,$T$3:T6,0)),ROW($X$4:$X$23)-ROW($X$4)+1) แปลว่า ถ้า ISNUMBER(MATCH($X$4:$X$23,$T$3:T6,0)) เป็นจริงให้แสดงผลลัพธ์ของ ROW($X$4:$X$23)-ROW($X$4)+1

จาก ISNUMBER(MATCH($X$4:$X$23,$T$3:T6,0)) แปลว่า MATCH($X$4:$X$23,$T$3:T6,0) เป็นตัวเลขใช่หรือไม่ หากใช่แสดงค่า True หากไม่ใช่แสดงค่า False

จากสูตร MATCH($X$4:$X$23,$T$3:T6,0) แปลว่า ให้หา $X$4:$X$23 ว่าอยู่ในำลำดับที่เท่าไรของ $T$3:T6 ลักษณะการค้นจะเป็นแบบด้านล่าง

X4 อยู่ในลำดับที่เท่าไรของ T3:T6
X5 อยู่ในลำดับที่เท่าไรของ T3:T6
...
X23 อยู่ในลำดับที่เท่าไรของ T3:T6

หากพบจะแสดงค่าลำดับที่พบ หากไม่พบจะแสดง #N/A

จากสูตร ROW($X$4:$X$23)-ROW($X$4)+1 หมายถึงให้แสดงค่าลำดับเริ่มจากเลข 1 เป็นต้นไป โดยค่าลำดับสิ้นสุดจะมีขนาดเท่ากับจำนวนบรรทัดในช่วง ROW($X$4:$X$23) ขยายความได้ว่า ถ้า ROW($X$4:$X$23) มี 20 บรรทัดก็จะแสดงค่าลำดับจาก 1-20

การแปลสูตรจะแปลจากสูตรนอกสุดไปสูตรที่อยู่ด้านในสุด การแทนค่าจะแทนค่าจากสูตรในสุดออกไปสูตรที่อยู่ด้านนอกสุด สูตรที่อยู่ด้านในจะส่งค่าไปคำนวณต่อที่สูตรที่อยู่ด้านนอก

ค่อย ๆ ทำความเข้าใจครับ
Peterkrubpom
Member
Member
Posts: 21
Joined: Tue Feb 27, 2018 2:06 pm

Re: List รายการแบบหลาย Condition

#11

Post by Peterkrubpom »

ขอบพระคุณมากครับผม
Post Reply