Excel แปลงและจัดระเบียบ


2

ฉันมีหลายแถวที่ฉันต้องการเปลี่ยนเป็นตาราง

มีวิธีใดใน Excel ที่จะแปลงรายการจำนวนมากแต่ละแถวมีสี่แถวลงในตารางที่แต่ละแถวสี่แถวใส่ในหนึ่งในสี่คอลัมน์

โดยทั่วไปสิ่งนี้:

a
b
c
d

a
b
c
d

ไปยัง

 a b c d
 a b c d

คำตอบ:


4

ฉันไม่ได้รู้ว่าจะทำอะไรให้พวกเขาทั้งหมด แต่คุณสามารถวางแบบนี้ ...

  • เลือกหนึ่งชุด abcd
  • คัดลอกเซลล์
  • แก้ไข -> วางแบบพิเศษ
  • [x] ปุ่มเปลี่ยนที่อยู่ด้านล่าง

นั่นจะทำเพื่อชุด a / b / c / d ฉันรู้ว่ามันไม่ได้เป็นคำตอบที่สมบูรณ์ แต่ถ้าไม่มีสิ่งเหล่านี้มากเกินไปมันอาจใช้ได้

นี่คือมาโครด่วนที่จะทำการแปลงให้คุณหากคุณต้องการ เพียงแค่ใส่ทุกอย่างในคอลัมน์ "A" และมันจะใส่ไว้ใน B1, C1, D1 และอื่น ๆ แถวถูกคั่นด้วยช่องว่างและสองช่องในแถวหมายถึง "หยุด"

คงที่ควรใช้งานได้ถึง 255 คอลัมน์ในขณะนี้ และใช่คุณสามารถใช้การตั้งค่า Transpose ในฟังก์ชัน pastespecial ใน vba ได้ แต่นั่นทำให้รหัสมีความซับซ้อนมากขึ้นสำหรับผลลัพธ์เดียวกันดังนั้นฉันจึงเรียบง่าย

Sub Macro1()
    lastBlank = False
    col = 2 'B
    row = 1
    For Each cell In Range("A:A")
        v = Trim(CStr(cell))
        If v = "" Then
            If lastBlank = True Then Exit For
            lastBlank = True
            col = 2 'B
            row = row + 1
        Else
            Cells(row, col) = v
            col = col + 1
            lastBlank = False
        End If
    Next
End Sub
  • เครื่องมือ -> Macros-> Visual Basic Editor
  • [เมนู] แทรก -> โมดูล
  • วางแมโครใน (ควรอยู่ใน 'Module1')
  • Run (ลูกศรสีเขียว) หรือ ... ปิดและเครื่องมือ -> แมโคร -> มาโคร -> [เรียกใช้]

1

หากใครยังอ่านบทความในบล็อกต่อไปนี้เป็นอีกวิธีในการดำเนินการ (เพียงกำหนดแถวที่ส่วนแรกของข้อมูลที่ใช้ในค่าคงที่ FirstRow แล้วเปลี่ยนเป็นหลวม) ...

Sub TransposeRowsFourAtATime()  
  Dim X As Long, LastRow As Long, OffSetCounter As Long  
  Const FirstRow As Long = 2  
  LastRow = Cells(Rows.Count, "A").End(xlUp).Row  
  For X = FirstRow To LastRow Step 5  
    Cells(FirstRow, "A").Offset(OffSetCounter).Resize(1, 4) = _  
       WorksheetFunction.Transpose(Cells(X, "A").Resize(4))  
  OffSetCounter = OffSetCounter + 1  
  Next  
  Range(Cells(FirstRow + OffSetCounter, "A"), Cells(LastRow, "A")).Clear  
End Sub  

Rick Rothstein (MVP - Excel)


0

มีฟังก์ชั่นexcel transpose พิมพ์ฟังก์ชันลงในเซลล์ที่คุณต้องการให้ transpose เริ่มต้นจากนั้นใช้ฟังก์ชัน edit-> fill เพื่อคัดลอกฟังก์ชันไปด้านข้าง (และลงหากจำเป็น)

ควรมีวิธีแก้ไขการจัดทำดัชนีแถว (ไปยังบัญชีสำหรับช่องว่าง) โดยใช้ADDRESSฟังก์ชัน


0

คุณสามารถป้อนสูตรเหล่านี้ (สมมติว่าข้อมูลของคุณเริ่มต้นใน A1) และเติมลงไปตามที่คุณต้องการ

B1            =IF(ISBLANK(A5),A1,"")
C1            =IF(ISBLANK(A5),A2,"")
D1            =IF(ISBLANK(A5),A3,"")
E1            =IF(ISBLANK(A5),A4,"")

จากนั้นคัดลอกและวางค่าพิเศษ จากนั้นเรียงลำดับเพื่อลบบรรทัดว่าง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.