Page 1 of 1

ต้องการดึงข้อมูล 5 อันสุดท้ายจาก sheet 1 ออกไปแสดงใน sheet 2 ทำอย่างไร?

Posted: Fri Feb 08, 2019 3:45 pm
by phop
ต้องการดึงข้อมูล 5 อันสุดท้ายจาก sheet 1 ออกไปแสดงใน sheet 2 ทำอย่างไร?
โดยมีเงื่อนไขดังต่อไปนี้
1. ข้อมูลใน sheet 1 จะมีการเพิ่มขึ้นเรื่อยๆทุกวัน โดยลงข้อมูลต่อด้านล่างไปเรื่อยๆ
2. ต้องการเฉพาะข้อมูล 5 อันล่าสุด (ซึ่งอาจจะไม่ได้เรียงตามวันที่ สมมุติข้อมูลมีวันที่ 1-7 ต้องการให้แสดงข้อมูลล่าสุด 5 อันดับสุดท้ายที่เพิ่มเข้ามาคือข้อมูลของวันที่ 3-7 โดยต้องการข้อมูลที่มาเพิ่ม 5 อันสุดท้าย โดยไม่สนใจวันที่ข้างหน้า เพราะบางวันอาจมีข้อมูล 2 ชุด (*ดูต่อเงื่อนไขข้อ 4) ไปแสดงข้อมูลอยู่ใน sheet 2 เช่น ใน sheet 2 จะแสดงข้อมูลของวันที่ 3-7
3. พอวันรุ่งขึ้นวันที่ 8 ใน sheet 1 ก็จะมีการเพิ่มข้อมูลวันที่ 8 ลงไป โดยต่อข้างล่างจากวันที่ 7 อยากให้ใน sheet 2 แสดงข้อมูล วันที่ 4 - 8 โดยไม่ต้องแสดงวันที่ 3 อีกแล้ว คือข้อมูลที่อยากให้แสดงจะมีแค่ 5 บรรทัดเสมอ
4. กรณีที่วันไหนมีข้อมูล 2 ชุด ให้ดึงเฉพาะข้อมูลชุด 2 เท่านั้น มาแสดงใน sheet 2 ไม่เอาข้อมูลชุดแรก เช่น ในกรณีที่วันที่ 7 มีข้อมูล 2 ชุด ให้เอาข้อมูลวันที่ชุดที่เพิ่มทีหลังมาแสดงใน sheet 2 โดยไม่ต้องแสดงข้อมูลชุดแรก ในกรณีนี้ sheet 2 ก็จะแสดงข้อมูลวันที่ 3-7 (โดยวันที่ 7 แสดงเฉพาะข้อมูลชุดที่ 2)

ขอความกรุณาจากผู้รู้ด้วยครับ

Re: ต้องการดึงข้อมูล 5 อันสุดท้ายจาก sheet 1 ออกไปแสดงใน sheet 2 ทำอย่างไร?

Posted: Fri Feb 08, 2019 7:39 pm
by phop
ขออนุญาตครับ โพสเองตอบเอง (เนื่องจากในระหว่างที่รอคำตอบจากที่นี่ ผมไปบังเอิญเจอกระทู้หนึ่งใน pantip.com (https://pantip.com/topic/34720760) คุณปรุงก่อนชิมได้มาตอบไว้คล้ายๆกับที่ผมต้องการ แล้วผมก็เพิ่มเติมอีกนิดหน่อยได้ตรงกับความต้องการของผม (เกือบพอดี) คือได้ตามเงื่อนไข 1-3 แต่ไม่ได้ข้อ 4
คือใช้สูตร =INDEX('sheet1'!B1:B60007,COUNTA('sheet1'!B1:B60007)) จะได้อันล่าสุด
=INDEX('sheet1'!B1:B60007,COUNTA('sheet1'!B1:B60007)-1,0) ได้ของเมื่อวาน
=INDEX('sheet1'!B1:B60007,COUNTA('sheet1'!B1:B60007)-2,0) ได้ของเมื่อวานซืน
=INDEX('sheet1'!B1:B60007,COUNTA('sheet1'!B1:B60007)-3,0) วันก่อนเมื่อวานซืน
=INDEX('sheet1'!B1:B60007,COUNTA('sheet1'!B1:B60007)-4,0) วันก่อนวันก่อนเมื่อวานซืน
ซึ่งได้ครบ 5 วันตามแบบที่ต้องการพอดี พอลงข้อมูลวันใหม่ มันก็เปลี่ยนตาม เอาแค่ข้อมูล 5 อันล่าสุดมาให้

แต่ยังขาดเงื่อนไขข้อ 4 คือกรณีที่วันไหนมีข้อมูล 2 ชุดแล้วจะเอาเฉพาะชุดใหม่ ไม่เอาชุดแรกของวันนั้น รบกวนท่านผู้รู้ด้วยครับ

Re: ต้องการดึงข้อมูล 5 อันสุดท้ายจาก sheet 1 ออกไปแสดงใน sheet 2 ทำอย่างไร?

Posted: Fri Feb 08, 2019 7:53 pm
by puriwutpokin
ตามไฟล์แนบ ชีท1 ไม่มีครับ ชีท2 ก็ไม่มีครับ ควรทำข้อมูลให้ตรงกับการตั้งคำถามครับ
และข้อมูลหลักแสดงให้ชัดเจน และผลลัพธ์ที่ต้องการ ก็แสดงให้ดูเป็นตัวอย่างด้วยครับ
จะได้สะดวกต่อการตอบครับ

Re: ต้องการดึงข้อมูล 5 อันสุดท้ายจาก sheet 1 ออกไปแสดงใน sheet 2 ทำอย่างไร?

Posted: Sun Feb 10, 2019 12:44 am
by Bo_ry
Sheet2 B2 ลากขวา ลากลง

=INDEX(Sheet3!B:B,LARGE(IF(MATCH(INDEX(Sheet3!$B:$B,N(IF(1,MATCH("ๆ",Sheet3!$B:$B)-ROW($B$1:$B$9)+1)))&"",INDEX(Sheet3!$B:$B,N(IF(1,MATCH("ๆ",Sheet3!$B:$B)-ROW($B$1:$B$9)+1)))&"",)=ROW($B$1:$B$9),MATCH("ๆ",Sheet3!$B:$B)-ROW($B$1:$B$9)+1),6-ROWS(B$2:B2)))