Page 1 of 1
หาค่า MAX แบบเป็นช่วงๆ
Posted: Mon Oct 06, 2014 5:23 pm
by silauae
ต้องการหาค่า max แบบเป็นช่วงๆ แต่ละช่วงจำนวนข้อมูลไม่เท่ากัน แต่มีตัว counter และมีกำหนด logic 0,1 ไว้แล้ว ... ดังไฟล์แนบ มีวิธีหาค่า max อย่างไรครับ
Re: หาค่า MAX แบบเป็นช่วงๆ
Posted: Mon Oct 06, 2014 5:46 pm
by snasui

ต้องการคำตอบในชีทใด เซลล์ใด ยกตัวอย่างคำตอบที่ต้องการมาด้วยครับ
Re: หาค่า MAX แบบเป็นช่วงๆ
Posted: Mon Oct 06, 2014 11:40 pm
by silauae
ต้องการแสดงค่า max ในชีตเดียวกัน คอลัมภ์ D ในบรรทัดที่คอลัมภ์ C มีค่าเป็น 1 ของแต่ละช่วงครับ ขอบคุณครับ
Re: หาค่า MAX แบบเป็นช่วงๆ
Posted: Tue Oct 07, 2014 10:14 am
by snasui

ลองตามนี้ครับ
เซลล์ D2 คีย์สูตร
Code: Select all
=IF(C2=0,"",MAX(INDEX($A$2:$A$16,MATCH(2,1/(B$2:B2=1))):INDEX($A$2:$A$16,MATCH(1,C$2:C2))))
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 ทุกครั้ง
|
Re: หาค่า MAX แบบเป็นช่วงๆ
Posted: Tue Oct 07, 2014 10:47 am
by Supachok
อาจารย์ครับ
สอบถามสูตรเพิ่มเติม
ถ้าต้องการใส่สูตร ใน Column C
โดยหาค่า Max ใน Column B
Re: หาค่า MAX แบบเป็นช่วงๆ
Posted: Tue Oct 07, 2014 11:15 am
by snasui

หา Max ในคอลัมน์ B ด้วยเงื่อนไขใด โปรแกรมจะทราบได้อย่างไรว่าเราต้องการหาค่า Max ในช่วงไหนครับ

ให้คอลัมน์ F โชว์เวลาที่ตรงกับค่าที่ต้องการ
Posted: Tue Oct 07, 2014 4:32 pm
by silauae
รบกวนปรึกษาอาจารย์อีกรอบครับ
ต้องการให้คอลัมน์ F โชว์เวลาของค่า Max ในคอลัมภ์ B ซึ่งค่า Max นี้ถูกดึงมาแสดงในคอลัมน์ E ต้องเขียนสูตรอย่างไรครับ
Re: หาค่า MAX แบบเป็นช่วงๆ
Posted: Tue Oct 07, 2014 5:07 pm
by snasui

คำถามต่อเนื่องไม่ควรเปิดกระทู้ใหม่ ผมนำมารวมกันในกระทู้นี้แล้ว
กรณีตต้องการแสดงเวลาที่ F2 คีย์สูตร
Code: Select all
=IF(D2=0,"",MAX(INDEX($A$2:$A$16,MATCH(2,1/(C$2:C2=1))):INDEX($A$2:$A$16,MATCH(1,D$2:D2))))
Ctrl+Shift+Enter > Copy ลงด้านล่าง
Re: หาค่า MAX แบบเป็นช่วงๆ
Posted: Tue Oct 07, 2014 6:11 pm
by silauae
ขอโทษครับ ... ขอบพระคุณเป็นอย่างสูงครับ ทำได้แล้วครับ
Re: หาค่า MAX แบบเป็นช่วงๆ
Posted: Tue Oct 07, 2014 7:48 pm
by silauae
อาจารย์ครับ พอนำไปใช้จริง เวลาที่แสดงจะเป็นเวลาสุดท้ายครับ จะไม่ใช่เวลาที่ตรงกับค่า MAX ครับ รบกวนอีกรอบครับ ขอบคุณครับ
Re: หาค่า MAX แบบเป็นช่วงๆ
Posted: Tue Oct 07, 2014 10:46 pm
by snasui

