Page 1 of 1
รบกวนช่วยหาวิธีเลือกเลขตามลำดับน้อยไปมากลงในแต่ละช่องคะ
Posted: Fri Dec 21, 2012 3:58 pm
by nongnok
รบกวนถามคะ
คือมีตัวเลข
0 0 184 0 123 0 173 196
และอยากให้เรียงค่าน้อยไปมากโดยไม่นับรวม 0 จะสามารถใช้ฟังก์ชันไหนได้คะ
ซึ่งค่าในแต่ละช่องจะเปลี่ยนไปตามข้อมูลคะ
Re: รบกวนช่วยหาวิธีเลือกเลขตามลำดับน้อยไปมากลงในแต่ละช่องคะ
Posted: Fri Dec 21, 2012 4:09 pm
by snasui

ลองตามนี้ครับ
ที่ K2 คีย์
=IFERROR(SMALL(IF($B2:$J2>0,$B2:$J2),COLUMNS($K2:K2)),"")
Ctrl+Shift+Enter > Copy ไปทางขวาและลงด้านล่าง
Note: Ctrl+Shift+Enter หมายถึงเมื่อคีย์สูตรแล้ว แทนที่จะกด Enter ให้กดแป้น Ctrl+Shift ค้างไว้แล้วกด Enter เพื่อสร้างเป็นสูตร Array หากกดแป้นถูกต้องสูตรนั้นจะมีเครื่องหมายปีกกาครอบ เช่น
{=YourFormulas(...)
} ปีกกานี้คีย์เข้าไปเองไม่ได้
ถ้ายังไม่เห็นปีกกาครอบสูตรแสดงว่ากดแป้นให้รับสูตรไม่ถูกต้อง
Re: รบกวนช่วยหาวิธีเลือกเลขตามลำดับน้อยไปมากลงในแต่ละช่องคะ
Posted: Fri Dec 21, 2012 4:21 pm
by nongnok
ขอโทษคะ ขอถามใหม่คะ
คือเป็นการเลือกที่ไม่ให้ซ้ำกันคะ จากไฟล์ได้ทำการเลือกค่าที่น้อยที่สุดในแต่ละแถว แต่ผลที่ออกมาคือมีการซ้ำ 3 ครั้งใน 1 แถว ถ้าอยากจะให้เลือกค่าที่น้อยโดยไม่ซ้ำแถวกันนั้น ไม่ทราบว่าต้องใช้สูตรไหนในการกำหนดคะ
รบกวนด้วยคะ
Re: รบกวนช่วยหาวิธีเลือกเลขตามลำดับน้อยไปมากลงในแต่ละช่องคะ
Posted: Fri Dec 21, 2012 4:58 pm
by bank9597
ไม่เข้าใจครับ ในไฟล์แนบคอลัมน์ L มีอะไรผิดพลาด แล้วมีอะไรซ้ำตรงไหน อย่างไร ลองทำตัวอย่างคำตอบที่ต้องการให้มาให้ดูหน่อยครับ
เพิ่มเติม
ในแต่ละแถว ไม่มีค่าซ้ำกันเลย เว้นแต่ที่เป็นตัว x เท่านั้น แถวที่คุณกล่าวมาคือ row หรือ column ครับ
Re: รบกวนช่วยหาวิธีเลือกเลขตามลำดับน้อยไปมากลงในแต่ละช่องคะ
Posted: Fri Dec 21, 2012 5:21 pm
by nongnok
ขอโทษด้วยคะอาจจะอธิบายไม่ละเอียด
จากไฟล์ล่าสุด คือ เส้นทางจาก A ไป 1 2 3 ... และจาก B ไป 1 2 3 ... ประมาณนี้คะ
และต้องการเลือกค่าที่น้อยที่สุดสำหรับ A ในการไปจุดใดจุดหนึ่งคะ ซึ่งถ้าดูจากตารางจะเห็นว่าได้ค่า A ไปที่ 6 คะ และปัญหาคือ Column ที่ 8 มี D, F, I ที่ไปจุดเดียวกันคะ ซึ่งเป็นค่าส่วนที่เรียกว่าซ้ำคะ
ปัญหาคือถ้าอยากหาว่า a,b,c,d,e,f,g,h,i,j ไป1,2,3,4,5,6,7,8,9 ที่ได้ค่าน้อยสุดและไม่ซ้ำกันในรูปแบบที่กล่าวไปแล้วจะ พอจะได้ไหมคะ
รบกวนอีกครั้งคะ
Re: รบกวนช่วยหาวิธีเลือกเลขตามลำดับน้อยไปมากลงในแต่ละช่องคะ
Posted: Sat Dec 22, 2012 7:40 am
by snasui

