Page 1 of 1
ต้องการให้โชว์ข้อมูล โดยกำหนดตามช่วงวันที่
Posted: Sun Sep 23, 2012 8:45 pm
by bafo
สวัสดีครับ
รบกวนขอคำแนะนำด้วยครับ
1. ในชีท WorkTimeMonth ข้อมูลใน Column "C" ในช่อง ชื่อ-สกุล ( C25:C29 )
ผลลัพธ์ชื่อ-สกุล ที่ผมต้องการจะเป็นชื่อที่ไม่ซ้ำกันครับ ( ตามตัวอย่างที่แนบไฟล์ครับ )
2. วันที่การมาปฎิบัติงาน ที่ผมต้องการจะจัดเรียงเป็นแถวตามตัวอย่างครับ
( กำหนดเป็น / ( มา ) และ X ( ไม่มา ) ครับ
เนื่องจากสูตรเดิมที่ผมทำไว้ไม่สามารถ Group ตามชื่อได้ครับ รบกวนขอคำแนะนำสูตรด้วยครับ
ขอบคุณครับ
Re: ต้องการให้โชว์ข้อมูล โดยกำหนดตามช่วงวันที่
Posted: Sun Sep 23, 2012 11:05 pm
by snasui

จากตัวอย่าง วันที่ในเซลล์ D2:D3 ดูแล้วไม่สัมพันธ์กับวันที่ใน D25:D29 ไม่ทราบว่าที่จริงแล้วต้องสัมพันธ์กันหรือไม่ครับ ข้อมูลต้นแหล่งอยู่ที่ชีท Data ใช่หรือไม่ครับ
Re: ต้องการให้โชว์ข้อมูล โดยกำหนดตามช่วงวันที่
Posted: Sun Sep 23, 2012 11:41 pm
by bafo
สวัสดีครับ
วันที่ในช่อง d2:d3 เป็นวันที่ใช้ค้นหาข้อมูลครับ เมื่อเลือกช่วงวันที่ ข้อมูลที่ได้ใน C25:AM30 ก็จะเปลี่ยนไปตามช่วงวันที่ครับ
เหมือกันข้อมูลในชีท TimeWorkDay ครับ เลือกช่วงวันใดวันหนึ่งเท่านััน ( เฉพาะชีทนี้ครับ )
โดยข้อมูลจะปรากฎในช่วงวันที่ๆ เราระบุครับ
ส่วนข้อมูลใน D25:D29 เป็นผลลัพธ์ที่ต้องการครับ ( โดยข้อมูลทั้งหมดจะอ้างอิงจากชีท Data ครับ เป็นข้อมูลหลักครับ )
ความต้องการ :
1.ต้องการตัดชือ-สกุลที่ซ้ำออกครับ ในชีท WorkTimeMonth ในกรณีเดือนนั้นมีชื่อซ้ำครับ ตามตัวอย่างในชีท WorkTimeMonth (C25:C29) โดยสามารถระบุวันที่ค้นหา และข้อมูลจะเปลี่ยนไปตามช่วงวันที่ครับ )
2.วันที่่การมาปฎิบัติงาน อยากได้ข้อมูลตามตัวอย่างที่แนบให้ในไฟล์ครับ ( เนื่องจากที่ผมทำไว้ ได้ข้อมูลไม่ถูกต้องครับ )
ขอบคุณครับ
Re: ต้องการให้โชว์ข้อมูล โดยกำหนดตามช่วงวันที่
Posted: Mon Sep 24, 2012 7:30 am
by snasui

