Nhóm các nhãn và nối các giá trị văn bản của chúng (như bảng xoay vòng)


22

Tôi đã có một bảng tính với dữ liệu như thế này:

Sản phẩm | Thuộc tính
---------- + ----------
Sản phẩm A | Lục lam
Sản phẩm B | Lục lam
Sản phẩm C | Lục lam
Sản phẩm A | Màu đỏ tươi
Sản phẩm C | Màu đỏ tươi
Sản phẩm B | Màu vàng
Sản phẩm C | Màu vàng
Sản phẩm A | Đen
Sản phẩm B | Đen

Những gì tôi muốn làm mọi thứ theo Cột A và Cột B là danh sách các giá trị được phân tách bằng dấu phẩy chia sẻ Cột A chung, như vậy:

Sản phẩm | Thuộc tính
---------- + --------------------------
Sản phẩm A | Lục lam, đỏ tươi, đen
Sản phẩm B | Lục lam, Vàng, Đen
Sản phẩm C | Lục lam, đỏ tươi, vàng, đen

Thật không may, Bảng Pivot chỉ biết cách làm việc với các giá trị số và thứ xa nhất mà nó đi theo hướng này là đếm số lần Cột A xảy ra.

Cuối cùng tôi đã có thể loại bỏ điều này bằng cách nhập dữ liệu vào cơ sở dữ liệu MySQL và sử dụng GROUP_CONCAT(Attribute)chức năng của MySQL trong một truy vấn có GROUP BY Productmệnh đề, nhưng sau khi đập đầu vào bàn của tôi nhiều lần trong khi cố gắng tìm ra giải pháp Excel.

Để tham khảo trong tương lai, điều này có thể có trong Excel mà không cần macro không? Cho dù có hay không, làm thế nào người ta sẽ kéo cái này ra?

Câu trả lời:


31
   |     A     |     B
---+-----------+-----------
 1 |  PRODUCT  | ATTRIBUTE
 2 | Product A | Cyan
 3 | Product B | Cyan
 4 | Product C | Cyan
 5 | Product A | Magenta
 6 | Product C | Magenta
 7 | Product B | Yellow
 8 | Product C | Yellow
 9 | Product A | Black
10 | Product B | Black

Giả sử hàng 1: 1 là hàng tiêu đề.

  1. Sắp xếp theo cột A để nhóm theo sản phẩm

  2. Chuẩn bị dữ liệu ở định dạng được phân tách bằng dấu phẩy trong cột C bằng cách nhập vào C2 công thức sau và sao chép xuống C3: C10.

    =IF(A2<>A1, B2, C1 & "," & B2)
    
  3. Xác định các hàng hữu ích bằng cách nhập vào D2 =A2<>A3và sao chép xuống D3: D10.

  4. Sao chép cột C: D, sau đó dán đặc biệt dưới dạng giá trị ( AltE- S- V- Enter). Bây giờ bạn sẽ nhận được:

    Product A    Cyan       Cyan                   FALSE
    Product A    Magenta    Cyan,Magenta           FALSE
    Product A    Black      Cyan,Magenta,Black     TRUE
    Product B    Cyan       Cyan                   FALSE
    Product B    Yellow     Cyan,Yellow            FALSE
    Product B    Black      Cyan,Yellow,Black      TRUE
    Product C    Cyan       Cyan                   FALSE
    Product C    Magenta    Cyan,Magenta           FALSE
    Product C    Yellow     Cyan,Magenta,Yellow    TRUE
    
  5. Xóa các hàng vô dụng bằng cách lọc FALSEtrong cột D bằng AutoFilter, sau đó xóa các hàng đó.

  6. Kết thúc . Cột A & C là những gì bạn cần.


1
Đó là sử dụng trí tưởng tượng của bạn! Chúc mừng!
jorgebg

Trong khi điều này hoạt động, thời gian đã thay đổi kể từ năm 2012. Hãy xem bên dưới để biết câu trả lời mới sử dụng bổ trợ PowerQuery (được tích hợp sẵn trong Excel 2016). Nó không thể dễ dàng hơn. Chà, có lẽ đang nói chuyện với máy tính và yêu cầu nó "nhóm dữ liệu của tôi!" Có lẽ trong 6 năm nữa.
ripvlan

11

