Page 1 of 1
อยากให้ข้อมูลที่ทำประจำทุกเดือน ไปแสดงเฉพาะคนที่ลาออก
Posted: Thu Jul 03, 2014 10:33 am
by janyad
อยากให้ข้อมูลที่ทำประจำทุกเดือน ไปแสดงเฉพาะคนที่ลาออก(ทาสีชมพูไว้) ใน SHEET ลาออก โดยสามารถแสดงเฉพาะบางเดือนที่ต้องการหรือโชว์ทั้งหมด
โดยกำหนดเดือนที่ออกที่คอลัมภ์ B
Re: อยากให้ข้อมูลที่ทำประจำทุกเดือน ไปแสดงเฉพาะคนที่ลาออก
Posted: Thu Jul 03, 2014 4:08 pm
by bank9597
janyad wrote:อยากให้ข้อมูลที่ทำประจำทุกเดือน ไปแสดงเฉพาะคนที่ลาออก(ทาสีชมพูไว้) ใน SHEET ลาออก โดยสามารถแสดงเฉพาะบางเดือนที่ต้องการหรือโชว์ทั้งหมด
โดยกำหนดเดือนที่ออกที่คอลัมภ์ B

ลองตามนี้ครับ
ที่ B4 คีย์ =INDEX('OVER TIME'!$AI$4:$AI$51,SMALL(IF('OVER TIME'!$AI$4:$AI$51<>"",ROW('OVER TIME'!$AI$4:$AI$51)-ROW('OVER TIME'!$AI$4)+1),ROWS($A$4:$A4))) กด ctrl+shift+enter คัดลอกลงมา
ที่ C4 คีย์ =INDEX('OVER TIME'!A$4:A$51,SMALL(IF('OVER TIME'!$AI$4:$AI$51<>"",ROW('OVER TIME'!$AI$4:$AI$51)-ROW('OVER TIME'!$AI$4)+1),ROWS($A$4:$A4))) กด ctrl+shift+enter คัดลอกไปขวามือ แล้วคัดลอกลงล่างพร้อมกัน
Re: อยากให้ข้อมูลที่ทำประจำทุกเดือน ไปแสดงเฉพาะคนที่ลาออก
Posted: Fri Jul 04, 2014 9:07 am
by janyad
ได้แล้ว ค่ะขอบคุณค่ะ แต่อยากให้เรียงวันที่ออกจากก่อนหลังทำได้หรือเปล่าค่ะ
Re: อยากให้ข้อมูลที่ทำประจำทุกเดือน ไปแสดงเฉพาะคนที่ลาออก
Posted: Fri Jul 04, 2014 9:36 am
by bank9597
janyad wrote:ได้แล้ว ค่ะขอบคุณค่ะ แต่อยากให้เรียงวันที่ออกจากก่อนหลังทำได้หรือเปล่าค่ะ

ที่ B4 คีย์ =INDEX('OVER TIME'!$AI$4:$AI$51,MATCH(SMALL('OVER TIME'!$AI$4:$AI$51,ROWS($A$4:A4)),'OVER TIME'!$AI$4:$AI$51,0)) คัดลอกลงมา
ที่ C4 คีย์ =INDEX('OVER TIME'!A$4:A$51,MATCH(SMALL('OVER TIME'!$AI$4:$AI$51,ROWS($A$4:A4)),'OVER TIME'!$AI$4:$AI$51,0)) คัดลอกไปขวามือแล้วคัดลอกลงล่างพร้อมกัน
Re: อยากให้ข้อมูลที่ทำประจำทุกเดือน ไปแสดงเฉพาะคนที่ลาออก
Posted: Fri Jul 04, 2014 2:51 pm
by janyad
รบกวนขอความหมายของแต่ละสูตรด้วยน่ะค่ะ เพื่อจะนำไปประยุกต์ใช้กับงานอื่น ขอบคุณค่ะ
INDEX('OVER TIME'!$AI$4:$AI$51,MATCH(SMALL('OVER TIME'!$AI$4:$AI$51,ROWS($A$4:A4)),'OVER TIME'!$AI$4:$AI$51,0)) คัดลอกลงมา
ที่ C4 คีย์ =INDEX('OVER TIME'!A$4:A$51,MATCH(SMALL('OVER TIME'!$AI$4:$AI$51,ROWS($A$4:A4)),'OVER TIME'!$AI$4:$AI$51,0)) คัดลอกไปขวามือแล้วคัดลอกลงล่างพร้อมกัน
Re: อยากให้ข้อมูลที่ทำประจำทุกเดือน ไปแสดงเฉพาะคนที่ลาออก
Posted: Fri Jul 04, 2014 5:11 pm
by bank9597
janyad wrote:รบกวนขอความหมายของแต่ละสูตรด้วยน่ะค่ะ เพื่อจะนำไปประยุกต์ใช้กับงานอื่น ขอบคุณค่ะ
INDEX('OVER TIME'!$AI$4:$AI$51,MATCH(SMALL('OVER TIME'!$AI$4:$AI$51,ROWS($A$4:A4)),'OVER TIME'!$AI$4:$AI$51,0)) คัดลอกลงมา
ที่ C4 คีย์ =INDEX('OVER TIME'!A$4:A$51,MATCH(SMALL('OVER TIME'!$AI$4:$AI$51,ROWS($A$4:A4)),'OVER TIME'!$AI$4:$AI$51,0)) คัดลอกไปขวามือแล้วคัดลอกลงล่างพร้อมกัน