ลองแนบไฟล์นั้นมา ชี้ให้เห็นว่าค่าที่ได้เป็นอย่างไร คำตอบที่ต้องการเป็นอย่างไร จะได้ตอบต่อไปจากนั้นครับ
Re: หาค่า MAX แบบเป็นช่วงๆ
Posted: Wed Oct 08, 2014 11:58 am
by silauae
ดังแนบครับอาจารย์ เวลาที่ถูกสูตรดึงมาแสดง จะเป็นเวลาสุดท้ายของแต่ละช่วงครับ ...
Re: หาค่า MAX แบบเป็นช่วงๆ
Posted: Wed Oct 08, 2014 1:06 pm
by snasui

เซลล์ G2 คีย์สูตร
=IF(E3=0,"",B3)
Enter > Copy ลงด้านล่าง
ฟังก์ชั่น If ควรศึกษาให้เข้าใจและใช้ให้เป็นจะได้สะดวกในการทำงาน เนื่องจากมีการใช้อยู่บ่อยครั้ง ศึกษาได้จาก Link นี้ครับ
http://office.microsoft.com/th-th/excel ... aspx?CTT=1
Re: หาค่า MAX แบบเป็นช่วงๆ
Posted: Wed Oct 08, 2014 2:10 pm
by silauae
เดิมผมคีย์สูตรใน G2
=IF(E3=0,"",MAX(INDEX($B$3:$B$37,MATCH(2,1/(D$3:D3=1))):INDEX($B$3:$B$37,MATCH(1,E$3:E3))))
ผลลัพธ์คือ เวลาที่ถูกสูตรดึงมาแสดง จะเป็นเวลาสุดท้ายของแต่ละช่วงครับ ซึ่งไม่ใช่สิ่งที่ต้องการ
................................................................
แต่ต้องการให้ช่อง G แสดงเวลาที่ "ค่าในช่อง H มีค่าตรงกับค่าในช่อง C (ซึ่งเป็นค่า MAX ของแต่ละช่วง)" ... เช่น
ข้อมูลช่วงที่1 H15 = 67 ซึ่งมีค่าตรงกับช่อง C5 ดังนั้นจึงต้องการดึงเวลาในช่อง B5 มาแสดงในช่อง G15
ข้อมูลลช่วงที่ 2 H24 = 68 ซึ่งมีค่าตรงกับช่อง C21 ดังนั้นจึงต้องการดึงเวลาในช่อง B21 มาแสดงในช่อง G24
ข้อมูลลช่วงที่ 3 H37 = 60 ซึ่งมีค่าตรงกับช่อง C33 ดังนั้นจึงต้องการดึงเวลาในช่อง B33 มาแสดงในช่อง G37
รบกวนอีกรอบครับอาจารย์
Re: หาค่า MAX แบบเป็นช่วงๆ
Posted: Wed Oct 08, 2014 2:59 pm
by snasui

เซลล์ G2 ปรับสูตรเป็นตามด้านล่างครับ
Code: Select all
=IF(E3=0,"",INDEX(INDEX($B$3:$B$37,MATCH(2,1/(D$3:D3=1))):INDEX($B$3:$B$37,MATCH(1,E$3:E3)),MATCH(H3,INDEX($C$3:$C$37,MATCH(2,1/(D$3:D3=1))):INDEX($C$3:$C$37,MATCH(1,E$3:E3)),0)))
Ctrl+Shift+Enter > Copy ลงด้านล่าง
Re: หาค่า MAX แบบเป็นช่วงๆ
Posted: Wed Oct 08, 2014 4:06 pm
by silauae
ใช้ได้แล้วครับ ขอบพระคุณอาจารย์เป็นอย่างสูงครับ