Note: The other languages of the website are Google-translated. Back to English

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ı
Yorumları sıralama ölçütü
Yorumlar (17)
Henüz derecelendirme yok. İlk değerlendiren siz olun!
Bu yorum sitedeki moderatör tarafından en aza indirildi
Herhangi bir rastgele kombinasyon oluşturmak için kullanabileceğimiz
=INDEX($A$2:$A$4,RANDBETWEEN(1,3))&"-"&INDEX($B$2:$B$6,RANDBETWEEN(1,5))&"-"&INDEX($C$2:$C$5,RANDBETWEEN(1,4))
Bu yorum sitedeki moderatör tarafından en aza indirildi
Bu gönderiyi paylaştığınız için çok teşekkürler. @Balaji'ye formülü için çok teşekkürler
Bu yorum sitedeki moderatör tarafından en aza indirildi
NE KADAR TEŞEKKÜR ETSEM AZDIR! BENİ ÇOK ZAMAN KURTARDI!
Bu yorum sitedeki moderatör tarafından en aza indirildi
5 sütun için aşağıdaki formül nasıl yapılır? Çözmeye çalışıyorum ama hata veriyor
=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),"")
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba Nikhil, 5 sütundan tüm kombinasyonları almak için aşağıdaki VBA kodu size yardımcı olabilir, lütfen hücre referanslarını verilerinize göre değiştirin.
Alt ListeTüm Kombinasyonlar()
'güncelleme Extendoffice
Aralık olarak xDRg1, xDRg2, xDRg3, xDRg4, xDRg5 Dim
Aralık olarak Dim xRg
xStr'yi Dize Olarak Kıs
Soluk xFN1, xFN2, xFN3, xFN4, xFN5 Tam Sayı Olarak
Dim xSV1, xSV2, xSV3, xSV4, xSV5 Dize Olarak
xDRg1'i ayarla = Aralık("A2:A7") 'İlk sütun verisi
xDRg2'yi ayarla = Aralık ("B2:B7") 'İkinci sütun verisi
xDRg3'ü ayarla = Aralık("C2:C7") 'Üçüncü sütun verileri
xDRg4'ü ayarla = Aralık("D2:D7") 'Dördüncü sütun verisi
xDRg5'i ayarla = Aralık("E2:E7") 'Beşinci sütun verisi
xStr = "-" 'Ayırıcı
Set xRg = Aralık("H2") 'Çıkış hücresi
xFN1 için = 1 ila xDRg1.Count
xSV1 = xDRg1.Item(xFN1).Metin
xFN2 için = 1 ila xDRg2.Count
xSV2 = xDRg2.Item(xFN2).Metin
xFN3 için = 1 ila xDRg3.Count
xSV3 = xDRg3.Item(xFN3).Metin
xFN4 için = 1 ila xDRg4.Count
xSV4 = xDRg4.Item(xFN4).Metin
xFN5 için = 1 ila xDRg5.Count
xSV5 = xDRg5.Item(xFN5).Metin
xRg.Value = xSV1 & xStr & xSV2 & xStr & xSV3 & xStr & xSV4 & xStr & xSV5
xRg = xRg.Offset(1, 0) olarak ayarla
Sonraki
Sonraki
Sonraki
Sonraki
Sonraki
End SubLütfen deneyin, umarım size yardımcı olabilir!
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba skyyang, kodu 7 rulo için değiştirdim ama Excel'de sadece 1,048,576 satır olduğunu görünce VBA kodu tüm kombinasyonları veremiyor.Diğer sütunlarda nasıl devam edebilirim bir fikriniz var mı? Sanırım bu kod - Set xRg = xRg.Offset(1, 0) değişmesi gerekiyordu
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba skyyang, kodu 7 rulo için değiştirdim, ancak Excel'in yalnızca 1,048,576 satırı olduğunu görünce VBA kodu tüm kombinasyonları veremiyor.
Diğer sütunlarda nasıl devam edebileceğime dair bir fikrin var mı?
Bence bu kod - Set xRg = xRg.Offset(1, 0)
değiştirmek gerekli 
Bu yorum sitedeki moderatör tarafından en aza indirildi
=IFERROR(INDEX($A$2:$A$5,INT((ROW(1:1)-1)/((COUNTA($B$2:$B$3)*(COUNTA($C$2:$C$3)* (COUNTA($D$2:$D$4)* (COUNTA($E$2:$E$6)* (COUNTA($H$2:$H$6)* (COUNTA($G$2:$G$6)* (COUNTA($H$2:$H$6))))))))))+1)&"-"&INDEX($B$2:$B$3,MOD(INT((ROW(1:1)-1)/COUNTA($C$2:$C$3)),COUNTA($B$2:$B$3))+1)&"-" &INDEX($C$2:$C$3,MOD(INT((ROW(1:1)-1)/COUNTA($D$2:$D$4)),COUNTA($C$2:$C$3))+1)&"-" &INDEX($D$2:$D$4,MOD(INT((ROW(1:1)-1)/COUNTA($E$2:$E$6)),COUNTA($D$2:$D$4))+1)&"-" &INDEX($E$2:$E$6,MOD(INT((ROW(1:1)-1)/COUNTA($F$2:$F$6)),COUNTA($E$2:$E$6))+1)&"-" &INDEX($F$2:$F$6,MOD(INT((ROW(1:1)-1)/COUNTA($G$2:$G$6)),COUNTA($F$2:$F$6))+1)&"-" &INDEX($G$2:$G$6,MOD(INT((ROW(1:1)-1)/COUNTA($H$2:$H$6)),COUNTA($G$2:$G$6))+1)&"-"&INDEX($H$2:$H$6,MOD((ROW(1:1)-1),COUNTA($H$2:$H$6))+1),"")
Bu yorum sitedeki moderatör tarafından en aza indirildi
4 sütun için bu formüle ihtiyacım var
Bu yorum sitedeki moderatör tarafından en aza indirildi
Çok teşekkür ederim. Tam ihtiyacım olan şey :-)))
Bu yorum sitedeki moderatör tarafından en aza indirildi
Bu kod için çok teşekkür ederim. İhtiyacım olan sütun miktarı için kodu değiştirdim (25). Teşekkürler,
Bu yorum sitedeki moderatör tarafından en aza indirildi
HiIn VBA kodu Dört sütun kullandım ve sütun aralığı E2:E75, B2:B267, C2:C195 & D2:D267. Çıkış aralığı J2'dir. Bu durumda çıkış sonucu satır sınırını aştı. Lütfen hatayı çözmeye yardım edin
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba Yani bu 9 sütun için bir kod :')
Alt ListeTüm Kombinasyonlar()
'güncelleme Extendoffice
Aralık olarak xDRg1, xDRg2, xDRg3, xDRg4, xDRg5, xDRg6, xDRg7, xDRg8, xDRg9 Dim
Aralık olarak Dim xRg
xStr'yi Dize Olarak Kıs
Dim xFN1, xFN2, xFN3, xFN4, xFN5, xFN6, xFN7, xFN8, xFN9 Tam Sayı Olarak
Dim xSV1, xSV2, xSV3, xSV4, xSV5, xSV6, xSV7, xSV8, xSV9 Dize Olarak
xDRg1'i ayarla = Aralık("A2:A3") 'İlk sütun verisi
xDRg2'yi ayarla = Aralık ("B2:B3") 'İkinci sütun verisi
xDRg3'ü ayarla = Aralık("C2:C10") 'Üçüncü sütun verileri
xDRg4'ü ayarla = Aralık("D2:D2") 'Üçüncü sütun verileri
xDRg5'i ayarla = Aralık("E2:E3") 'Üçüncü sütun verileri
xDRg6'yı ayarla = Aralık("F2:F3") 'Üçüncü sütun verileri
xDRg7'yi ayarla = Aralık("G2:G4") 'Üçüncü sütun verileri
xDRg8'i ayarla = Aralık("H2:H3") 'Üçüncü sütun verileri
xDRg9'u ayarla = Aralık("I2:I3") 'Üçüncü sütun verileri
xStr = "-" 'Ayırıcı
Set xRg = Aralık("K2") 'Çıkış hücresi
xFN1 için = 1 ila xDRg1.Count
xSV1 = xDRg1.Item(xFN1).Metin
xFN2 için = 1 ila xDRg2.Count
xSV2 = xDRg2.Item(xFN2).Metin
xFN3 için = 1 ila xDRg3.Count
xSV3 = xDRg3.Item(xFN3).Metin
xFN4 için = 1 ila xDRg4.Count
xSV4 = xDRg4.Item(xFN4).Metin
xFN5 için = 1 ila xDRg5.Count
xSV5 = xDRg5.Item(xFN5).Metin
xFN6 için = 1 ila xDRg6.Count
xSV6 = xDRg6.Item(xFN6).Metin
xFN7 için = 1 ila xDRg7.Count
xSV7 = xDRg7.Item(xFN7).Metin
xFN8 için = 1 ila xDRg8.Count
xSV8 = xDRg8.Item(xFN8).Metin
xFN9 için = 1 ila xDRg9.Count
xSV9 = xDRg9.Item(xFN9).Metin
xRg.Value = xSV1 & xStr & xSV2 & xStr & xSV3 & xStr & xSV4 & xStr & xSV5 & xStr & xSV6 & xStr & xSV7 & xStr & xSV8 & xStr & xSV9
xRg = xRg.Offset(1, 0) olarak ayarla
Sonraki
Sonraki
Sonraki
Sonraki
Sonraki
Sonraki
Sonraki
Sonraki
Sonraki
End Sub
Bu yorum sitedeki moderatör tarafından en aza indirildi
조합의 나열을 "단어-단어-단어" 순으로 나열하는 법은 이해했습니다.
그런데 "단어"가 아니라 숫자일 경우,
즉 숫자의 조합을 단순 나열이 아닌 곱셈으로 적용하려면 어떻게 해야하는지 알 수 있을까요?

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

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