ให้แนบตัวอย่างคำตอบที่ถูกต้องโดยอ้างอิงจากไฟล์ล่าสุดมาด้วย จะได้เข้าใจตรงกันครับ
Re: รบกวนช่วยหาวิธีเลือกเลขตามลำดับน้อยไปมากลงในแต่ละช่องคะ
Posted: Sat Dec 22, 2012 11:31 am
by bank9597
พอเข้าใจแล้วครับ แต่ว่าต้องเลือกให้แสดงทีละรหัส เช่น a น้อยที่สุดคือค่าใด ตรงกับคอลัมน์โดยที่ไม่ให้ซ้ำกับคอลัมน์อื่น
Re: รบกวนช่วยหาวิธีเลือกเลขตามลำดับน้อยไปมากลงในแต่ละช่องคะ
Posted: Sat Dec 22, 2012 2:01 pm
by nongnok
ขอรบกวนอีกทีค่ะ
อยากทราบว่า ถ้าจะต้องเดินทางจาก WH ไปจุดต่าง ๆ ให้ครบทุกจุดแล้วค่อยกลับมาที่ WH เป็นที่สุดท้าย
จะต้องมีการ set ค่า ใน solver ยังไงบ้างค่ะ
คือตอนนี้สามารถ solve หาในแต่ละจุดที่จะเดินทาไปได้แล้วคะ แต่ปัญหาตอนนี้คือผลที่ออกมาเป็นการเดินทางไปเพียงจุดเดียวแล้วกลับมาที่ WH คะ ซึ่งผลลัพท์ที่ต้องการคือ เดินทางออกจาก WH และไปครบทุกจุดจากนั้นกลับมายัง WH คะ สามารถดูได้จากไฟล์ที่แนบมาคะ
ขออธิบายตารางใน Excel ว่า Row เป็นจุดเริ่มเดินทาง Column เป็นจุดปลายทาง คะ
ขอบคุณคะ
Re: รบกวนช่วยหาวิธีเลือกเลขตามลำดับน้อยไปมากลงในแต่ละช่องคะ
Posted: Sat Dec 22, 2012 2:19 pm
by snasui

กรณีเป็นการถามคนละเรื่องให้เปิดกระทู้ใหม่ครับ สำหรับคำถามเดิม ช่วยแสดงคำตอบที่ถูกต้องมาเป็นตัวอย่างด้วยครับ
Re: รบกวนช่วยหาวิธีเลือกเลขตามลำดับน้อยไปมากลงในแต่ละช่องคะ
Posted: Sat Dec 22, 2012 2:40 pm
by nongnok
ขอโทษคะที่ทำสับสน
คือเป็นปัญหาเดิมคะ แต่ว่าตอนแรกคิดว่าจะใช้สูตรในการคำนวณหาค่าคะ แต่ทำแล้วไม่ได้จึงลองวิธีใหม่ด้วยการใช้ Solver เข้ามาช่วยคะ
และเนื่องจากยังทำ Solver ไม่สำเร็จจึงไม่แน่ใจคำตอบที่ควรเป็นคะ
ถ้าในคำถามเดิมที่ใช้สูตรคำนวณจะยังไม่ได้คำตอบที่เป็น optimal คะ ตอนนี้จึงเปลี่ยนมาใช้ Solver คะ
ไม่แน่ใจว่าต้องตั้งกระทู้ใหม่หรือไม่คะ

รบกวนแนะนำด้วยคะ
Re: รบกวนช่วยหาวิธีเลือกเลขตามลำดับน้อยไปมากลงในแต่ละช่องคะ
Posted: Sat Dec 22, 2012 3:24 pm
by snasui