Tôi biết đó là một bài viết cũ nhưng tôi đã có thử thách này ngày hôm nay. Tôi đã sử dụng bổ trợ PowerQuery từ Microsoft (LƯU Ý: theo mặc định, nó được tích hợp vào Excel 2016).

  1. Chọn bảng của bạn
  2. Trong tab POWER QUERY (hoặc DATA năm 2016), chọn "Từ bảng"
  3. Nhấp vào cột "Sản phẩm"
  4. trong tab Transform, chọn "Group By"
  5. Trên tab Xem, đảm bảo đã chọn "Thanh công thức"
  6. Thay đổi công thức

    TỪ:

    = Table.Group(#"Changed Type", {"Product"}, {{"Count", each Table.RowCount(_), type number}})
    

    ĐẾN:

    = Table.Group(#"Changed Type", {"Product"}, {{"Attributes", each Text.Combine([Attribute], ", "), type text}})
    

    Nhấn vào đây để hình ảnh mô tả các bước từ trên

Bước 6 là tận dụng Công thức truy vấn nguồn (M) để thực hiện các thao tác dữ liệu không được hiển thị thông qua các hoạt động cơ bản được cung cấp trong giao diện người dùng. Microsoft có một tài liệu tham khảo đầy đủ có sẵn trực tuyến cho tất cả các chức năng nâng cao có sẵn trong Power Query.


Giải pháp rất thanh lịch, có lẽ là tốt nhất của tất cả.
asdmin

@matt poland, tôi tự hỏi nếu bạn biết cách loại bỏ các giá trị trùng lặp dọc theo dòng bằng thủ thuật khá tuyệt vời này?
Lana B

Tại BƯỚC 1 (sau khi chọn bảng), bạn sẽ có thể chuyển đến tab Dữ liệu trong ruy-băng và nhấp vào "Xóa bản sao".
Matt Ba Lan

Có một tùy chọn khác trong Power Query nếu bạn không muốn thay đổi bảng gốc của mình. Sau BƯỚC 2, bạn có thể giữ CTRL và nhấp vào cả hai cột để cả hai đều được chọn. Sau đó, bạn nhấp chuột phải vào một trong các cột và chọn "Xóa bản sao". Sau đó tiến hành BƯỚC 3.
Matt Ba Lan

Cảm ơn bạn! Đây là câu trả lời tốt nhất. Đối với những người sử dụng Excel 2016, PowerQuery được tích hợp sẵn. Chỉ cần nhấn tab Dữ liệu và sau đó nhấn "Từ Bảng / Phạm vi" trong phần "Nhận & Chuyển đổi dữ liệu". Power Query Editor sẽ mở, nhấn tab Xem và bật Thanh công thức. Phần còn lại của các hướng dẫn làm việc như là.
ripvlan

3

Dưới đây là một vài cách tiếp cận, cả "phi vĩ mô" ...

  1. Với một tập dữ liệu nhỏ, sau lần đầu tiên sắp xếp nó theo sản phẩm (tương tự như BY BY Product), trước tiên bạn có thể sao chép cột "Sản phẩm", dán vào nơi khác, sau đó xóa các bản sao. Tiếp theo, sao chép "Thuộc tính" cho từng sản phẩm và "dán đặc biệt, CHUYỂN GIAO" bên cạnh mỗi Sản phẩm. Sau đó nối dấu phẩy với từng thuộc tính được chuyển đổi của bạn trong cột kết quả cuối cùng. Phải thừa nhận rằng tất cả "sao chép / dán đặc biệt / chuyển đổi" này sẽ nhanh chóng bị cũ nếu bạn có một danh sách dài các Sản phẩm.

  2. Nếu bạn có nhiều dữ liệu, sử dụng một vài công thức, bạn có thể làm việc theo cách của mình đến kết quả cuối cùng, như được hiển thị bên dưới. Các công thức trong F2, G2, H2, I2 và N2 được biểu thị bằng các mũi tên màu xanh. Sao chép chúng vào các hàng bên dưới nếu cần. Lưu ý rằng J2: L2 sử dụng cùng một công thức như I2. Ngoài ra, công thức F2 đề cập đến một phạm vi "Sản phẩm" được đặt tên kéo dài phạm vi A: A.

nhập mô tả hình ảnh ở đây


Đây là những giải pháp tốt, mặc dù chỉ khi tập dữ liệu nhỏ, như bạn nói. Cảm ơn!
p0lar_bear
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.