Ana içeriğe atla

Excel'de 3 veya birden çok sütunun tüm kombinasyonları nasıl oluşturulur?

Diyelim ki, 3 veri sütunum var, şimdi, bu 3 sütundaki verilerin tüm kombinasyonlarını aşağıda gösterilen ekran görüntüsü gibi oluşturmak veya listelemek istiyorum. Bu görevi Excel'de çözmek için iyi yöntemleriniz var mı?

Bir formül kullanarak tüm kombinasyonları 3 sütun veriye göre oluşturun

VBA kodunu kullanarak tüm kombinasyonları 3 veya daha fazla veri sütununa göre oluşturun

Harika bir özellik kullanarak tüm kombinasyonları 3 veya daha fazla veri sütununa göre oluşturun


Bir formül kullanarak tüm kombinasyonları 3 sütun veriye göre oluşturun

Aşağıdaki uzun formül, 3 sütunun tüm kombinasyonlarını listelemeye yardımcı olabilir, lütfen şu şekilde yapın:

1. Lütfen sonucun çıktısının alınacağı hücreyi tıklayın ve ardından aşağıdaki formülü kopyalayıp içine yapıştırın:

=IFERROR(INDEX($A$2:$A$4,INT((ROW(1:1)-1)/((COUNTA($B$2:$B$6)*(COUNTA($C$2:$C$5)))))+1)&"-"&INDEX($B$2:$B$6,MOD(INT((ROW(1:1)-1)/COUNTA($C$2:$C$5)),COUNTA($B$2:$B$6))+1)&"-"&INDEX($C$2:$C$5,MOD((ROW(1:1)-1),COUNTA($C$2:$C$5))+1),"")

not: Bu formülde: A2: A4, B2: B6, C2: C5 kullanmak istediğiniz veri aralıklarıdır.

2. Ardından, boş hücreler görüntülenene kadar doldurma tutamacını hücrelere doğru sürükleyin, yani 3 sütunun tüm kombinasyonları listelenmiştir, ekran görüntüsüne bakın:


VBA kodunu kullanarak tüm kombinasyonları 3 veya daha fazla veri sütununa göre oluşturun

Yukarıdaki uzun formülün kullanımı biraz zordur, eğer kullanılması gereken birden fazla sütun varsa, değişiklik yapmak zahmetli olacaktır. Burada, bununla hızlı bir şekilde başa çıkmak için bir VBA kodu tanıtacağım.

1. Basılı tutun ALT + F11 tuşlarını açmak için Uygulamalar için Microsoft Visual Basic pencere.

2. tıklayın Ekle > modülve aşağıdaki kodu Modül Penceresine yapıştırın.

VBA kodu: 3 veya birden çok sütunun tüm kombinasyonlarını oluşturun

Sub ListAllCombinations()
'Updateby Extendoffice
Dim xDRg1, xDRg2, xDRg3 As Range
Dim xRg  As Range
Dim xStr As String
Dim xFN1, xFN2, xFN3 As Integer
Dim xSV1, xSV2, xSV3 As String
Set xDRg1 = Range("A2:A4")  'First column data
Set xDRg2 = Range("B2:B6")  'Second column data
Set xDRg3 = Range("C2:C5")  'Third column data
xStr = "-"   'Separator
Set xRg = Range("E2")  'Output cell
For xFN1 = 1 To xDRg1.Count
    xSV1 = xDRg1.Item(xFN1).Text
    For xFN2 = 1 To xDRg2.Count
        xSV2 = xDRg2.Item(xFN2).Text
      For xFN3 = 1 To xDRg3.Count
        xSV3 = xDRg3.Item(xFN3).Text
        xRg.Value = xSV1 & xStr & xSV2 & xStr & xSV3
        Set xRg = xRg.Offset(1, 0)
       Next
    Next
Next
End Sub

not: Yukarıdaki kodda, A2: A4, B2: B6, C2: C5 kullanmak istediğiniz veri aralığı, E2 sonuçları bulmak istediğiniz çıktı hücresidir. Daha fazla sütunun tüm kombinasyonlarını elde etmek istiyorsanız, lütfen ihtiyaç duyduğunuzda diğer parametreleri değiştirin ve koda ekleyin.

3. Daha sonra, tuşuna basın. F5 Bu kodu çalıştırmak için anahtar ve 3 veya daha fazla sütunun tüm kombinasyonları aynı anda oluşturulacaktır, ekran görüntüsüne bakın:


Harika bir özellik kullanarak tüm kombinasyonları 3 veya daha fazla veri sütununa göre oluşturun

