Page 1 of 1

ต้องการดึงข้อมูลแบบมีเงื่อไข

Posted: Fri May 25, 2012 5:55 pm
by san02551
ผมต้องดึงข้อมูลแบบมีเงื่อนไข ตามไฟล์แนบครับ

Re: ต้องการดึงข้อมูลแบบมีเงื่อไข

Posted: Fri May 25, 2012 7:56 pm
by snasui
:D ช่วยอธิบายในกระทู้พอสังเขปครับว่าต้องการทำอะไร มีเงื่อนไขอย่างไร เพื่อความสะดวกในการค้นหาของเพื่อน ๆ ครับ

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

Posted: Fri May 25, 2012 8:29 pm
by san02551
ผมต้องการดึงข้อมูลจาก sheet student ให้แสดงที่ sheet2 โดยที่พิมพ์เงื่อนไขที่ sheet menu เช่น เปลี่ยนชั้นประถมศึกษาปีที่ 6 ห้อง 2 ที่ sheet2 จะแสดงรายชื่อนักเรียนขึ้นมาครับ

Re: ต้องการดึงข้อมูลแบบมีเงื่อไข

Posted: Fri May 25, 2012 8:49 pm
by snasui
:D ลองตามนี้ครับ
  1. ที่ Sheet2
  2. เซลล์ C4 คีย์สูตรเพื่อนับว่าพบจำนวนกี่คน
    =SUMPRODUCT(--(menu!D5=Student!B3:B24),--(menu!F5=Student!C3:C24))
    Enter
  3. เซลล์ B6 คีย์สูตรเพื่อให้ลำดับค่าที่ได้
    =IF(ROWS(B$6:B6)>$C$4,"",ROWS(B$6:B6))
    Enter > Copy ลงด้านล่าง
  4. เซลล์ C6 คีย์สูตรเพื่อแสดงเลขประจำตัว
    =IF(ROWS(C$6:C6)>$C$4,"",INDEX(Student!$D$3:$D$24,SMALL(IF(menu!$D$5=Student!$B$3:$B$24,IF(menu!$F$5=Student!$C$3:$C$24,ROW(Student!$B$3:$B$24)-ROW(Student!$B$3)+1)),ROWS(C$6:C6))))
    Ctrl+Shift+Enter > Copy ลงด้านล่าง
  5. เซลล์ D6 คีย์สูตรเพื่อแสดงชื่อและสกุล
    =IF(ROWS(D$6:D6)>$C$4,"",INDEX(Student!$E$3:$E$24&Student!$F$3:$F$24&" "&Student!$G$3:$G$24,SMALL(IF(menu!$D$5=Student!$B$3:$B$24,IF(menu!$F$5=Student!$C$3:$C$24,ROW(Student!$B$3:$B$24)-ROW(Student!$B$3)+1)),ROWS(D$6:D6))))
    Ctrl+Shift+Enter > Copy ลงด้านล่าง

Re: ต้องการดึงข้อมูลแบบมีเงื่อไข

Posted: Fri May 25, 2012 9:10 pm
by san02551
ขอขอบคุณครับ ผมได้แนบไฟล์ไว้ เพื่อเป็นแนวทางสำหรับการศึกษาต่อไปครับ

Re: ต้องการดึงข้อมูลแบบมีเงื่อไข

Posted: Fri May 25, 2012 9:33 pm
by san02551
ผมขอรบกวนอีกรอบครับ พอดีผมไปปรับใช้งานจริง ทำไมข้อมูลนักเรียนไม่แสดงครับ ช่วยแนะนำหน่อยครับไฟล์แนบครับ

Re: ต้องการดึงข้อมูลแบบมีเงื่อไข

Posted: Fri May 25, 2012 10:05 pm
by snasui
:lol: ที่ไม่ได้คำตอบเพราะว่ามีผิดหลายตำแหน่งครับ ได้แก่
  1. ที่ชีท menu เซลล์ F5 เป็น Number แต่ที่ชีท database H3:H352 เป็น Text
  2. การกดแป้นให้รับสูตรต้องกด 3 แป้นตามที่ผมได้แจ้งไป ดูคำอธิบายวิธีกดแป้นเพิ่มเติมได้ที่ http://www.snasui.com/viewtopic.php?p=17124#p17124
  3. เขียนสูตรอ้างอิงคอลัมน์ไม่ถูกต้อง สาเหตุเนื่องจากไม่ได้ทำตัวอย่างที่เป็นตัวแทนข้อมูลจริง และปรับใช้ไม่ถูกต้อง
ลองปรับสูตรเป็นตามด้านล่างครับ

ที่ชีท m
  1. เซลล์ C4
    =SUMPRODUCT(--(menu!D5=database!G3:G352),--(TEXT(menu!F5,0)=database!H3:H352))
    Enter
  2. เซลล์ C6
    =IF(ROWS(C$6:C6)>$C$4,"",INDEX(database!$C$3:$C$352,SMALL(IF(menu!$D$5=database!$G$3:$G$352,IF(TEXT(menu!$F$5,0)=database!$H$3:$H$352,ROW(database!$B$3:$B$352)-ROW(database!$B$3)+1)),ROWS(C$6:C6))))
    Ctrl+Shift+Enter > Copy ลงด้านล่าง
  3. เซลล์ D6
    =IF(ROWS(D$6:D6)>$C$4,"",INDEX(database!$D$3:$D$352&database!$E$3:$E$352&" "&database!$F$3:$F$352,SMALL(IF(menu!$D$5=database!$G$3:$GB$352,IF(TEXT(menu!$F$5,0)=database!$H$3:$H$352,ROW(database!$B$3:$B$352)-ROW(database!$B$3)+1)),ROWS(D$6:D6))))
    Ctrl+Shift+Enter > Copy ลงด้านล่าง