กรณีเป็นคำถามเดิม ให้ตอบตามที่ผมถามมาดูก่อนครับ เพื่อจะได้เข้าใจตรงกันว่าต้องการคำตอบเป็นอย่างไร
Re: รบกวนช่วยหาวิธีเลือกเลขตามลำดับน้อยไปมากลงในแต่ละช่องคะ
Posted: Sat Dec 22, 2012 3:45 pm
by nongnok
ได้ทำผลลัพท์ด้วยมือ จากไฟล์แรกที่มีการเดินทางไป 4 จุด มาคะ ซึ่งสุดท้ายต้องทำการเปรียบเทียบหาค่าต่ำที่สุดของผลลัพท์คะ จึงมีความคิดที่จะใช้ Solver คะ
ไฟล์ก่อนหน้านี้เป็นการเดินทางไปทุกจุดคะ ทำให้มีข้อมูลเพิ่มขึ้นมาคะ อาจจะดูเหมือนคนละอันกัน แต่เป็นอันเดียวกันที่มีข้อมูลเยอะขึ้นคะ
ขอบคุณคะ
Re: รบกวนช่วยหาวิธีเลือกเลขตามลำดับน้อยไปมากลงในแต่ละช่องคะ
Posted: Sat Dec 22, 2012 8:34 pm
by snasui

ก็ยังไม่เข้าใจอยู่ดีครับ 1, 4, 8, 9, 6, 1 ที่เป็นตัวเลือกนั้นมีหลักการพิจารณาอย่างไรเพื่อให้ได้ลำดับนั้นครับ

Re: รบกวนช่วยหาวิธีเลือกเลขตามลำดับน้อยไปมากลงในแต่ละช่องคะ
Posted: Mon Dec 24, 2012 10:37 am
by nongnok
ขอโทษคะที่มาตอบช้า
คือเป็นการเดินทางคะ จาก จุดที่ 1 ไป จุดที่ 4
,จุดที่ 4 ไป จุดที่ 8, จุดที่ 8 ไป จุดที่ 9, จุดที่ 9 ไป จุดที่ 6, จุดที่ 6 ไป กลับไปจุดที่ 1
เป็นการวนที่กลับไปยังจุดเดิมคือจุดที่ 1 คะ
Re: รบกวนช่วยหาวิธีเลือกเลขตามลำดับน้อยไปมากลงในแต่ละช่องคะ
Posted: Mon Dec 24, 2012 11:16 am
by snasui

แต่ละจุดที่เดินทางไปย่อมต้องมีที่มาครับ ลำดับที่บอกมานั้นพิจารณาอย่างไรว่าต้องไปตามจุดนั้น ๆ ตามลำดับ หรือไปตามลำดับนั้น ๆ เพื่อต้องการอะไรหรือเพื่อเหตุผลใดครับ

Re: รบกวนช่วยหาวิธีเลือกเลขตามลำดับน้อยไปมากลงในแต่ละช่องคะ
Posted: Mon Dec 24, 2012 11:42 am
by nongnok
ต้องการค่า Sum ของช่องที่เดินทางไปเป็นค่า Min คะ
ซึ่งเส้นทางที่เดินทางไปได้นั้นมีหลายเส้นทาง ถ้าใช้ Manual จะต้องดูหลายเส้นทางคะและนำมาเปรียบเทียบหาค่าที่น้อยที่สุดว่าเป็นเส้นทางไหนคะ แต่ถ้าใช้ Solver จะได้เส้นทางเดียวคะ
ขอบคุณคะ
Re: รบกวนช่วยหาวิธีเลือกเลขตามลำดับน้อยไปมากลงในแต่ละช่องคะ
Posted: Mon Dec 24, 2012 12:37 pm
by snasui

