Làm thế nào để chuyển đổi đơn vị không thể xoay vòng, hoặc đảo ngược trục xoay trong Excel?


66

Tôi có dữ liệu giống như thế này:

Id | Loc1 | Loc2 | Loc3 | Loc4
---+------+------+------+-----
1  | NY   | CA   | TX   | IL
2  | WA   | OR   | NH   | RI

Và tôi muốn chuyển đổi nó thành cái này:

Id | LocNum | Loc
---+--------+----
1  |   1    | NY
1  |   2    | CA
1  |   3    | TX
1  |   4    | IL
2  |   1    | WA
2  |   2    | OR
2  |   3    | NH
2  |   4    | RI

Cách dễ nhất để làm điều này trong Excel 2007 là gì?


1
Tìm thấy câu trả lời: stackoverflow.com/questions/32115219/ Cách
Quandary

Câu trả lời:


69

Bạn có thể làm điều này với một bảng trụ.

  1. Tạo một "PivotTable nhiều phạm vi hợp nhất." (Chỉ trên Trình hướng dẫn Bảng Pivot. Gọi với ALT+ D, Ptrên Excel 2007)
  2. Chọn "Tôi sẽ tạo các trường trang của riêng tôi".
  3. Chọn dữ liệu của bạn.
  4. Nhấp đúp chuột vào tổng giá trị lớn - giá trị tại giao điểm của Row GrandCột Grand , tất cả các cách ở góc dưới bên phải của bảng trụ của bạn.

Bạn sẽ thấy một trang tính mới chứa tất cả dữ liệu trong bảng trụ của bạn, được hoán chuyển theo cách bạn đang tìm kiếm.

Các công nghệ Datapig cung cấp các hướng dẫn từng bước thực sự phức tạp hơn bạn cần - ví dụ của anh ấy chỉ chuyển một phần của tập dữ liệu & sử dụng kỹ thuật xoay vòng kết hợp với TextToColumn . Nhưng nó có rất nhiều hình ảnh.

Lưu ý rằng một bảng trụ sẽ nhóm dữ liệu. Nếu bạn muốn nó được tách nhóm, cách duy nhất để làm điều đó là sao chép bảng trụ và "dán đặc biệt" làm giá trị. Sau đó, bạn có thể điền vào chỗ trống bằng một kỹ thuật như thế này: http://www.contextures.com/xlDataEntry02.html


Cảm ơn câu trả lời của bạn, nhưng tôi không chắc bạn đang nói gì ở đây. Đối với ví dụ trong câu hỏi của tôi, tôi sẽ sử dụng gì cho Nhãn Hàng, Nhãn Cột, Giá trị và Bộ lọc Báo cáo?
devuxer

Nếu tôi đặt Id vào Nhãn hàng và Loc1 qua Loc4 vào Nhãn cột, sau đó nhấp vào ô phía dưới bên phải (giao điểm của Tổng số lớn), thì nó sẽ tạo một trang tính mới với bảng, nhưng đó không phải là điều tôi muốn. Về cơ bản, nó chỉ là một bản sao của bảng trụ thông thường.
devuxer

Tôi xin lỗi - tôi đã để lại một phần dữ liệu quan trọng. Bảng trục phải là bảng trục loại 'nhiều phạm vi hợp nhất', mặc dù trong trường hợp này bạn không có gì để hợp nhất.
DaveParillo

4
À không sao, tôi đã tra cứu nó trong phần trợ giúp và tìm thấy một cách cửa sau để lấy Trình hướng dẫn Bảng Pivot cũ trong Excel 2007 (bạn cần nhấn ALT + D + P). Bây giờ tôi có thể làm theo các bước của bạn, và nó dường như hoạt động. Cảm ơn bạn đã giúp đỡ!
devuxer

1
Đây là cách chính xác: stackoverflow.com/questions/32115219/ Cách
Quandary

7

Nếu dữ liệu của bạn không phải là Bảng Excel Pivot mà chỉ là dữ liệu, bạn có thể muốn "hủy xoay vòng" với một số mã VBA đơn giản. Mã phụ thuộc vào hai phạm vi được đặt tên, Nguồn và Đích. Nguồn là dữ liệu bạn muốn hủy xoay vòng (không bao gồm các tiêu đề cột / hàng, ví dụ NY-RI trong mẫu) và Target là ô đầu tiên nơi bạn muốn đặt kết quả của mình.

