:D snasui.com ยินดีต้อนรับ :D
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย :thup: สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ :arrow: ระบุ Version ของ Excel
:!: โปรดทราบ :!:
  1. กรุณาอ่านกฎการใช้บอร์ด (Forum rules) ในตำแหน่งด้านบนของแต่ละบอร์ด
  2. การสมัครสมาชิก การ Login การกู้คืนรหัสผ่าน
    1. สมัครสมาชิกดูขั้นตอนได้ที่ :arrow: สมัครสมาชิก
    2. Login เข้าระบบโดยคลิกปุ่ม Login ตรงมุมขวาบนของหน้านี้ :roll:
    3. การ Login ผ่าน Facebook ดูวิธีที่ :arrow: Login ผ่าน Facebook
    4. ลืมรหัสผ่านสามารถรับรหัสใหม่ได้ที่ :arrow: Reset รหัสผ่าน
  3. มีปัญหาการใช้งาน แจ้งผู้ดูแลระบบได้ที่ :arrow: ติดต่อผู้ดูแลระบบ
  4. กำหนดการตั้งค่าส่วนตัว เช่นตั้งค่าภาษาเป็นไทยหรืออังกฤษดูได้ที่ :arrow: ตั้งค่าส่วนตัว
  5. การตั้งและตอบกระทู้ดูได้ที่ :arrow: วิธีการตั้งและตอบกระทู้
  6. การจัดรูปแบบตัวอักษรด้วย bbcode ในช่องแสดงความคิดเห็นดูได้ที่ :arrow: จัดรูปแบบตัวอักษร
  7. กำหนดขนาดตัวอักษรใน Browser ดูได้ที่ :arrow: กำหนดขนาดตัวอักษรใน Browser

แจกไฟล์แสดงการใช้สูตรนำข้อมูลจากหลายคอลัมน์มาเรียงไว้ในคอลัมน์เดียว (2)

ฟอรัมสำหรับแจกจ่ายแบ่งปันไฟล์ รวมทั้งแหล่งความรู้ต่าง ๆ เกี่ยวกับ Excel
User avatar
snasui
Site Admin
Site Admin
Posts: 30746
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

แจกไฟล์แสดงการใช้สูตรนำข้อมูลจากหลายคอลัมน์มาเรียงไว้ในคอลัมน์เดียว (2)

#1

Post by snasui »

:D แจกไฟล์ตัวอย่างสูตรแสดงการนำข้อมูลจากหลายคอลัมน์เฉพาะเซลล์ที่ไม่เป็นค่าว่างมาเรียงต่อเนื่องกันไปในคอลัมน์เดียว

จากไฟล์แนบ ช่วงเซลล์ D2:G5 เป็นข้อมูลต้นทางประกอบด้วยเซลล์ที่มีค่าและเซลล์ว่าง ต้องการนำเฉพาะเซลล์ที่ไม่ว่างมาเรียงใหม่ในคอลัมน์ A โดยเริ่มจาก A2

ที่เซลล์ A2 คีย์สูตร
=IFERROR(INDEX($1:$1048576,SMALL(IF($D$2:$G$5<>"",ROW($D$2:$D$5)),ROWS(A$2:A2)),MOD(SMALL(IF($D$2:$G$5<>"",--(ROW($D$2:$D$5)&"."&COLUMN($D$5:$G$5))),ROWS(A$2:A2))*10,10)),"")

Ctrl+Shift+Enter > Copy ลงด้านล่าง หรือ

=IFERROR(INDIRECT("R"&SUBSTITUTE(SMALL(IF($D$2:$G$5<>"",--(ROW($D$2:$D$5)&"."&COLUMN($D$2:$G$2))),ROWS(A$2:A2)),".","C"),0),"")

Ctrl+Shift+Enter > Copy ลงด้านล่าง หรือ

=IFERROR(INDEX($1:$1048576,AGGREGATE(15,6,ROW($D$2:$D$5)/($D$2:$G$5<>""),ROWS(A$2:A2)),MOD(AGGREGATE(15,6,(ROW($D$2:$D$5)&"."&COLUMN($D$5:$G$5))/($D$2:$G$5<>""),ROWS(A$2:A2))*10,10)),"")

Enter > Copy ลงด้านล่าง
Attachments
CreateListFromMultipleColumnsToOneColumn.xlsm
(15.92 KiB) Downloaded 210 times