ผมจะอธิบายไม่ค่อยดีนัก แนะนำรอให้ อ. คนควน มาอธิบายจะชัดเจนและถูกต้องกว่าครับ
Re: อยากให้ข้อมูลที่ทำประจำทุกเดือน ไปแสดงเฉพาะคนที่ลาออก
Posted: Fri Jul 04, 2014 7:52 pm
by snasui

ลองค่อย ๆ ทำความเข้าใจดูครับ

จากสูตร
=INDEX('OVER TIME'!A$4:A$51,MATCH(SMALL('OVER TIME'!$AI$4:$AI$51,ROWS($A$4:A4)),'OVER TIME'!$AI$4:$AI$51,0))
หมายถึง ในช่วง OVER TIME'!A$4:A$51 ให้นำลำดับที่เป็นผลลัพธ์ของ MATCH(SMALL('OVER TIME'!$AI$4:$AI$51,ROWS($A$4:A4)),'OVER TIME'!$AI$4:$AI$51,0) มาแสดง

จากสูตร
MATCH(SMALL('OVER TIME'!$AI$4:$AI$51,ROWS($A$4:A4)),'OVER TIME'!$AI$4:$AI$51,0)
หมายถึง ให้หาว่า SMALL('OVER TIME'!$AI$4:$AI$51,ROWS($A$4:A4)) อยู่ในลำดับที่เท่าไรของ 'OVER TIME'!$AI$4:$AI$51

จากสูตร
SMALL('OVER TIME'!$AI$4:$AI$51,ROWS($A$4:A4))
หมายถึงให้หาค่าที่น้อยที่สุดเป็นลำดับที่ 1 ในช่วง 'OVER TIME'!$AI$4:$AI$51

จากสูตร
ROWS($A$4:A4)
เป็นการหาจำนวนบรรทัดในช่วง A4:A4 ผลลัพธ์คือ 1 บรรทัด เมื่อคัดลอกสูตรลงด้านล่างจะเป็นการจำนวนบรรทัดในช่วง A4:A
5, A4:A
6, A4:A
7 เช่นนี้ครับ
Re: อยากให้ข้อมูลที่ทำประจำทุกเดือน ไปแสดงเฉพาะคนที่ลาออก
Posted: Fri Jul 04, 2014 8:01 pm
by bank9597
snasui wrote:
จากสูตร =INDEX('OVER TIME'!A$4:A$51,MATCH(SMALL('OVER TIME'!$AI$4:$AI$51,ROWS($A$4:A4)),'OVER TIME'!$AI$4:$AI$51,0)) หมายถึง ในช่วง OVER TIME'!A$4:A$51 ให้นำลำดับที่เป็นผลลัพธ์ของ MATCH(SMALL('OVER TIME'!$AI$4:$AI$51,ROWS($A$4:A4)),'OVER TIME'!$AI$4:$AI$51,0) มาแสดง
จาก MATCH(SMALL('OVER TIME'!$AI$4:$AI$51,ROWS($A$4:A4)),'OVER TIME'!$AI$4:$AI$51,0) หมายถึง ให้หาว่า SMALL('OVER TIME'!$AI$4:$AI$51,ROWS($A$4:A4)) อยู่ในลำดับที่เท่าไรของ 'OVER TIME'!$AI$4:$AI$51
จาก SMALL('OVER TIME'!$AI$4:$AI$51,ROWS($A$4:A4)) หมายถึงให้หาค่าที่น้อยที่สุดเป็นลำดับที่ 1 ในช่วง 'OVER TIME'!$AI$4:$AI$51
สูตร ROWS($A$4:A4) เป็นการหาจำนวนบรรทัดในช่วง A4:A4 ผลลัพธ์คือ 1 บรรทัด

