l2unko wrote:ขอบคุณมากค่ะ ทดลองแล้ว ใช้ได้ค่ะ แต่ว่าชื่อที่ทำ มันเหมือนไม่เรียงละดับ อีกอย่างไม่ต้องการให้แสดงผลรวมค่ะ
ตอนนี้ลองทำแบบรายการแล้ว -/\-
แต่ว่า ถ้าเกิดต้องการใช้เป็นสูตรคำสั่ง จะมีวิธีทำมั้ยคะ ขอบคุณมากค่ะ
สำหรับการใช้สูตรด้วยข้อมูลที่แยกออกมาเป็น Sheet นั้น สามารถทำได้ แต่ต้องติดตั้ง Add-ins ที่ชื่อ Morefunc ซึ่งผมนำลิ้งค์มาให้ดาวน์โหลดไปใช้งานกันตามด้านบน แม้จะใช้ Add-ins มาช่วยแล้วก็ตามสูตรที่ใช้ก็มีความซับซ้อนอยู่มากสำหรับผู้ใช้งานทั่วไป
ถ้าจะให้ง่ายเข้าก็ต้องทำข้อมูลให้เป็น Database แล้วสรุปข้อมูลด้วย PivotTable ตามที่ผมแนะนำครับ หากต้องการให้อยู่ใน Form ที่เตรียมไว้ล่วงหน้าก็สามารถที่จะ Copy ข้อมูลที่ได้นั้นไปใช้ได้ กรณีการจัดเรียง เราสามารถกำหนดให้ PivotTable จัดเรียงให้เราได้ครับ หรือเราจะลากข้อมูลเพื่อจัดเรียงแบบ Manual ก็ได้ ส่วน Total ใน PivotTable ถ้าไม่ต้องการก็สามารถซ่อนคอลัมน์หรือซ่อนบรรทัดไปได้
ส่วนชื่อที่ไม่เรียงเท่าที่ผมทดสอบก็เรียงตามอักษรเป็นปกติ ซึ่งเราสามารถที่จะจัดเรียงเองได้ โดยคลิกขวาลงไปใน Feild ข้อมูลที่ต้องการเรียง เช่นตามรูปด้านบน ลองทำตามนี้ครับ
1. หลังจากทำ PivotTable แล้วคลิกขวาลงบนเซลล์ที่ชื่อว่าเรื่อง (B4)
2. เลือก Feild Settings > Advance
3. เลือก Ascending หรือ Descending แล้วแต่ความต้องการ > OK
กรณีต้องการใช้สูตรหลังจากที่นำข้อมูลมาต่อกันให้เป็น Database แล้วสูตรก็ยังคงซับซ้อนครับ ดูตัวอย่างได้ตามไฟล์แนบ โดยมีลำดับตามขั้นตอนดังนี้
1. ที่ Sheet1 เซลล์ E1 คีย์ 0
2. ที่ Sheet1 เซลล์ E2 คีย์สูตร
=IF(D2+0=-2,LOOKUP(9.99999999999999E+307,E$1:E1)+1,"")
Enter > Copy ลงด้านล่าง
3. ที่ Sheet Total เซลล์ C2 คีย์
=LOOKUP(9.99999999999999E+307,Sheet1!E:E)
Enter
4. ที่ Sheet Total เซลล์ A3 คีย์
=IF(ROWS(A$3:A3)>$C$2,"",LOOKUP(ROWS(A$3:A3),Sheet1!$E$2:$E$31,Sheet1!$A$2:$A$31))
Enter > Copy ลงด้านล่าง
5. ที่ Sheet Total เซลล์ B3 คีย์
=IF(ROWS(A$3:A3)>$C$2,"",LOOKUP(ROWS(A$3:A3),Sheet1!$E$2:$E$31,Sheet1!$C$2:$C$31))
Enter > Copy ลงด้านล่าง