Sub unPivot()
Dim oTarget As Range
Dim oSource As Range
Dim oCell As Range

Set oSource = Names("Source").RefersToRange
Set oTarget = Names("Target").RefersToRange

For Each oCell In oSource
    If oCell.Value <> "" Then
        oTarget.Activate
      ' get the column header
        oTarget.Value = oCell.Offset(-(oCell.Row - oSource.Row + 1), 0).Text 
      ' get the row header
         oTarget.Offset(0, 1).Value = oCell.Offset(0, _
           -(oCell.Column - oSource.Column + 1)).Text 
      ' get the value
        oTarget.Offset(0, 2).Value = oCell.Text 
      ' move the target pointer to the next row
        Set oTarget = oTarget.Offset(1, 0) 
    End If
Next
Beep
End Sub

1
Cảm ơn vì điều đó. Hoạt động như ngoại lệ và làm cho tôi tiết kiệm rất nhiều thời gian.
tigrou

Cảm ơn bạn!! đây chỉ là ma thuật! tốt hơn nhiều so với jigiry-pokery với các báo cáo không liên kết không bao giờ có hiệu quả với tôi
trailmax

1
Điều này có vẻ tuyệt vời, nhưng tốt nhất tôi có thể nói, nó sẽ chỉ hoạt động cho một Bảng chỉ có một tiêu đề hàng. Nếu bảng trong ví dụ có nhiều tiêu đề hàng, giả sử nó có "SubId" ngoài trường Id, điều này sẽ không hoạt động. Có một cách dễ dàng để sửa đổi nó để nó sẽ hoạt động trong tình huống này?
Chris Stocking


4

Có một giải pháp khá hay trong excel 2010, chỉ cần chơi một chút với bảng xoay.

Tạo bảng xoay vòng từ dữ liệu của bạn với các cài đặt sau:

  • không có tổng phụ, không có tổng lớn
  • bố trí báo cáo: dạng bảng, lặp lại tất cả các nhãn mục
  • thêm tất cả các cột bạn cần, giữ các cột bạn muốn chuyển đổi ở bên phải
  • đối với mỗi cột bạn muốn chuyển đổi: cài đặt trường mở - trong tab bố trí & in: chọn nhãn Hiển thị nhãn vật phẩm ở dạng phác thảo và chọn cả hai hộp kiểm bên dưới nó
  • sao chép bảng của bạn vào một vị trí riêng biệt (chỉ các giá trị)
  • nếu bạn có các ô trống trong dữ liệu gốc của mình thì hãy lọc các giá trị trống ở cột ngoài cùng bên phải và xóa các hàng đó (không lọc trong bảng xoay vòng vì nó sẽ không hoạt động như bạn cần!)

1
Đây chắc chắn là câu trả lời tốt nhất nếu bạn ở trong năm 2010 trở lên, và hoàn toàn không rõ ràng trong giao diện. Tìm kiếm tuyệt vời - thật đáng buồn khi tôi chỉ có một upvote!
jkf

3

Tốt nhất tôi đã nghĩ ra cho đến nay là:

Id   LocNum  Loc
---------------------------------
1    1       =INDEX(Data,A6,B6)
1    2       =INDEX(Data,A7,B7)
1    3       =INDEX(Data,A8,B8)
1    4       =INDEX(Data,A9,B9)
2    1       =INDEX(Data,A10,B10)
2    2       =INDEX(Data,A11,B11)
2    3       =INDEX(Data,A12,B12)
2    4       =INDEX(Data,A13,B13)

Điều này hoạt động, nhưng tôi phải tạo thủ công của Id và LocNum. Nếu có một giải pháp tự động hơn (ngoài việc viết một macro), vui lòng cho tôi biết trong một câu trả lời riêng.


2

Nếu kích thước của dữ liệu của bạn giống như trong mẫu được cung cấp trong câu hỏi của bạn, thì bộ công thức sau đây sử dụng OFFSET sẽ cung cấp cho bạn kết quả bắt buộc:

Giả định