-1 로 엑셀에 표기될 수 있게 말입니다.
Bu yorum sitedeki moderatör tarafından en aza indirildi
Bonjour, yorum, que chaque valeurs soient placees dans une kolonne farklı en ayrı ayrı par un lastik ?
Bu yorum sitedeki moderatör tarafından en aza indirildi
En önemli şey benim için bir nedendir. Mas também preciso kombinar dois itens de cada coluna, tekrar tekrar. Alguém poderia bana ajudar nisso mu?
Bu yorum sitedeki moderatör tarafından en aza indirildi
En önemli şey benim için bir nedendir. Mas também preciso kombinar dois itens de cada coluna, tekrar tekrar. Alguém poderia bana ajudar nisso mu?
Buraya henüz hiç yorum yapılmamış
Lütfen yorum yazın
Misafir olarak yayınlama
×
Bu gönderiyi değerlendirin:
0   Karakterler
Önerilen Konumlar

Bizi takip et

Telif Hakkı © 2009 - www.extendoffice.com. | Tüm hakları Saklıdır. Tarafından desteklenmektedir ExtendOffice. | | | Site Haritası
Microsoft ve Office logosu, Microsoft Corporation'ın Amerika Birleşik Devletleri ve / veya diğer ülkelerdeki ticari markaları veya tescilli ticari markalarıdır.
Sectigo SSL ile korunmaktadır