Etiketleri gruplama ve metin değerlerini birleştirme (pivot tablo gibi)


22

Böyle veriler içeren bir e-tablo var:

Ürün | nitelik
---------- + ----------
Ürün A | Cam göbeği
Ürün B | Cam göbeği
Ürün C | Cam göbeği
Ürün A | eflatun
Ürün C | eflatun
Ürün B | Sarı
Ürün C | Sarı
Ürün A | Siyah
Ürün B | Siyah

Ne her şeyi Sütun A tarafından gruplandırmak ve Sütun B ortak sütun, ortak bir liste, bu şekilde ortak sütun, paylaşmak gibi yapmak istiyorum:

Ürün | nitelik
---------- + --------------------------
Ürün A | Mavi, Kırmızı, Siyah
Ürün B | Mavi, Sarı, Siyah
Ürün C | Mavi, Kırmızı, Sarı, Siyah

Maalesef, Pivot Tablolar yalnızca sayı değerleriyle nasıl çalışılacağını biliyor ve buna en uzağa gidince A Sütununun kaç kez sayıldığını sayıyor.

Sonunda bir MySQL veritabanına veri aktararak ve GROUP_CONCAT(Attribute)bir GROUP BY Productyan tümce ile bir sorguda MySQL işlevini kullanarak bunu başardı, ancak bir Excel çözümü anlamaya çalışırken tekrar kafamı masamda vurduktan sonra.

İleride başvurmak üzere Excel'de makro içermeyen bu mümkün müdür? Olsun ya da olmasın, bunu nasıl çekerdin?

Yanıtlar:


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

Satır 1: 1'in üstbilgi satırı olduğu varsayılır.

  1. Ürüne göre gruplamak için A sütununa göre sırala

  2. Aşağıdaki formülü C2'ye girip C3: C10'a kopyalayarak C sütununda virgülle ayrılmış biçimde veri hazırlayın .

    =IF(A2<>A1, B2, C1 & "," & B2)
    
  3. D2'ye girerek yararlı satırları belirleyin=A2<>A3 ve D3: D10'a kopyalayın.

  4. C: D sütununu kopyalayın, sonra değer olarak özel yapıştırın ( AltE- S- V- Enter). Şimdi alacaksınız:

    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. FALSEOtomatik Sütun ile D sütununa filtre uygulayarak işe yaramaz satırları kaldırın , ardından bu satırları silin.

  6. Bitir . Sütun A & C ihtiyacınız olan şeydir.


1
Hayal gücünüzü kullanıyor! Tebrikler!
jorgebg

Bu çalışırken, 2012'den bu yana zaman değişti. PowerQuery eklentisini (Excel 2016'da yerleşik olarak) kullanan yeni bir yanıt için aşağıya bakın. Daha kolay olamazdı. Belki de bilgisayarla konuşup "verilerimi gruplandır!" Belki 6 yıl sonra.
ripvlan

11

Eski bir yazı olduğunu biliyorum ama bugün bu zorluğu yaşadım. Microsoft'tan PowerQuery eklentisini kullandım (NOT: varsayılan olarak Excel 2016'da yerleşiktir).

  1. Masanızı seçin
  2. GÜÇ SORGULAMA sekmesi (veya 2016'da VERİ) altında "Tablodan" seçeneğini belirleyin
  3. "Ürün" sütununu tıklayın
  4. Dönüştür sekmesinin altında "Gruplama Ölçütü" nü seçin
  5. Görünüm sekmesinde "Formül Çubuğu" nun işaretli olduğundan emin olun
  6. Formülü değiştirme

    DAN:

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

    TO:

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

    Yukarıdaki adımları tasvir eden resim için buraya tıklayın

Adım 6, kullanıcı arayüzünde sağlanan temel işlemlerle gösterilmeyen veri manipülasyonlarını gerçekleştirmek için Güç Sorgusu (M) Formüllerinden yararlanmaktadır. Microsoft, Power Query'de bulunan tüm gelişmiş işlevler için çevrimiçi olarak tam bir başvuruya sahiptir.


Çok zarif bir çözüm, muhtemelen en iyisi.
asdmin

@matt poland, bu oldukça müthiş numarayı kullanarak satırlar boyunca yinelenen değerleri nasıl kaldıracağınızı biliyor musunuz?
Lana B

ADIM 1'de (tabloyu seçtikten sonra) şeritteki Veri sekmesine gidebilmeniz ve "Kopyaları Kaldır" ı tıklayabilmeniz gerekir.
Matt Poland

Orijinal tablonuzu değiştirmek istemiyorsanız, Power Query içinde başka bir seçenek daha vardır. 2. ADIM'dan sonra, CTRL tuşunu basılı tutarak her iki sütunu da tıklatarak seçilebilir. Ardından sütunlardan birine sağ tıklayın ve "Kopyaları Kaldır" ı seçin. Sonra 3. ADIM'a geçin.
Matt Poland

Teşekkür ederim! Bu en iyi cevap. Excel 2016 kullananlar için PowerQuery yerleşiktir. Veri sekmesine basın ve ardından "Verileri Al ve Dönüştür" bölümündeki "Tablodan / Aralıktan" seçeneğine basın. Power Query Editor açılır, Görünüm sekmesine basın ve Formül Çubuğunu etkinleştirin. Talimatların geri kalanı olduğu gibi çalışır.
ripvlan

3

İşte "makro olmayan" bir kaç yaklaşım var ...

  1. Küçük bir veri kümesiyle, önce ürüne göre sıraladıktan sonra (GROUP BY Ürününe benzer şekilde), önce "Ürün" sütununu kopyalayabilir, başka bir yere yapıştırabilir ve daha sonra kopyaları kaldırabilirsiniz. Ardından, her bir ürün için "Özellikler" i kopyalayın ve her bir Ürünün yanındaki "özel yapıştır, TRANSPOSE" seçeneğini kopyalayın. Ardından, bir nihai sonuçlar sütununda, aktarılan tüm özelliklerinizle virgül ekleyin. Kuşkusuz, uzun bir Ürün listeniz varsa, tüm bu "kopyala / yapıştır özel / devrik" hızlı bir şekilde eski olur.

  2. Çok fazla veriniz varsa, birkaç formül kullanarak, aşağıda gösterildiği gibi nihai sonuca kadar ilerleyebilirsiniz. F2, G2, H2, I2 ve N2'deki formüller mavi oklarla gösterilir. Bunları aşağıdaki satırlara gerektiği gibi kopyalayın. J2: L2'nin I2 ile aynı formülü kullandığını unutmayın. Ayrıca F2 formülü, A: A aralığını kapsayan adlandırılmış bir "Ürünler" aralığına karşılık gelir.

resim açıklamasını buraya girin


Bunlar, ancak sizin gibi, veri kümesi küçükse iyi çözümlerdir. Teşekkürler!
p0lar_bear
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.