Page 1 of 1

การกลับข้อมูล เพื่อเตรียมทำเป็น list ของ Data validation

Posted: Tue Jun 23, 2020 6:02 pm
by pokkaben
รบกวนสอบถามว่าจากภาพ ผมมีข้อมูลเยอะมาก แต่ต้องการจะกลับให้อยู่ในรูปแบบที่มีหัวตาราง
เพื่อจะได้นำไปทำเป็น list สำหรับ data validation

จะมีวิธีการอย่างไรบ้างครับ
ขอบคุณครับ

Re: การกลับข้อมูล เพื่อเตรียมทำเป็น list ของ Data validation

Posted: Tue Jun 23, 2020 8:24 pm
by puriwutpokin
ควรแนนไฟล์ตัวอย่างมาด้วยนะครับ ในการถาม ตัวอย่างสูตรครับ
ที่ E1=IFERROR(INDEX($A$1:$A$12,MATCH(0,INDEX(COUNTIF($D$1:D$1,$A$1:$A$12),0),0)),"") Copy Right
ที่ E2:G6=IFERROR(AGGREGATE(15,6,$B$1:$B$12/($A$1:$A$12=E$1),ROWS($E$2:$E2)),"")

Re: การกลับข้อมูล เพื่อเตรียมทำเป็น list ของ Data validation

Posted: Wed Jun 24, 2020 8:39 am
by pokkaben
ขอบคุณมากครับ
ขอนำไปทดสอบ

Re: การกลับข้อมูล เพื่อเตรียมทำเป็น list ของ Data validation

Posted: Wed Jun 24, 2020 10:45 am
by pokkaben
สูตรสามารถใช้งานได้ ช่วยงานผมได้เยอะเลย ขอบคุณมากครับ
แต่ผมเองสงสัยในสูตร รบกวนสอบถาม อยากจะเข้าใจกระจ่าง จะได้นำไปประยุกต์ได้ต่อไป

สูตร1 =IFERROR(INDEX($A$1:$A$10,MATCH(0,INDEX(COUNTIF($D$1:D$1,$A$1:$A$10),0),0)),"")
คำถาม
1. INDEX($A$1:$A$10,@,0)
- ผมอ่านจากสูตร แล้วทำไม Index ใหญ่(ครอบอยู่นอกสุด) จบด้วย 0 แปลว่า คอลั่ม คือ 0
- ทำไม เราไม่ตั้งธงจาก 1 เพราะยังไงมันก็เริ่มคอลั่มที่ 1 หรือ การที่เราเลือก rangeเดียว $A$1:$A$10 สามารถมอง 0 หรือ 1 ก็ได้ ค่าเท่ากัน
2. ส่วนในไส้ของข้อ1 ที่หา row โดยใช้สูตร match อันนี้ งง หนัก
- ทำไม look value ใช้ 0 ไปหา
- และ countif ทำไมใช้ $D$1:D$1 ตั้ง ไปหาใน $A$1:$A$10

สูตร2 =IFERROR(AGGREGATE(15,6,$B$1:$B$10/($A$1:$A$10=E$1),ROWS($E$2:$E2)),"")
ผมไปศึกษามาเพิ่มพอเข้าใจแล้วว่า
15 คือ หา small
6 คือไม่สนใจ error
ROWS($E$2:$E2) เหมือน ตัวแทนบอกลำดับว่า แถวเท่าไร เพื่อไล่ small

แต่ตรงที่ผมสงสัยคือ / ที่อยู่ระหว่าง $B$1:$B$10 กับ $A$1:$A$10=E$1
มันเป็นตัวบอกเงื่อนไขหรอครับ เพราะจากที่อ่านผมเข้าใจว่า ให้ระบบไปหาตัวเลขน้อยสุดลำดับ 1 ของ $B$1:$B$10 แต่เนื่องจากมี ทั้ง ABC ในคอลั่มนั้น จึงต้องไปให้มันไปหา เฉพาะ ที่ตรงกับ E$1 หรือเปล่า
พอดีว่าที่สงสัยเพราะว่า $B$1:$B$10/($A$1:$A$10=E$1) มันไปอยู่ใน คอมม่าเดียวกันครับ

ขอบคุณครับ

Re: การกลับข้อมูล เพื่อเตรียมทำเป็น list ของ Data validation

Posted: Wed Jun 24, 2020 8:45 pm
by snasui
pokkaben wrote: Wed Jun 24, 2020 10:45 am แต่ตรงที่ผมสงสัยคือ / ที่อยู่ระหว่าง $B$1:$B$10 กับ $A$1:$A$10=E$1
มันเป็นตัวบอกเงื่อนไขหรอครับ เพราะจากที่อ่านผมเข้าใจว่า ให้ระบบไปหาตัวเลขน้อยสุดลำดับ 1 ของ $B$1:$B$10 แต่เนื่องจากมี ทั้ง ABC ในคอลั่มนั้น จึงต้องไปให้มันไปหา เฉพาะ ที่ตรงกับ E$1 หรือเปล่า
พอดีว่าที่สงสัยเพราะว่า $B$1:$B$10/($A$1:$A$10=E$1) มันไปอยู่ใน คอมม่าเดียวกันครับ
:D สามารถแกะสูตรด้วยการคลุมช่วงเซลล์ที่สนใจแล้วกดแป้น F9 ครับจะเห็นผลลัพธ์ที่เกิดขึ้นครับ

ยกตัวอย่างจาก B$1:$B$10/($A$1:$A$10=E$1) คือการนำ B$1:$B$1 มาหารด้วย ($A$1:$A$10=E$1)

ให้ลองทำดังนี้ครับ
  1. ลากเมาส์คลุม B$1:$B$10 แล้วกดแป้น F9 แล้วสังเกตดูผล ยกเลิกด้วยการกดแป้น Ctrl+Z หรือ ESC
  2. ลากเมาส์คลุม ($A$1:$A$10=E$1) แล้วกดแป้น F9 แล้วสังเกตดูผล ยกเลิกด้วยการกดแป้น Ctrl+Z หรือ ESC
  3. ลากเมาส์คลุม B$1:$B$10/($A$1:$A$10=E$1) แล้วกดแป้น F9 แล้วสังเกตดูผล ยกเลิกด้วยการกดแป้น Ctrl+Z หรือ ESC
หากยังสงสัยสามารถสอบถามมาได้เรื่อย ๆ ครับ