ฟังก์ชัน Excel TOROW เพื่อแปลงช่วงหรืออาร์เรย์เป็นแถว

  • แบ่งปันสิ่งนี้
Michael Brown

วิธีที่รวดเร็วในการเปลี่ยนช่วงของเซลล์เป็นแถวเดียวด้วยความช่วยเหลือของฟังก์ชัน TOROW

Microsoft Excel 365 ได้แนะนำฟังก์ชันใหม่หลายอย่าง เพื่อดำเนินการปรับแต่งต่าง ๆ ด้วยอาร์เรย์ ด้วย TOROW คุณสามารถทำการแปลงแบบช่วงต่อแถวได้ในเวลาไม่นาน ต่อไปนี้คือรายการงานที่ฟังก์ชันใหม่นี้สามารถทำได้:

    ฟังก์ชัน TOROW ของ Excel

    ฟังก์ชัน TOROW ใน Excel ใช้เพื่อแปลงอาร์เรย์หรือช่วงของเซลล์ให้เป็น หนึ่งแถว

    ฟังก์ชันรับอาร์กิวเมนต์ทั้งหมดสามอาร์กิวเมนต์ ซึ่งต้องใช้อาร์กิวเมนต์แรกเท่านั้น

    TOROW(อาร์เรย์, [ละเว้น], [scan_by_column])

    โดยที่:

    อาร์เรย์ (จำเป็น) - อาร์เรย์หรือช่วงที่จะแปลงเป็นแถวเดียว

    ละเว้น (ไม่บังคับ) - กำหนดว่าจะละเว้นช่องว่างหรือ/และ ข้อผิดพลาด สามารถใช้หนึ่งในค่าเหล่านี้:

    • 0 หรือละเว้น (ค่าเริ่มต้น) - เก็บค่าทั้งหมด
    • 1 - ละเว้นช่องว่าง
    • 2 - ละเว้นข้อผิดพลาด
    • 3 - ละเว้นช่องว่างและข้อผิดพลาด

    Scan_by_column (ไม่บังคับ) - กำหนดวิธีการสแกนอาร์เรย์:

    • FALSE หรือละเว้น (ค่าเริ่มต้น) - สแกนอาร์เรย์ในแนวนอนทีละแถว
    • จริง - สแกนอาร์เรย์ในแนวตั้งทีละคอลัมน์

    เคล็ดลับ:

    • ในการแปลงอาร์เรย์ ลงในคอลัมน์เดียว ให้ใช้ฟังก์ชัน TOCOL
    • หากต้องการเตรียมการแปลงแถวเป็นอาร์เรย์แบบย้อนกลับ ให้ใช้ฟังก์ชัน WRAPCOLS เพื่อรวมเป็นคอลัมน์หรือใช้ฟังก์ชัน WRAPROWS เพื่อรวมอาร์เรย์เป็นแถว
    • หากต้องการเปลี่ยนแถวเป็นคอลัมน์ ให้ใช้ฟังก์ชัน TRANSPOSE

    ความพร้อมใช้งานของ TOROW

    TOROW เป็นฟังก์ชันใหม่ซึ่งรองรับเฉพาะใน Excel สำหรับ Microsoft 365 (สำหรับ Windows และ Mac) และ Excel สำหรับเว็บ

    สูตร TOROW พื้นฐานใน Excel

    เมื่อต้องการทำการแปลงจากช่วงต่อแถวอย่างง่าย ให้ใช้สูตร TOROW ในรูปแบบพื้นฐาน สำหรับสิ่งนี้ คุณต้องกำหนดอาร์กิวเมนต์แรกเท่านั้น ( อาร์เรย์ )

    ตัวอย่างเช่น เมื่อต้องการเปลี่ยนอาร์เรย์สองมิติที่ประกอบด้วย 3 คอลัมน์และ 3 แถวเป็นแถวเดียว สูตรคือ:

    =TOROW(A3:C6)

    คุณป้อนสูตรลงในเซลล์เพียงเซลล์เดียว (กรณีของเราคือ A10) และสูตรจะใส่ลงในเซลล์จำนวนมากโดยอัตโนมัติตามต้องการเพื่อเก็บผลลัพธ์ทั้งหมด ในแง่ Excel ช่วงเอาต์พุตที่ล้อมรอบด้วยขอบสีน้ำเงินบาง ๆ เรียกว่าช่วงการรั่วไหล

    วิธีการทำงานของสูตรนี้:

    ขั้นแรก ช่วงเซลล์ที่ให้มาจะเปลี่ยนเป็นอาร์เรย์สองมิติ โปรดสังเกตคอลัมน์ที่คั่นด้วยเครื่องหมายจุลภาคและแถวที่คั่นด้วยเครื่องหมายอัฒภาค:

    {"Apple","Banana","Cherry";1,2,3;4,5,6;7,8,9}

    จากนั้น ฟังก์ชัน TOROW จะอ่านอาร์เรย์จากซ้ายไปขวาและแปลงเป็นอาร์เรย์แนวนอนหนึ่งมิติ:

    {"Apple","Banana","Cherry",1,2,3,4,5,6,7,8,9}

    ผลลัพธ์ไปที่เซลล์ A10 ซึ่งจะขยายไปยังเซลล์ข้างเคียงทางด้านขวา

    แปลงช่วงเป็นแถวโดยไม่สนใจช่องว่างและข้อผิดพลาด

    ตามค่าเริ่มต้น ฟังก์ชัน TOROW จะเก็บค่าทั้งหมดจากอาร์เรย์ต้นทาง รวมถึงเซลล์ว่างและข้อผิดพลาด ในเอาต์พุต ค่าศูนย์จะปรากฏแทนที่เซลล์ว่าง ซึ่งอาจทำให้เกิดความสับสน

    หากต้องการ ยกเว้นช่องว่าง ให้ตั้งค่าอาร์กิวเมนต์ ละเว้น เป็น 1:

    =TOROW(A3:C5, 1)

    หากต้องการ ละเว้นข้อผิดพลาด ให้ตั้งค่าอาร์กิวเมนต์ ละเว้น เป็น 2:

    =TOROW(A3:C5, 2)

    หากต้องการข้าม ทั้ง ช่องว่างและข้อผิดพลาด ใช้ 3 สำหรับอาร์กิวเมนต์ ละเว้น :

    =TOROW(A3:C5, 3)

    ภาพด้านล่างแสดงสถานการณ์จำลองทั้งสามสถานการณ์: <18

    อ่านอาร์เรย์ในแนวนอนหรือแนวตั้ง

    ด้วยลักษณะการทำงานเริ่มต้น ฟังก์ชัน TOROW จะประมวลผลอาร์เรย์ตามแนวนอนจากซ้ายไปขวา หากต้องการสแกนค่าตามคอลัมน์จากบนลงล่าง ให้ตั้งค่าอาร์กิวเมนต์ที่ 3 ( scan_by_column ) เป็น TRUE หรือ 1

    ตัวอย่างเช่น หากต้องการอ่านช่วงต้นฉบับทีละแถว สูตรใน E3 คือ:

    =TOROW(A3:C5)

    หากต้องการสแกนช่วงตามคอลัมน์ สูตรใน E8 คือ:

    =TOROW(A3:C5, ,TRUE)

    ในทั้งสองกรณี อาร์เรย์ผลลัพธ์คือ ขนาดเท่ากัน แต่เรียงค่าต่างกัน

    รวมช่วงหลายช่วงเป็นแถวเดียว

    ในการรวมช่วงที่ไม่ติดกันหลายช่วงเป็นแถวเดียว ขั้นแรก คุณต้องรวมช่วงในแนวนอนหรือแนวตั้งเป็นอาร์เรย์เดียวโดยใช้ HSTACK หรือ VSTACK ตามลำดับ จากนั้นใช้ฟังก์ชัน TOROW เพื่อแปลงอาร์เรย์ที่รวมกันเป็นแถว

    ขึ้นอยู่กับตรรกะทางธุรกิจของคุณ สูตรใดสูตรหนึ่งต่อไปนี้จะทำงานได้

    เรียงซ้อนอาร์เรย์ในแนวนอนและแปลงตาม แถว

    กับแถวแรกช่วงใน A3:C4 และช่วงที่สองใน A8:C9 สูตรด้านล่างจะซ้อนสองช่วงในแนวนอนเป็นอาร์เรย์เดียว จากนั้นแปลงเป็นแถวที่อ่านค่าจากซ้ายไปขวา ผลลัพธ์อยู่ใน E3 ในภาพด้านล่าง

    =TOROW(HSTACK(A3:C4, A8:C9))

    เรียงซ้อนอาร์เรย์ในแนวนอนและแปลงตามคอลัมน์

    หากต้องการอ่านอาร์เรย์เรียงซ้อนในแนวตั้งจากบนลงล่าง คุณตั้งค่าอาร์กิวเมนต์ที่ 3 ของ TOROW เป็น TRUE ตามที่แสดงใน E5 ในภาพด้านล่าง:

    =TOROW(HSTACK(A3:C4, A8:C9), ,TRUE)

    เรียงอาร์เรย์ในแนวตั้งและแปลงตามแถว

    เพื่อผนวกแต่ละอาร์เรย์ อาร์เรย์ที่ตามมาที่ด้านล่างของอาร์เรย์ก่อนหน้า และอ่านอาร์เรย์ที่รวมกันในแนวนอน สูตรใน E12 คือ:

    =TOROW(VSTACK(A3:C4, A8:C9))

    อาร์เรย์แบบเรียงซ้อนในแนวตั้งและแปลงตามคอลัมน์

    หากต้องการเพิ่มแต่ละอาร์เรย์ที่ตามมาที่ด้านล่างของอาร์เรย์ก่อนหน้าและสแกนอาร์เรย์ที่รวมกันในแนวตั้ง สูตรคือ:

    =TOROW(VSTACK(A3:C4, A8:C9), ,TRUE)

    เพื่อให้เข้าใจตรรกะได้ดีขึ้น ให้สังเกตลำดับค่าต่างๆ ใน อาร์เรย์ผลลัพธ์:

    แยกค่าที่ไม่ซ้ำจากช่วงลงในแถว

    เริ่มต้นด้วย Microsoft Excel 2016 เรามีฟังก์ชันที่ยอดเยี่ยมชื่อ UNIQUE ซึ่งสามารถรับค่าที่ไม่ซ้ำจากคอลัมน์เดียวได้อย่างง่ายดาย หรือแถว. อย่างไรก็ตาม ไม่สามารถจัดการอาร์เรย์แบบหลายคอลัมน์ได้ เพื่อเอาชนะข้อจำกัดนี้ ให้ใช้ฟังก์ชัน UNIQUE และ TOROW ร่วมกัน

    ตัวอย่างเช่น หากต้องการแยกค่าที่แตกต่างกัน (แตกต่างกัน) ทั้งหมดจากช่วง A2:C7 และวางผลลัพธ์ไว้ในแถวเดียวสูตรคือ:

    =UNIQUE(TOROW(A2:C7), TRUE)

    เนื่องจาก TOROW ส่งคืนอาร์เรย์แนวนอนหนึ่งมิติ เราจึงตั้งค่าอาร์กิวเมนต์ที่ 2 ( by_col ) ของ UNIQUE เป็น TRUE เพื่อเปรียบเทียบคอลัมน์กับแต่ละคอลัมน์ อื่นๆ

    ในกรณีที่คุณต้องการให้ผลลัพธ์เรียงตามลำดับตัวอักษร ให้รวมสูตรข้างต้นในฟังก์ชัน SORT:

    =SORT(UNIQUE(TOROW(A2:C7), TRUE), , ,TRUE )

    เช่นเดียวกับ UNIQUE by_col อาร์กิวเมนต์ ของ SORT ถูกตั้งค่าเป็น TRUE

    ทางเลือกของ TOROW สำหรับ Excel 365 - 2010

    ใน Excel เวอร์ชันที่ไม่มีฟังก์ชัน TOROW คุณสามารถแปลงช่วงเป็นแถวเดียวโดยใช้ฟังก์ชันต่างๆ สองสามฟังก์ชันที่ทำงานร่วมกัน รุ่นเก่า วิธีแก้ปัญหาเหล่านี้ซับซ้อนกว่า แต่ก็ได้ผล

    ในการสแกนช่วงในแนวนอน สูตรทั่วไปคือ:

    INDEX( ช่วง , QUOTIENT(COLUMN (A1)-1, COLUMNS( range ))+1, MOD(COLUMN(A1)-1, COLUMNS( range ))+1)

    หากต้องการสแกนช่วงในแนวตั้ง สูตรทั่วไปคือ :

    INDEX( range , MOD(COLUMN(A1)-1, COLUMNS( range ))+1, QUOTIENT(COLUMN (A1)-1, COLUMNS(<15)>ช่วง ))+1)

    สำหรับชุดข้อมูลตัวอย่างของเราใน A3:C5 สูตรจะมีรูปแบบดังนี้:

    หากต้องการสแกนช่วงตามแถว:

    =INDEX($A$3:$C$5, QUOTIENT(COLUMN(A1)-1, COLUMNS($A$3:$C$5))+1, MOD(COLUMN(A1)-1, COLUMNS($A$3:$C$5))+1)

    สูตรนี้เป็นทางเลือกแทนฟังก์ชัน TOROW โดยอาร์กิวเมนต์ที่ 3 ตั้งค่าเป็น FALSE หรือละไว้:

    =TOROW(A3:C5)

    หากต้องการสแกนช่วงโดย คอลัมน์:

    =INDEX($A$3:$C$5, MOD(COLUMN(A1)-1, COLUMNS($A$3:$C$5))+1, QUOTIENT(COLUMN(A1)-1, COLUMNS($A$3:$C$5))+1)

    สูตรนี้เทียบเท่ากับฟังก์ชัน TOROW โดยอาร์กิวเมนต์ตัวที่ 3 ตั้งค่าเป็นTRUE:

    =TOROW(A3:C5, ,TRUE)

    โปรดทราบว่าไม่เหมือนกับฟังก์ชัน TOROW ของอาร์เรย์ไดนามิก คือควรป้อนสูตรดั้งเดิมเหล่านี้ในแต่ละเซลล์ที่คุณต้องการให้ผลลัพธ์ปรากฏ ในกรณีของเรา สูตรแรก (ตามแถว) ไปที่ E3 และคัดลอกผ่าน M3 สูตรที่สอง (ตามคอลัมน์) อยู่ใน E8 และลากผ่าน M8

    เพื่อให้สูตรคัดลอกได้อย่างถูกต้อง เราจะล็อกช่วงโดยใช้การอ้างอิงแบบสัมบูรณ์ ($A$3:$C$5) ช่วงที่ตั้งชื่อก็มีประโยชน์เช่นกัน

    หากคุณคัดลอกสูตรไปยังเซลล์มากกว่าที่ต้องการ #REF! ข้อผิดพลาดจะปรากฏในเซลล์ "พิเศษ" ในการแก้ไขปัญหานี้ ให้ใส่สูตรของคุณในฟังก์ชัน IFERROR ดังนี้:

    =IFERROR(INDEX($A$3:$C$5, QUOTIENT(COLUMN(A1)-1, COLUMNS($A$3:$C$5))+1, MOD(COLUMN(A1)-1, COLUMNS($A$3:$C$5))+1), "")

    สูตรเหล่านี้ทำงานอย่างไร

    ด้านล่างนี้คือรายละเอียดโดยละเอียด ของสูตรแรกที่จัดเรียงค่าตามแถว:

    =INDEX($A$3:$C$5, QUOTIENT(COLUMN(A1)-1, COLUMNS($A$3:$C$5))+1, MOD(COLUMN(A1)-1, COLUMNS($A$3:$C$5))+1)

    ที่หัวใจของสูตร เราใช้ฟังก์ชัน INDEX เพื่อรับค่าของเซลล์ตามตำแหน่งสัมพัทธ์ใน ช่วง

    หมายเลขแถว คำนวณโดยสูตรนี้:

    QUOTIENT(COLUMN(A1)-1, COLUMNS($A$3:$C$5))+1

    แนวคิดคือการสร้างลำดับตัวเลขซ้ำๆ เช่น 1,1 ,1,2,2,2,3,3,3, … โดยที่แต่ละหมายเลขจะทำซ้ำหลาย ๆ ครั้งตามที่มีคอลัมน์อยู่ในช่วงแหล่งที่มา และนี่คือวิธีที่เราทำ:

    QUOTIENT ส่งคืนส่วนจำนวนเต็มของการหาร

    สำหรับ ตัวเศษ เราใช้ COLUMN(A1)-1 ซึ่งส่งคืนค่าอนุกรม ตัวเลขจาก 0 ในเซลล์แรกที่ป้อนสูตรเป็น n (จำนวนค่าทั้งหมดในช่วงลบ 1) ในเซลล์สุดท้ายที่ป้อนสูตร ในตัวอย่างนี้ เรามี 0 ใน E2 และ 8 ใน M3

    สำหรับ ตัวหาร เราใช้ COLUMNS($A$3:$C$5)) ซึ่งจะส่งคืนค่าคงที่เท่ากับจำนวนคอลัมน์ในช่วงของคุณ (3 ในกรณีของเรา)

    ด้วยเหตุนี้ ฟังก์ชัน QUOTIENT จึงส่งกลับ 0 ใน 3 เซลล์แรก (E3:G3) ซึ่งเรา บวก 1 ดังนั้นหมายเลขแถวคือ 1

    สำหรับ 3 เซลล์ถัดไป (H3:J3) QUOTIENT จะส่งกลับ 1 และ +1 จะให้หมายเลขแถว 2 ไปเรื่อยๆ

    ในการคำนวณ หมายเลขคอลัมน์ คุณต้องสร้างลำดับหมายเลขที่เหมาะสมโดยใช้ฟังก์ชัน MOD:

    MOD(COLUMN(A1)-1, COLUMNS($A$3:$C$5))+1

    เนื่องจากมี 3 คอลัมน์ในช่วงของเรา ลำดับจึงต้องมีลักษณะดังนี้ : 1,2,3,1,2,3,…

    ฟังก์ชัน MOD ส่งกลับเศษที่เหลือหลังจากการหาร

    ใน E3, MOD(COLUMN(A1)-1, COLUMNS($ A$3:$C$5))+

    กลายเป็น

    MOD(1-1, 3)+1)

    และคืนค่า 1.

    ใน F3, MOD(COLUMN(B1)-1, COLUMNS($A$3:$C$5))+

    กลายเป็น

    MOD(2-1, 3)+1)

    และส่งคืน 2

    เมื่อสร้างหมายเลขแถวและคอลัมน์แล้ว INDEX จะดึงค่าที่จุดตัดของแถวและคอลัมน์นั้นได้อย่างง่ายดาย

    ใน E3 INDEX($A$3 :$C$5, 1, 1) คืนค่าจากแถวที่ 1 และคอลัมน์ที่ 1 ของช่วงที่อ้างอิง เช่น จากเซลล์ A3

    ใน F3 INDEX($A$3:$C$5, 1, 2) จะส่งกลับค่าจากแถวที่ 1 และคอลัมน์ที่ 2 เช่น จากเซลล์ B3

    และอื่น ๆ

    สูตรที่สองที่สแกนช่วงตามคอลัมน์ ทำงานในวิธีที่คล้ายกัน ข้อแตกต่างคือเราใช้ MOD เพื่อคำนวณหมายเลขแถวและ QUOTIENT เพื่อคำนวณหมายเลขคอลัมน์

    ฟังก์ชัน TOROW ไม่ทำงาน

    หากฟังก์ชัน TOROW เกิดข้อผิดพลาด แสดงว่า น่าจะเป็นหนึ่งในสาเหตุต่อไปนี้:

    #NAME? ข้อผิดพลาด

    ด้วยฟังก์ชัน Excel ส่วนใหญ่ #NAME? ข้อผิดพลาดเป็นตัวบ่งชี้ที่ชัดเจนว่าชื่อของฟังก์ชันสะกดผิด เมื่อใช้ TOROW อาจหมายความว่าไม่มีฟังก์ชันนี้ใน Excel ของคุณ หาก Excel ของคุณเป็นเวอร์ชันอื่นที่ไม่ใช่ 365 ให้ลองใช้ทางเลือก TOROW

    ข้อผิดพลาด #NUM

    ข้อผิดพลาด #NUM ระบุว่าอาร์เรย์ที่ส่งคืนไม่สามารถใส่ในแถวได้ ส่วนใหญ่มักเกิดขึ้นเมื่อคุณอ้างอิงทั้งคอลัมน์และ/หรือแถวแทนที่จะเป็นช่วงที่เล็กกว่า

    ข้อผิดพลาด #SPILL

    ในกรณีส่วนใหญ่ ข้อผิดพลาด #SPILL แสดงว่าแถวที่ คุณป้อนสูตรแล้วไม่มีเซลล์ว่างมากพอที่จะใส่ผลลัพธ์ลงในสูตร หากเซลล์ข้างเคียงว่างเปล่า ตรวจสอบให้แน่ใจว่าไม่มีช่องว่างหรืออักขระอื่นๆ ที่ไม่พิมพ์อยู่ในเซลล์นั้น สำหรับข้อมูลเพิ่มเติม โปรดดูที่ข้อผิดพลาด #SPILL หมายความว่าอย่างไรใน Excel

    นั่นคือวิธีที่คุณใช้ฟังก์ชัน TOROW ใน Excel เพื่อแปลงอาร์เรย์หรือช่วง 2 มิติให้เป็นแถวเดียว ฉันขอขอบคุณที่อ่านและหวังว่าจะได้พบคุณในบล็อกของเราในสัปดาห์หน้า!

    สมุดงานแบบฝึกหัดสำหรับการดาวน์โหลด

    ฟังก์ชัน Excel TOROW - ตัวอย่างสูตร (ไฟล์ .xlsx)

    Michael Brown เป็นผู้ที่ชื่นชอบเทคโนโลยีโดยเฉพาะและมีความหลงใหลในการทำให้กระบวนการที่ซับซ้อนง่ายขึ้นโดยใช้เครื่องมือซอฟต์แวร์ ด้วยประสบการณ์กว่าทศวรรษในอุตสาหกรรมเทคโนโลยี เขาได้ฝึกฝนทักษะของเขาใน Microsoft Excel และ Outlook รวมถึง Google ชีตและเอกสาร บล็อกของ Michael ทุ่มเทให้กับการแบ่งปันความรู้และความเชี่ยวชาญของเขากับผู้อื่น โดยให้คำแนะนำและแบบฝึกหัดที่ทำตามได้ง่ายเพื่อปรับปรุงผลิตภาพและประสิทธิภาพ ไม่ว่าคุณจะเป็นมืออาชีพที่ช่ำชองหรือมือใหม่ บล็อกของ Michael นำเสนอข้อมูลเชิงลึกอันมีค่าและคำแนะนำที่เป็นประโยชน์สำหรับการใช้ประโยชน์สูงสุดจากเครื่องมือซอฟต์แวร์ที่จำเป็นเหล่านี้