Page 1 of 1

ให้ค่าสูตรจากแนวนอนให้เป็นแนวตั้งโดยตัดค่าว่างหรือFALSEออก

Posted: Wed Apr 03, 2013 5:36 pm
by zolox
ให้ค่าสูตรจากแนวนอนให้เป็นแนวตั้งโดยตัดค่าว่างหรือFALSEออก
โดยลองใช้สูตร =INDEX(Sheet1!$B$2:$V$45,INT((ROWS(A$2:A2)-1)/21)+1,MOD(ROWS(A$2:A2)-1,21)+1)
สามารถเรียงข้อมูลจากแนวนอน(sheet1)ให้เป็นแนวตั้ง(sheet2) แต่ติดปัญหาคือ มีค่าFALSEในการเรียงข้อมูลตามแนวตั้งด้วย
คำถาม คือ จะตัดค่าFALSEออกอย่างไรครับ รายละเอียดตามfileแนบ
ขอบคุณครับ
Formula-RowtoColumn.xlsx

Re: ให้ค่าสูตรจากแนวนอนให้เป็นแนวตั้งโดยตัดค่าว่างหรือFALSEอ

Posted: Wed Apr 03, 2013 6:19 pm
by snasui
:D ลองตามนี้ครับ

ที่ Sheet2 เซลล์ B2 คีย์

=IFERROR(INDEX($A$2:$A$134,SMALL(IF(ISNUMBER($A$2:$A$134),ROW($A$2:$A$134)-ROW($A$2)+1),ROWS(B$2:B2))),"")

Ctrl+Shift+Enter > Copy ลงด้านล่าง เพื่อตัดค่า False ทิ้งไป

!
Note: Ctrl+Shift+Enter หมายถึงเมื่อคีย์สูตรแล้ว แทนที่จะกด Enter ให้กดแป้น Ctrl+Shift ค้างไว้แล้วกด Enter เพื่อสร้างเป็นสูตร Array หากกดแป้นถูกต้องสูตรนั้นจะมีเครื่องหมายปีกกาครอบ เช่น {=YourFormulas(...)} ปีกกานี้คีย์เข้าไปเองไม่ได้ ถ้ายังไม่เห็นปีกกาครอบสูตรแสดงว่ากดแป้นให้รับสูตรไม่ถูกต้อง

Re: ให้ค่าสูตรจากแนวนอนให้เป็นแนวตั้งโดยตัดค่าว่างหรือFALSEอ

Posted: Wed Apr 03, 2013 6:53 pm
by zolox
ที่ sheet2 ;cell A2 สามารถทำให้เรียงข้อมูลจากแนวนอนsheet1 ให้เป็นข้อมูลแนวตั้งที่ sheet 2 ; cell A2 ในสูตรเดียวเลยได้ไหมครับ และตัดFALSEออก เพราะจะได้ไม่ต้องใช้สูตร 2ครั้งครับ

ขอบคุณครับที่ช่วยเหลือครับ

Re: ให้ค่าสูตรจากแนวนอนให้เป็นแนวตั้งโดยตัดค่าว่างหรือFALSEอ

Posted: Wed Apr 03, 2013 6:55 pm
by snasui
:lol: ทำได้เลยครับ ลองเขียน VBA มาก่อน ติดตรงไหนค่อยมาถามกันครับ :mrgreen:

Re: ให้ค่าสูตรจากแนวนอนให้เป็นแนวตั้งโดยตัดค่าว่างหรือFALSEอ

Posted: Wed Apr 03, 2013 7:05 pm
by zolox
แสดงว่าใช้สูตร excel ปกติ ทำไม่ได้ใช่ไหมครับ

Re: ให้ค่าสูตรจากแนวนอนให้เป็นแนวตั้งโดยตัดค่าว่างหรือFALSEอ

Posted: Wed Apr 03, 2013 7:10 pm
by snasui
:D คิดว่าทำได้แต่ยังไม่ได้ลอง เพราะต้องใช้เวลา มีปัญหาอะไรถึงต้องการใช้สูตรเดียวครับ :?:

Re: ให้ค่าสูตรจากแนวนอนให้เป็นแนวตั้งโดยตัดค่าว่างหรือFALSEอ

Posted: Thu Apr 04, 2013 10:18 am
by zolox
คือเมื่อแปลงข้อมูลในแนวนอนใน sheet1 ให้เป็นแนวตั้ง แล้วติดค่า FALSE มาด้วย ทำให้ ข้อมูลที่เป็นตัวเลข ไม่ได้ต่อๆกันไป จึงไม่รู้ว่าจะ copy สูตรไปถึงไหนครับ
เพราะถ้าทำให้ข้อมูล เรียงตาม row ไปเรื่อยๆ พอเจอ false หรือ ค่าว่าง ก็แสดงว่าเป็น field สุดท้ายครับ

ขอบคุณครับสำหรับสูตรที่ช่วยเบื้องต้นครับผม

Re: ให้ค่าสูตรจากแนวนอนให้เป็นแนวตั้งโดยตัดค่าว่างหรือFALSEอ

Posted: Thu Apr 04, 2013 10:32 am
by snasui
:D การที่จะกรองเอาค่าเฉพาะตัวเลขไม่ใช่เป็นเรื่องยาก และจากที่แจ้งมาก็ไม่จำเป็นต้องเป็นสูตรเดียว หากติดปัญหาเรื่องการกรองข้อมูลที่ได้จากสูตรแจ้งมาอีกรอบ เพราะผมเห็นว่าเรื่องการกรองน่าจะเป็นเรื่องที่ไม่ยากครับ

Re: ให้ค่าสูตรจากแนวนอนให้เป็นแนวตั้งโดยตัดค่าว่างหรือFALSEอ

Posted: Thu Apr 04, 2013 10:46 am
by snasui
:D เพิ่มเติมครับ
จาก
zolox wrote:คือเมื่อแปลงข้อมูลในแนวนอนใน sheet1 ให้เป็นแนวตั้ง แล้วติดค่า FALSE มาด้วย ทำให้ ข้อมูลที่เป็นตัวเลข ไม่ได้ต่อๆกันไป จึงไม่รู้ว่าจะ copy สูตรไปถึงไหนครับ
ได้ลอง Copy สูตรไปเรื่อย ๆ แล้วยังครับ ถ้า Copy ไปจนสุดข้อมูลที่มีแล้วย่อมแยกได้ว่า เซลลไหนคือเซลล์สุดท้ายของข้อมูล

Re: ให้ค่าสูตรจากแนวนอนให้เป็นแนวตั้งโดยตัดค่าว่างหรือFALSEอ

Posted: Thu Apr 04, 2013 8:11 pm
by snasui
:D จากตัวอย่างที่ยกมา เป็นตัวเลขและเรียงจากซ้ายไปขวาและเรียงจากน้อยไปมาก สามารถใช้สูตรในการเรียงข้อมูลที่ Sheet2 เซลล์ B2 เป็นด้านล่างครับ

=SMALL(Sheet1!$B$2:$V$45,ROWS(A$2:A2))

Enter > Copy ลงด้านล่างจนพบค่าผิดพลาดเป็น #NUM!

Re: ให้ค่าสูตรจากแนวนอนให้เป็นแนวตั้งโดยตัดค่าว่างหรือFALSEอ

Posted: Fri Apr 26, 2013 11:48 am
by zolox
ขอบคุณมากครับอาจารย์ สำหรับคำแนะนำ