Re: ต้องการดึงข้อมูลแบบมีเงื่อไข

Posted: Sat May 26, 2012 6:00 pm
by san02551
ผมได้เพิ่มชื่อนักเรียนลงไปใน database แล้ว คลิกเลือกชั้นเรียนที่ sheet menu
ชื่อนักเรียนไม่แสดงที่ sheet m ครับ ต้องแก้ไขตรงไหนครับ
ไฟล์แนบ

Re: ต้องการดึงข้อมูลแบบมีเงื่อไข

Posted: Sat May 26, 2012 6:06 pm
by snasui
:lol: ต้องเปลี่ยนช่วงข้อมูลในสูตรให้ครอบคลุมถึงข้อมูลจริงครับ

ยกตัวอย่างบางส่วนของสูตร เช่น database!$D$3:$D$352 แต่ตอนนี้ข้อมูลจริงมีถึง $D$353 ก็ต้องปรับช่วงเซลล์ในสูตรเป็น database!$D$3:$D$353 ครับ

Re: ต้องการดึงข้อมูลแบบมีเงื่อไข

Posted: Sat May 26, 2012 6:47 pm
by san02551
ผมเปลี่ยนสูตรแล้วครับ แต่ข้อมูลนักเรียนยังไม่แสดง

Re: ต้องการดึงข้อมูลแบบมีเงื่อไข

Posted: Sat May 26, 2012 7:04 pm
by snasui
:lol: ลักษณะคล้ายคลึงความเห็นนี้ครับ แต่กลับด้านกัน
snasui wrote:...
ที่ชีท menu เซลล์ F5 เป็น Number แต่ที่ชีท database H3:H352 เป็น Text
นั่นคือ ชีท Database เซลล์ H353 เป็น Number แต่ถูกจัด Format ให้ชิดซ้ายเซลล์ ซึ่งจำเป็นต้องทำให้เป็น Text เพื่อที่จะ Match กันได้ เมื่อทำเป็น Text แล้วค่าในเซลล์จะชิดซ้ายเองโดยไม่ต้องจัด Format

การทำให้เป็น Text สามารถทำดังนี้ครับ
  1. คลิกเซลล์ H353
  2. เข้าเมนู Data > Text to columns
  3. คลิก Next > Next > เลือก Text > Finish

Re: ต้องการดึงข้อมูลแบบมีเงื่อไข

Posted: Sat May 26, 2012 7:24 pm
by san02551
ขอขอบคุณครับ
ผมถามต่อครับ ถ้ากรณีนักเรียนย้ายออก แต่เราไม่ต้องลบชื่อออกจาก database จะมีวิธีการทำอย่างไรครับ

Re: ต้องการดึงข้อมูลแบบมีเงื่อไข

Posted: Sat May 26, 2012 7:29 pm
by snasui
:D ผมมาเพิ่มใจความสำคัญให้กับคำถามใหม่ตามที่ระบายสีไว้ในข้อความด้านล่างเพื่อเพื่อน ๆ จะได้เข้าใจว่าต้องการจะทำอะไร :mrgreen:
san02551 wrote:ขอขอบคุณครับ
ผมถามต่อครับ ถ้ากรณีนักเรียนย้ายออก แต่เราไม่ต้องลบชื่อออกจาก database แต่กรณีที่ดึงข้อมูลจะไม่รวมนักเรียนที่ย้ายออกไปแล้ว จะมีวิธีการทำอย่างไรครับ
การทำเช่นนั้นจะต้องมีคอลัมน์แสดงสถานะของนักเรียนเพิ่มเข้ามาใน Database และเวลาดึงข้อมูลจะเพิ่มเงื่อนไขเข้าไปในสูตรว่าไม่รวมนักเรียนที่ย้ายออกครับ

Re: ต้องการดึงข้อมูลแบบมีเงื่อไข

Posted: Sat May 26, 2012 7:48 pm
by san02551
ได้แล้วครับ ผมย้ายให้นักเรียนไปอยู่ห้อง 9 กรณ๊ย้ายออก และถ้าย้ายกลับมาก็ให้นักเรียนมาอยู่ห้อง 1 ครับ
ไม่รู้ผมเข้าใจหรือเปล่า ที่ทำแบบนี้

Re: ต้องการดึงข้อมูลแบบมีเงื่อไข

Posted: Sat May 26, 2012 7:54 pm
by snasui
:lol: การย้ายออกที่ว่านั้นย้ายไปเรียนโรงเรียนอื่นหรือย้ายห้องครับ ถ้าย้ายห้องก็สามารถทำเช่นนั้นได้ แต่หากย้ายออกไปเลยก็ไม่ควรจะย้ายไปอยู่ห้อง 9 หรือห้องใดที่ไม่มีอยู่จริง เพราะจะไม่ตรงกับสถานะที่ควรจะเป็น หากจะทำเช่นนั้นก็ควรจะเขียนอธิบายเพื่อเตือนความจำและเพื่อเป็นคู่มือให้ผู้ที่จะใช้ไฟล์ได้เข้าใจตรงกันครับ

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