Page 1 of 1

การแสดงข้อมูลข้ามชีทแบบมีเงื่อนไข

Posted: Fri Nov 03, 2017 4:30 pm
by pannipa
อยากทราบการใช้คำสั่ง ให้แสดงข้อมูลแบบมีเงื่อนไขไปแสดงอีกชีทหนึ่งค่ะ
เช่น กรอกข้อมูลในชีท 011117 ISO ชื่อA ก็ให้ไปขึ้นในชีท Summary ของช่อง A
ซึ่งชื่อสามารถเปลี่ยนได้ตลอดเพราะเป็น drop down ค่ะ ถ้าลงข้อมูลชื่อไหน จะให้ข้อมูลไปแสดงของช่องนั้นค่ะ
มีไฟล์ตัวอย่างแนบให้นะคะ
รบกวนผู้รู้ช่วยเหลือด้วยค่ะ
ขอบคุณมากค่ะ

Re: การแสดงข้อมูลข้ามชีทแบบมีเงื่อนไข

Posted: Fri Nov 03, 2017 7:06 pm
by puriwutpokin
ที่ B5=IFERROR(INDEX(INDIRECT("'"&TEXT($A5,"ddmmyy")&" ISO"&"'!C5:F11"),MATCH(LOOKUP(CHAR(255),$B$2:B$2),INDIRECT("'"&TEXT($A5,"ddmmyy")&" ISO"&"'!A5:A11"),0),MATCH(B$4,INDIRECT("'"&TEXT($A5,"ddmmyy")&" ISO"&"'!C4:F4"),0)),"") คัดลอกไปทางขวาและลงล่างครับ

Re: การแสดงข้อมูลข้ามชีทแบบมีเงื่อนไข

Posted: Sun Nov 05, 2017 8:48 pm
by pannipa
puriwutpokin wrote:ที่ B5=IFERROR(INDEX(INDIRECT("'"&TEXT($A5,"ddmmyy")&" ISO"&"'!C5:F11"),MATCH(LOOKUP(CHAR(255),$B$2:B$2),INDIRECT("'"&TEXT($A5,"ddmmyy")&" ISO"&"'!A5:A11"),0),MATCH(B$4,INDIRECT("'"&TEXT($A5,"ddmmyy")&" ISO"&"'!C4:F4"),0)),"") คัดลอกไปทางขวาและลงล่างครับ
ขอบคุณมากค่ะ คุณ puriwutpokin Codeใช้งานได้จริงๆค่ะ พอจะมีคำอธิบายของ code ไว้เป็นกรณีศึกษาให้หน่อยได้หรือไม่คะ
ว่าทำงานอย่างไรบ้าง

Re: การแสดงข้อมูลข้ามชีทแบบมีเงื่อนไข

Posted: Tue Nov 07, 2017 10:53 am
by puriwutpokin
pannipa wrote:
puriwutpokin wrote:ที่ B5=IFERROR(INDEX(INDIRECT("'"&TEXT($A5,"ddmmyy")&" ISO"&"'!C5:F11"),MATCH(LOOKUP(CHAR(255),$B$2:B$2),INDIRECT("'"&TEXT($A5,"ddmmyy")&" ISO"&"'!A5:A11"),0),MATCH(B$4,INDIRECT("'"&TEXT($A5,"ddmmyy")&" ISO"&"'!C4:F4"),0)),"") คัดลอกไปทางขวาและลงล่างครับ
ขอบคุณมากค่ะ คุณ puriwutpokin Codeใช้งานได้จริงๆค่ะ พอจะมีคำอธิบายของ code ไว้เป็นกรณีศึกษาให้หน่อยได้หรือไม่คะ
ว่าทำงานอย่างไรบ้าง
TEXT($A5,"ddmmyy") เพื่อเปลี่ยนวันที่เป็น Textให้เหมือนชื่อชีทที่จะต้องการดึงข้อมูลครับ และ &" ISO" เพื่อทำให้วันที่ที่กล่าวมาเป็นตามชีทที่ต้องการดึงค่าครับ
INDIRECT("'"&TEXT($A5,"ddmmyy")&" ISO"&"'!C5:F11") เป็นการเอาช่วงข้อมูลที่ชีทนั้นตามเงื่อนไขที่ได้รับมาครับ
LOOKUP(CHAR(255),$B$2:B$2) เป็นการเอาค่าสุดท้ายที่เป็น ข้อความออกมาครับ
MATCH( เป็นการหาตำแหน่งของแถวที่ต้องการออกมาครับ
MATCH(B$4,INDIRECT("'"&TEXT($A5,"ddmmyy")&" ISO"&"'!C4:F4"),0)) เป็นการหาค่าตำแหน่งคอลัมน์ที่ต้องการดึงค่ามาครับ
สรุป ประมาณว่า =index(ช่วงข้อมูลทั้งหมด,ตำแหน่งแถวที่ต้องการหาค่าตรงกัน,ตำแหน่งคอลัมน์ที่ต้องการหาค่าตรงกัน)
ส่วน IFERROR( ไว้ดักเวลา ข้อมูลผิดพลาดให้แสดงค่าเป็น ค่าว่าง ""
ลองศึกษาเพิ่มเติมจากกระทู้เก่าในเว็บนี้ได้ครับ ติดขัดถามกันต่อครับ