1 | NY | CA | TX | IL

2 | WA | HOẶC | NH | RI

nằm trong phạm vi A2: E3, sau đó nhập

= OFFSET ($ A $ 2, FLOOR ((ROW (A2) -law ($ A $ 2)) / 4,1), 0)

trong F2, nói và

= MOD (ROW (A2) -law ($ A $ 2), 4) +1

trong G2, nói và

= OFFSET ($ B $ 2, FLOOR ((ROW (B2) -law ($ B $ 2)) / 4,1), MOD (ROW (A2) -law ($ A $ 2), 4))

trong H2, nói.

Sau đó sao chép các công thức này xuống theo yêu cầu.

Đây là giải pháp công thức tích hợp dễ dàng, tinh khiết nhất mà tôi có thể nghĩ ra.


1

Bạn dường như đã nhận được cột "loc" (bằng chứng là câu trả lời đầu tiên của bạn), và bây giờ bạn cần trợ giúp để có được hai cột khác.

Tùy chọn đầu tiên của bạn là chỉ cần nhập một vài hàng đầu tiên (giả sử 12) vào các cột đó và kéo xuống - Tôi nghĩ Excel thực hiện đúng trong trường hợp này (tôi không có excel trên máy tính này để kiểm tra chắc chắn).

Nếu điều đó không hiệu quả hoặc nếu bạn muốn một cái gì đó nhiều lập trình viên hơn, hãy thử sử dụng hàm row (). Một cái gì đó như "= Tầng (hàng () / 4)" cho cột ID và "= mod (hàng (), 4) +1" cho cột LocNum.


1

Có một tiện ích chuyển đổi VBA tham số để hủy dữ liệu xoay vòng hoặc đảo ngược trở lại bảng cơ sở dữ liệu, vui lòng xem

http: //www.sảnsheet1.com / unp Pivot-data.html


1
Chào mừng bạn đến với Siêu người dùng! Trong khi về mặt lý thuyết có thể trả lời câu hỏi, tốt hơn là nên bao gồm các phần thiết yếu của câu trả lời ở đây và cung cấp liên kết để tham khảo.
Peachy

1

Đây là một công cụ tuyệt vời để hủy xoay vòng, bình thường hóa Bảng Pivot.

Bình thường von von Tabellen

Tôi hy vọng nó sẽ giúp.


1
Chào mừng bạn đến với SuperUser! Mặc dù công cụ bạn liên kết để cung cấp giải pháp, bài đăng này chỉ hữu ích miễn là liên kết vẫn hoạt động. Để đảm bảo bài đăng của bạn vẫn hữu ích trong tương lai, vui lòng chỉnh sửa câu trả lời của bạn để bao gồm bất kỳ thông tin bổ sung nào về sản phẩm, bao gồm cả cách sử dụng nó để giải quyết vấn đề được mô tả trong câu hỏi. Cảm ơn!
Xuất sắc

1

Câu trả lời @DaveParillo là câu trả lời tốt nhất cho một bảng tab duy nhất. Tôi muốn thêm một số tính năng bổ sung ở đây.

Đối với nhiều cột trước các cột không có trục

Phương pháp này không hoạt động.

Youtube hủy dữ liệu đơn giản như câu hỏi

Đây là một video youtube cho thấy làm thế nào để làm điều đó một cách đơn giản. Tôi đã bỏ qua phần về cách thêm phím tắt và sử dụng phím tắt @devuxer trong câu trả lời của DaveParillo.

https://www.youtube.com/watch?v=pUXJLzqlEPk


3
Bản chất câu trả lời của bạn là một liên kết đến video và nội dung không được mô tả. Nếu liên kết bị hỏng hoặc không có sẵn, câu trả lời của bạn sẽ không có giá trị. Vui lòng bao gồm các thông tin cần thiết trong câu trả lời của bạn và sử dụng liên kết chỉ để ghi nhận và thăm dò thêm.
fixer1234

-2

Nó đơn giản hơn thế này nhiều. Chỉ cần nhấp vào tùy chọn "Chuyển đổi" trong "Dán đặc biệt ..." để nhận được chuyển vị bạn đang yêu cầu.


1
Điều này sẽ không làm việc.
zx8754
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.