Re: อยากให้ข้อมูลที่ทำประจำทุกเดือน ไปแสดงเฉพาะคนที่ลาออก
Posted: Tue Jul 08, 2014 2:37 pm
by janyad
ลองเอามาทำจริงๆ ข้อมูลที่ขึ้นมาไม่ถูกเป็นเพราะอะไรค่ะ จำนวนคนมีประมาณ 3000 คนค่ะ
Re: อยากให้ข้อมูลที่ทำประจำทุกเดือน ไปแสดงเฉพาะคนที่ลาออก
Posted: Tue Jul 08, 2014 3:35 pm
by gilmon05
งงๆมากยังทำความเข้าใจไม่ถ่องแท้เลย

Re: อยากให้ข้อมูลที่ทำประจำทุกเดือน ไปแสดงเฉพาะคนที่ลาออก
Posted: Tue Jul 08, 2014 6:43 pm
by snasui

ควรถามในสิ่งที่ยังสงสัยจะได้ทราบว่างงตรงไหน สำหรับฟังก์ชั่นต่าง ๆ ลองศึกษามาก่อนตาม Link นี้ครับ
http://office.microsoft.com/th-th/excel ... aspx?CTT=1
ติดตรงไหนแล้วค่อยถามกันต่อ สูตรข้างต้นเป็นการซ้อนสูตร ต้องเข้าใจแต่ละฟังก์ชั่นมาก่อนจึงจะทำความเข้าใจได้
Re: อยากให้ข้อมูลที่ทำประจำทุกเดือน ไปแสดงเฉพาะคนที่ลาออก
Posted: Wed Jul 09, 2014 7:36 am
by janyad
ลองทำแล้วแต่ข้อมูลที่ได้ซ้ำกัน เกิดจากอะไรค่ะ
Re: อยากให้ข้อมูลที่ทำประจำทุกเดือน ไปแสดงเฉพาะคนที่ลาออก
Posted: Wed Jul 09, 2014 6:21 pm
by snasui

ลองตามนี้ครับ
ที่ชีท พนักงานลาออก
- เซลล์ B4 คีย์สูตร
=IFERROR(SMALL(IF(TOTAL!$G$4:$G$2511="ออก3",TOTAL!$AI$4:$AI$2511),ROWS(B$4:B4)),"")
Ctrl+Shift+Enter > Copy ลงด้านล่าง
- ที่ C4 คีย์สูตร
=IF(N($B4),INDEX(TOTAL!A$4:A$2511,SMALL(IF(TOTAL!$G$4:$G$2511="ออก3",ROW(TOTAL!A$4:A$2511)-ROW(TOTAL!A$4)+1),COUNTIF($B$4:$B4,$B4))),"")
Ctrl+Shift+Enter > Copy ไปด้านขวาและลงด้านล่าง
!
| Note: Ctrl+Shift+Enter หมายถึง
- กรณีคีย์สูตรเอง เมื่อคีย์สูตรแล้ว แทนที่จะกด Enter ให้กดแป้น Ctrl+Shift ค้างไว้แล้วกด Enter เพื่อสร้างเป็นสูตร Array
- กรณี Copy สูตรไปวางให้กดแป้น F2 เพื่อทำการ Edit Cell นั้นก่อน จากนั้นกดแป้น Ctrl+Shift ค้างไว้แล้วกด Enter เพื่อสร้างเป็นสูตร Array
- หากกดแป้นถูกต้องสูตรนั้นจะมีเครื่องหมายปีกกาครอบ เช่น {=YourFormulas(...)} ปีกกานี้คีย์เข้าไปเองไม่ได้ ถ้ายังไม่เห็นปีกกาครอบสูตรแสดงว่ากดแป้นให้รับสูตรไม่ถูกต้อง
- การแก้ไขเปลี่ยนแปลงสูตร Array จะต้องกดแป้นให้รับสูตรด้วย Ctrl+Shift+Enter ทุกครั้ง
|