Eğer varsa Kutools for Excelgüçlü Tüm Kombinasyonları Listele özelliği sayesinde birden çok sütunun tüm kombinasyonlarını hızlı ve kolay bir şekilde listeleyebilirsiniz.

İpuçları:Bunu uygulamak için Tüm Kombinasyonları Listele özelliği, öncelikle indirmelisiniz Kutools for Excelve ardından özelliği hızlı ve kolay bir şekilde uygulayın.

Kurduktan sonra Kutools for Excellütfen şunu yapın:

1. tıklayın Kutools > Ekle > Tüm Kombinasyonları Listele, ekran görüntüsüne bakın:

2. In Tüm Kombinasyonları Listele iletişim kutusunda, aşağıda gösterilen ekran görüntüsü gibi kombinasyonları listelemek için sütun verilerini ve ayırıcıları belirtin:

3. Verileri ve ayırıcıyı ayarladıktan sonra, Ok düğmesi, bir sonraki istem kutusunda sonucu bulmak için bir hücre seçin, ekran görüntüsüne bakın:

4. Ve sonra tıklayın OK düğmesi, tüm kombinasyonlar aşağıda gösterilen ekran görüntüsü gibi hemen oluşturulmuştur:

Kutools for Excel'i indirmek için tıklayın ve Şimdi ücretsiz deneme!


  • Süper Formül Çubuğu (birden çok metin ve formül satırını kolayca düzenleyin); Okuma Düzeni (çok sayıda hücreyi kolayca okuyun ve düzenleyin); Filtrelenmiş Aralığa Yapıştır...
  • Hücreleri / Satırları / Sütunları Birleştirme ve Verilerin Saklanması; Bölünmüş Hücre İçeriği; Yinelenen Satırları ve Toplam / Ortalamayı Birleştirme... Yinelenen Hücreleri Önleyin; Aralıkları Karşılaştır...
  • Yinelenen veya Benzersiz'i seçin Satırlar; Boş Satırları Seçin (tüm hücreler boştur); Süper Bul ve Bulanık Bul Birçok Çalışma Kitabında; Rastgele Seçim ...
  • Tam kopya Formül referansını değiştirmeden Birden Çok Hücre; Otomatik Referans Oluştur Birden Çok Sayfaya; Madde İşaretleri Ekle, Onay Kutuları ve daha fazlası ...
  • Sık Kullanılan ve Hızlı Eklenen Formüller, Aralıklar, Grafikler ve Resimler; Hücreleri Şifrele şifre ile; Posta Listesi Oluşturun ve e-posta gönder ...
  • Metni Çıkar, Metin Ekle, Konuma Göre Kaldır, Alanı Kaldır; Sayfalama Alt Toplamları Oluşturma ve Yazdırma; Hücre İçeriği ve Yorumları Arasında Dönüştür...
  • Süper Filtre (filtre şemalarını kaydedin ve diğer sayfalara uygulayın); Gelişmiş Sıralama ay / hafta / gün, sıklık ve daha fazlasına göre; Özel Filtre kalın, italik ...
  • Çalışma Kitaplarını ve Çalışma Sayfalarını Birleştirin; Tabloları anahtar sütunlara göre birleştirin; Verileri Birden Çok Sayfaya Bölme; Toplu dönüştürme xls, xlsx ve PDF...
  • Pivot Tablo Gruplaması hafta numarası, haftanın günü ve daha fazlası ... Kilidi Açılmış, Kilitli Hücreleri Göster farklı renklerle; Formülü / Adı Olan Hücreleri Vurgulayın...
kte sekmesi 201905
  • Word, Excel, PowerPoint'te sekmeli düzenlemeyi ve okumayı etkinleştirin, Publisher, Access, Visio ve Project.
  • Yeni pencereler yerine aynı pencerenin yeni sekmelerinde birden çok belge açın ve oluşturun.
  • Üretkenliğinizi% 50 artırır ve her gün sizin için yüzlerce fare tıklamasını azaltır!
ofis tabanı
Comments (19)
Rated 4.5 out of 5 · 1 ratings
This comment was minimized by the moderator on the site
Isn't this permutations without repetition, not combinations (of either variety)?

P(7,3) = 210 and that's the number of "combinations" your formula churns out for 3 columns of 7 rows.

Permutation of 7 choose 3 is 343 (repetition allowed).

C(7,3) = 35

Combination of 7 choose 3 is 84 (repetition allowed).

None of these match the 210 value returned by your formula.