ตัวอย่างสูตรในชีท WorkTimeMonth ครับ
- เซลล์ D4 คีย์สูตรเพื่อนับว่าพบกี่รายการ
=SUM(IF(FREQUENCY(IF(Date>=Date_From1,IF(Date<=Date_To1,MATCH(Name,Name,0))),(ROW(Name)-MIN(ROW(Name))+1)),1))
Ctrl+Shift+Enter
- เซลล์ B8 คีย์สูตรเพื่อ List ลำดับ
=IF(ROWS(B$8:B8)>$D$4,"",ROWS(B$8:B8))
Enter > Copy ลงด้านล่าง
- เซลล์ C8 คีย์สูตรเพื่อแสดงชื่อสกุลที่พบแบบไม่ซ้ำ
=IF(N($B8),INDEX(Name,SMALL(IF(FREQUENCY(IF(Date>=Date_From1,IF(Date<=Date_To1,MATCH(Name,Name,0))),(ROW(Name)-MIN(ROW(Name))+1)),ROW(Name)-MIN(ROW(Name))+1),$B8)),"")
Ctrl+Shift+Enter > Copy ลงด้านล่าง และปรับสูตรนี้เพื่อนำไปใช้กับคอลัมน์ D:H
- เซลล์ I8 คีย์สูตรเพื่อแสดงมาปฏิบัติงาน
=IF(N($B8),INDEX(Time,MATCH(1,IF($C8=Name,IF(I$6=Date,1)),0)),"")
Ctrl+Shift+Enter > Copy ลงด้านล่าง
เมื่อแสดงผลได้ถูกต้องแล้วค่อยถามในส่วนที่ยังติดปัญหาต่อไปครับ
Re: ต้องการให้โชว์ข้อมูล โดยกำหนดตามช่วงวันที่
Posted: Mon Sep 24, 2012 9:05 am
by bafo
สวัสดีครับ
ผมใส่ค่าสูตรตามที่ได้รับคำแนะนำแล้วครับ ได้ผลออกมาถูกต้องครับ แต่ยังติดปัญหาดังนี้ครับ
1. ในช่อง E8 ( Column สถานภาพ ) ผลลัพธ์ที่ยังได้ไม่ครบถ้วนครับ เนื่องจากข้อมูลที่ได้จะตัดค่าซ้ำออกไป จึงทำให้ผลลัพธ์ที่
ได้ขาดหายไปครับ ( ต้องการแสดงสถานภาพให้ครบทุกรายการครับ )
2. ในช่องวันที่การมาปฎิบัติงาน ผลลัพธ์ที่ได้ถูกต้องตามที่ต้องการครับ แต่เนื่องจากค่าที่ได้ในกรณีไม่ตรงเงื่อนไข จะขึ้นข้อความ
Error ครับ ( #N/A ) โดยผมใช้ Conditionl Formatting เพื่อปรับให้เป็นค่าว่างกรณีขึ้นข้อความ Error ครับ
โดยที่ช่อง I8 ผมได้กำหนด Conditionl Formatting ไว้ดังนี้ครับ =ISERROR($I8)
รบกวนขอคำแนะนำในการใช้สูตรด้วยครับ
ขอบคุณครับ
Re: ต้องการให้โชว์ข้อมูล โดยกำหนดตามช่วงวันที่
Posted: Mon Sep 24, 2012 10:54 am
by snasui

กรณี Status ให้ Lookup มาจากชื่อ-สกุลแทนใช้สูตรเดิม ด้วยเหตุผลที่ว่าสูตรเดิมจะนำมาเฉพาะ Unique Record เท่านั้น
ส่วนกรณีแสดง #N/A หากไม่ต้องการให้แสดง #N/A ก็เขียนสูตรเข้าไปดักได้ โดยปรับสูตรที่ I8 เป็น
=LOOKUP(CHAR(255),CHOOSE({1,2},"",INDEX(Time,MATCH(1,IF($C8=Name,IF(I$6=Date,1)),0))))
Ctrl+Shift+Enter > Copy ไปทางขวาและลงด้านล่าง
Re: ต้องการให้โชว์ข้อมูล โดยกำหนดตามช่วงวันที่
Posted: Mon Sep 24, 2012 11:26 am
by bafo
สวัสดีครับ
ที่ช่อง E8 ใส่สูตรหา Lookup ดังนี้ครับ
=IF(C8="","",VLOOKUP(C8,Name1,3,0))
ได้ผลลัพธ์ถูกต้องครับ
สูตรที่ได้แนะนำให้ ตอนนี้สามารถทำงานได้สมบูรณ์ตามที่ต้องการแล้วครับ แต่ติดปัญหาข้อสุดท้ายครับ
ตามตัวอย่างผมกำหนดให้เมื่อครบ 3 บรรทัด ต้องการให้ขึ้นหน้าใหม่ทุกครั้ง โดยให้กำหนดเลขหน้าในช่อง B3 ครับ
คือเมื่อพิมพ์หมายเลข 2 ที่ช่อง B3 ข้อมูลที่ในลำดับที่ 4-5 ( B11:AM12 ) จะขึ้นมาแทนที่ในช่อง B19 ครับ
รบกวนขอคำแนะนำในการใช้สูตรด้วยครับ
ขอบคุณครับ
Re: ต้องการให้โชว์ข้อมูล โดยกำหนดตามช่วงวันที่
Posted: Mon Sep 24, 2012 9:33 pm
by snasui

ลองตามนี้ครับ
ที่เซลล์ B8 คีย์
=IF(OR(ROWS(B$8:B8)>2,2*($B$3-1)+ROWS(B$8:B8)>$D$4),"",2*($B$3-1)+ROWS(B$8:B8))
Enter > Copy ลงด้านล่าง
Re: ต้องการให้โชว์ข้อมูล โดยกำหนดตามช่วงวันที่
Posted: Tue Sep 25, 2012 6:04 pm
by bafo
สวัสดีครับ
สูตรที่แนะนำมาให้ สามารถใช้งานได้สมบูรณ์แล้วครับ
ขอบคุณครับ