ผมตอบตามที่ผมเข้าใจแล้วกันครับ จากไฟล์ที่แนบมาล่าสุด
เข้าใจว่า A2:A11 คือลำดับของเส้นทาง, B1:J1 คือค่าลำดับของตำแหน่ง, B2:J11 คือระยะทางจากที่ใด ๆ มายังตำแหน่งนั้น ๆ
สิ่งที่ต้องการคือในแต่ละเส้นทางให้หาค่าที่น้อยที่สุดว่าเป็นเท่าไรแล้ว
นำตำแหน่งมาใช้ เช่น
เส้นทางลำดับที่ 1 มีค่าที่น้อยที่สุดคือ 123 อยู่ที่เซลล์ G2 แต่ค่าลำดับคือ
6 อยู่ที่เซลล์ G1
ในการหาค่าที่น้อยที่สุดในเส้นทางที่ 2 จะต้อง
ไม่เลือกลำดับที่ 6 เข้ามาพิจารณาอีก เนื่องจากถูกเลือกใช้ไปแล้วตามด้านบน สำหรับเส้นทางต่อ ๆ ไปก็พิจารณาในลักษณะเช่นเดียวกันนี้ และหากผมเข้าใจถูกต้อง ลองตามด้านล่างครับ
- เซลล์ L2 คีย์สูตรเพื่อหาค่าลำดับ
=IFERROR(MATCH(MIN(IF(1-ISNUMBER(MATCH(COLUMN(B2:J2)-COLUMN(B2)+1,L$1:L1,0)),B2:J2)),B2:J2,0),0)
Ctrl+Shift+Enter > Copy ลงด้านล่าง
- เซลล์ M2 คีย์เพื่อนำระยะทางที่น้อยที่สุดมาแสดง
=IF(L2=0,0,INDEX(B2:J2,L2))
Enter > Copy ลงด้านล่าง
Note: Ctrl+Shift+Enter หมายถึงเมื่อคีย์สูตรแล้ว แทนที่จะกด Enter ให้กดแป้น Ctrl+Shift ค้างไว้แล้วกด Enter เพื่อสร้างเป็นสูตร Array หากกดแป้นถูกต้องสูตรนั้นจะมีเครื่องหมายปีกกาครอบ เช่น
{=YourFormulas(...)
} ปีกกานี้คีย์เข้าไปเองไม่ได้
ถ้ายังไม่เห็นปีกกาครอบสูตรแสดงว่ากดแป้นให้รับสูตรไม่ถูกต้อง
Re: รบกวนช่วยหาวิธีเลือกเลขตามลำดับน้อยไปมากลงในแต่ละช่องคะ
Posted: Mon Dec 24, 2012 5:02 pm
by nongnok
รู้สึกรบกวนอาจารย์มากเลยคะ
คือได้ลองนำสูตรไปใช้แต่มีข้อจำกัดอีกคะคือ
1. Row 2 เป็นจุดเริ่มต้น และ Row 11 เป็นจุดสิ้นสุดคะ
2. เมื่อนำไปใช้กับตารางที่มีค่าเต็มทุกช่องแล้ว จะติดปัญหาคือ
2.1 ผลลัพท์จะไปตรงช่องของตัวเองคือ จาก sheet 2 จุด 4C04 ไปยัง 4C04 คะ ซึ่งได้พยายามแก้ไขด้วยการใส่ค่าสูงๆ แต่ก็ยังถูกเลือกคะ
2.2 เริ่มที่จุดเริ่มต้นและจุดต่อไปเป็นจุดสิ้นสุดคะ
ได้แนบไฟล์ที่ทำการทดลองมาด้วยคะ โดยมี 2 sheets คะ
Re: รบกวนช่วยหาวิธีเลือกเลขตามลำดับน้อยไปมากลงในแต่ละช่องคะ
Posted: Mon Dec 24, 2012 5:32 pm
by snasui

ฟอรั่มนี้ถามได้เต็มที่ ไม่มี Limit ว่าถามได้เพียงเท่านั้นเท่านี้คำถาม ไม่ต้องเกรงใจแต่อย่างใดเนืองจากเปิดขึ้นมาเพื่อการถามตอบโดยเฉพาะครับ
จากไฟล์ทีแนบมาล่าสุดยังปรับสูตรมาไม่ถูกต้อง ผมได้เพิ่มและปรับสูตรให้ใหม่ ลองตามด้านล่างครับ
ที่ L2 คีย์สูตรเพื่อหาลำดับโดยไม่นำลำดับซ้ำมาแสดง ยกเว้นบรรทัดสุดท้ายของข้อมูลจะใช้ลำดับเดียวกับลำดับแรก
=IFERROR(IF(MATCH($A2,$A$2:$A$11,0)=1,MATCH(MIN(B2:J2),B2:J2,0),MATCH(MIN(IF(1-ISNUMBER(MATCH(COLUMN(B1:J1)-COLUMN(B1)+1,L$1:L1,0)),B2:J2)),B2:J2,0)),0)
Ctrl+Shift+Enter > Copy ลงด้านล่าง
Re: รบกวนช่วยหาวิธีเลือกเลขตามลำดับน้อยไปมากลงในแต่ละช่องคะ
Posted: Tue Jan 08, 2013 10:16 am
by nongnok
ขอบคุณมากคะ