Page 1 of 1

การให้ผู้ใช้เลือกเพียง 1 ค่าแล้วข้อมูลที่เกี่ยวข้องแสดง

Posted: Sun Oct 17, 2010 9:27 pm
by godman
คือผมกำหนดให้ผู้ใช้เลือกเพียง รหัส ดังไฟล์แนบ แล้วให้ชื่อรายการต่างๆที่สัมพันธ์กับรหัสพนักงานนั้นแสดงทังหมด ผมใช้สูตรที่ผมกำลังจะจำได้คือ if(rows.......offset(...match(....)) ประมาณนี้ครับ แต่ผมไม่ทราบว่าทำไมผมจึงทำไม่ออกครับ รบกวนอาจารย์ดูให้หน่อยครับว่าผิดตรงใหน
และช่วยอธิบายสูตรให้ผมด้วยครับว่า ทำไมต้องมี -1 row +1 ตรงท้ายสูตร ผมอยากทำสูตรนี้ให้คล่องนะครับ
=IF(ROWS($C$7:C7)>$F$4,"",offet(Database!$J$2,MATCH(Sheet1!$D$2,Database!$A$2:$A$100,0)-1+ROWS($C$7:C7)-1,0))

ตัวอย่างสูตรที่ดัดปรับจากของอาจารย์ครับ

Re: การให้ผู้ใช้เลือกเพียง 1 ค่าแล้วข้อมูลที่เกี่ยวข้องแสดง

Posted: Sun Oct 17, 2010 9:48 pm
by snasui
:D ก่อนจะอธิบายสูตร เท่าที่เห็นคือคำว่า Offset เขียนไม่ถูกต้องนะครับ จะต้องมีตัว s ในคำว่า Offset ด้วยครับ เมื่อแก้คำว่า Offset แล้วสูตรจะแสดงผลตามที่ต้องการครับ

จากสูตร =IF(ROWS($C$7:C7)>$F$4,"",offset(Database!$J$2,MATCH(Sheet1!$D$2,Database!$A$2:$A$100,0)-1+ROWS($C$7:C7)-1,0))

ฟังก์ชั่น Offset ผมเขียนอธิบายไว้ที่นี่ค่อนข้างละเอียด http://snasui.blogspot.com/2009/03/offset.html ลองทำความเข้าใจดูครับ

สำหรับ Match, -1 และ Rows, ใช้เพื่อให้เกิดความยืดหยุ่นเมื่อมีการลากสูตรลงไปด้านล่างจะมีการปรับให้แสดงผลลัพธ์ในลำดับถัดไปตามต้องการครับโดย

Match เป็นการหาลำดับที่ของค่าเป้าหมายในช่วงข้อมูลที่ต้องการ การนำมาใช้ใน Offset หากให้ตรงกับส่วนประกอบที่สองของ offset จะต้องหักด้วย 1 ครับ ทั้งนี้เนื่องจากค่าแรกของ Match จะเริ่มด้วย 1 แต่ส่วนประกอบที่สองของ Offset จะเริ่มที่ 0 (สังเกตว่าสูตรที่ยกมาเราใช้ Match เป็นส่วนประกอบที่สองของ Offset)

Rows จะให้ผลลัพธ์เป็นจำนวนแถวซึ่งต้องเริ่มจาก 1 เสมอหากต้องนำมาใช้บวกกับ Match ซึ่งใช้เป็นส่วนประกอบที่สองของ Offset ก็จะต้องหักออกด้วย 1 เช่นกัน เพื่อให้เริ่มด้วย 0

ลองค่อย ๆ ทำความเข้าใจดูครับ ติดขัดตรงไหนถามมาได้เต็มที่ครับ :mrgreen:

Re: การให้ผู้ใช้เลือกเพียง 1 ค่าแล้วข้อมูลที่เกี่ยวข้องแสดง

Posted: Sun Oct 17, 2010 10:02 pm
by godman
อ๋อ พลาดแบบง่ายๆ เลยนะครับ เห็นลิเวอร์พูลเล่นแล้วเซ็งจิต นะครับ ไม่รู้จะตกชั้นหรือปล่าว แต่คงเชียร์ต่อไป