Regardless, I like your formula. It can be extremely useful and taught me a lot about how to get something unusual out of Excel (LibreCalc in my case :) ).
This comment was minimized by the moderator on the site
Thanks! The formula worked nicely
Rated 4.5 out of 5
This comment was minimized by the moderator on the site
Esse código me ajudou bastante e combinou um item de cada coluna entre elas. Mas também preciso combinar dois itens de cada coluna, sem repetição. Alguém poderia me ajudar nisso?
This comment was minimized by the moderator on the site
Esse código me ajudou bastante e combinou um item de cada coluna entre elas. Mas também preciso combinar dois itens de cada coluna, sem repetição. Alguém poderia me ajudar nisso?
This comment was minimized by the moderator on the site
Bonjour, comment faire pour que chaque valeurs soient placées dans une colonne distincte en non séparées par un tiret ?
This comment was minimized by the moderator on the site
조합의 나열을 "단어-단어-단어" 순으로 나열하는 법은 이해했습니다.
그런데 "단어"가 아니라 숫자일 경우,
즉 숫자의 조합을 단순 나열이 아닌 덧셈이나 곱셈으로 적용하려면 어떻게 해야하는지 알 수 있을까요?

'VBA 코드 : 3 개 또는 여러 열의 모든 조합 생성' 에서 말이죠.

"1-1-1" 로 엑셀에 결과 값이 표기되는 것이 아니고

-1 로 엑셀에 표기될 수 있게 말입니다.
This comment was minimized by the moderator on the site
Hello So this is a code for 9 columns :')
Sub ListAllCombinations()
'Updateby Extendoffice
Dim xDRg1, xDRg2, xDRg3, xDRg4, xDRg5, xDRg6, xDRg7, xDRg8, xDRg9 As Range
Dim xRg As Range
Dim xStr As String
Dim xFN1, xFN2, xFN3, xFN4, xFN5, xFN6, xFN7, xFN8, xFN9 As Integer
Dim xSV1, xSV2, xSV3, xSV4, xSV5, xSV6, xSV7, xSV8, xSV9 As String
Set xDRg1 = Range("A2:A3") 'First column data
Set xDRg2 = Range("B2:B3") 'Second column data
Set xDRg3 = Range("C2:C10") 'Third column data
Set xDRg4 = Range("D2:D2") 'Third column data
Set xDRg5 = Range("E2:E3") 'Third column data
Set xDRg6 = Range("F2:F3") 'Third column data
Set xDRg7 = Range("G2:G4") 'Third column data
Set xDRg8 = Range("H2:H3") 'Third column data
Set xDRg9 = Range("I2:I3") 'Third column data
xStr = "-" 'Separator
Set xRg = Range("K2") 'Output cell
For xFN1 = 1 To xDRg1.Count
xSV1 = xDRg1.Item(xFN1).Text
For xFN2 = 1 To xDRg2.Count
xSV2 = xDRg2.Item(xFN2).Text
For xFN3 = 1 To xDRg3.Count
xSV3 = xDRg3.Item(xFN3).Text
For xFN4 = 1 To xDRg4.Count
xSV4 = xDRg4.Item(xFN4).Text
For xFN5 = 1 To xDRg5.Count
xSV5 = xDRg5.Item(xFN5).Text
For xFN6 = 1 To xDRg6.Count
xSV6 = xDRg6.Item(xFN6).Text
For xFN7 = 1 To xDRg7.Count
xSV7 = xDRg7.Item(xFN7).Text
For xFN8 = 1 To xDRg8.Count
xSV8 = xDRg8.Item(xFN8).Text
For xFN9 = 1 To xDRg9.Count
xSV9 = xDRg9.Item(xFN9).Text
xRg.Value = xSV1 & xStr & xSV2 & xStr & xSV3 & xStr & xSV4 & xStr & xSV5 & xStr & xSV6 & xStr & xSV7 & xStr & xSV8 & xStr & xSV9
Set xRg = xRg.Offset(1, 0)
Next
Next
Next
Next
Next
Next
Next
Next
Next
End Sub
This comment was minimized by the moderator on the site
HiIn VBA code I used four column and range of the column are E2:E75, B2:B267, C2:C195 & D2:D267. Out put range is J2. In this case out put result was exceed row limit. Please help to solve the error
This comment was minimized by the moderator on the site
<p>Thank you so much for this code. I have modified the code for the amount of column I need (25).</p><p>Thanks,</p>
This comment was minimized by the moderator on the site
Thank you so much. Exactly what I need :-)))
There are no comments posted here yet
Load More
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations