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

Virgülle ayrılmış tek bir hücrede birden çok arama değeri nasıl döndürülür?

Excel'de, bir tablo hücresinden ilk eşleşen değeri döndürmek için DÜŞEYARA işlevini uygulayabiliriz, ancak bazen, tüm eşleşen değerleri ayıklamamız ve ardından virgül, tire, vb. Gibi belirli bir sınırlayıcıyla tek bir Aşağıdaki ekran görüntüsü gibi hücre. Excel'de virgülle ayrılmış tek bir hücrede birden çok arama değerini nasıl alabilir ve döndürebiliriz?

doc virgülle ayrılmış birden çok değer döndürür 1

Kullanıcı Tanımlı İşlev ile virgülle ayrılmış tek bir hücrede birden çok arama değeri döndür

Kutools for Excel ile virgülle ayrılmış tek bir hücrede birden çok arama değeri döndür


Kullanıcı Tanımlı İşlev ile virgülle ayrılmış tek bir hücrede birden çok arama değeri döndür

Normalde, birden çok eşleşen değeri ayıklayıp döndürmemizin ve virgülle ayırarak tek bir hücreye döndürmemizin doğrudan bir yolu yoktur, burada, bu işi çözmek için bir Kullanıcı Tanımlı İşlev oluşturabilirsiniz, lütfen aşağıdaki işlemleri gerçekleştirin:

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 Pencere.

VBA kodu: Birden çok arama değerini virgülle ayrılmış bir hücreye döndürür

Function SingleCellExtract(LookupValue As String, LookupRange As Range, ColumnNumber As Integer, Char As String)
'Updateby Extendoffice
    Dim I As Long
    Dim xRet As String
    For I = 1 To LookupRange.Columns(1).Cells.Count
        If LookupRange.Cells(I, 1) = LookupValue Then
            If xRet = "" Then
                xRet = LookupRange.Cells(I, ColumnNumber) & Char
            Else
                xRet = xRet & "" & LookupRange.Cells(I, ColumnNumber) & Char
            End If
        End If
    Next
    SingleCellExtract = Left(xRet, Len(xRet) - 1)
End Function

3. Ardından bu kodu kaydedin ve Modül penceresini kapatın, çalışma sayfanıza geri dönün ve şu formülü girin: = SingleCellExtract (D2, A2: B15,2, ",") sonucu döndürmek istediğiniz boş bir hücreye. Ve ardından Keşfet sonucu almak için anahtar, ekran görüntüsüne bakın:

doc virgülle ayrılmış birden çok değer döndürür 2

not: Yukarıdaki formülde:

D2: aramak istediğiniz hücre değerlerini gösterir;

A2: B15: veriyi getirmek istediğiniz veri aralığıdır;

2: 2 sayısı, eşleşen değerin döndürüleceği sütun numarasıdır;

,: virgül, birden çok değeri ayırmak istediğiniz ayırıcıdır.

Bunları ihtiyacınıza göre değiştirebilirsiniz.


Kutools for Excel ile virgülle ayrılmış tek bir hücrede birden çok arama değeri döndür

Eğer varsa Kutools for Excel, bu görev artık bir sorun olmayacak. Gelişmiş Kombine Satırları yardımcı programı, bir sütuna dayalı tüm göreli değerleri birleştirmenize yardımcı olabilir.

Kutools for Excel : 300'den fazla kullanışlı Excel eklentisi ile 30 günde sınırlama olmaksızın ücretsiz deneyin

Kurduktan sonra Kutools for Excellütfen aşağıdaki işlemleri yapın:

1. Eşleşen tüm değerleri bir sütuna göre birleştirmek istediğiniz veri aralığını seçin.

2. tıklayın Kutools > Birleştir ve Böl > Gelişmiş Kombine Satırları, ekran görüntüsüne bakın:

3. In Sütuna Göre Satırları Birleştirme iletişim kutusunda, birleştirmek istediğiniz sütun adına tıklayın ve ardından Birincil anahtar düğmesi, ekran görüntüsüne bakın:

doc virgülle ayrılmış birden çok değer döndürür 4

4. Ardından, eşleşen değerlerini birleştirmek istediğiniz diğer sütun adını tıklayın ve Birleştirmek birleştirilmiş değerleri ayırmak için bir ayırıcı seçmek için ekran görüntüsüne bakın:

doc virgülle ayrılmış birden çok değer döndürür 5

5. Sonra tıklayın OK düğmesi, aynı değere sahip tüm karşılık gelen hücreler virgülle ayrılmış tek bir hücrede birleştirilmiştir, ekran görüntülerine bakın:

doc virgülle ayrılmış birden çok değer döndürür 6 2 doc virgülle ayrılmış birden çok değer döndürür 7

Bu Advanced Combine Rows yardımcı programı hakkında daha fazla bilgi edinmek için tıklayın…

Kutools for Excel'i şimdi indirin ve ücretsiz deneyin!


Demo: Kutools for Excel ile virgülle ayrılmış tek bir hücrede birden çok arama değeri döndür

Kutools for Excel: 300'den fazla kullanışlı Excel eklentisi ile 30 günde sınırlama olmaksızın ücretsiz deneyin. Hemen indirin ve ücretsiz deneme!

En İyi Ofis Üretkenliği Araçları

Kutools for Excel Sorunlarınızın Çoğunu Çözer ve Verimliliğinizi% 80 Artırır

  • Yeniden: Hızlıca yerleştirin karmaşık formüller, grafikler ve daha önce kullandığınız her şey; Hücreleri Şifrele şifre ile; Posta Listesi Oluşturun ve e-posta gönder ...
  • 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 Veri kaybetmeden; Bölünmüş Hücre İçeriği; Yinelenen Satırları / Sütunları 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ı ...
  • 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...
  • 300'den fazla güçlü özellik. Office / Excel 2007-2021 ve 365'i destekler. Tüm dilleri destekler. Kuruluşunuzda veya kuruluşunuzda kolay devreye alma. Tam özellikler 30 günlük ücretsiz deneme. 60 günlük para iade garantisi.
kte sekmesi 201905

Office Tab, Office'e Sekmeli Arayüz Getirir ve İşinizi Çok Daha Kolay Hale Getirir

  • 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 (16)
5 üzerinden 5 olarak derecelendirildi · 2 derecelendirme
Bu yorum sitedeki moderatör tarafından en aza indirildi
Modülü yapıştırıp kaydedeceğim sırada, işlevsellik uyumluluğu denetleyicisinde önemli bir kayıp olduğunu belirten bir açılır mesaj beliriyor.
Bu yorum sitedeki moderatör tarafından en aza indirildi
Bu yazı için teşekkürler. Bunun yarattığı iki ayrı tamsayıyı nasıl manipüle edeceğimi biliyor musunuz? Örneğin, '=SingleCellExtract' işlevinin şimdi (1 , 2) ürettiğini varsayalım. Yanında (1+.5 , 2+.5) yapan bir hücreye sahip olmanın bir yolu var mı?
Bu yorum sitedeki moderatör tarafından en aza indirildi
Bu işe yarıyor ancak excel'imi büyük ölçüde yavaşlatıyor! Hızlandırmaya yardımcı olacak herhangi bir ipucu var mı?
Bu yorum sitedeki moderatör tarafından en aza indirildi
Bu sadece çalışmıyor. Kendi uygulamamda çalışmasını sağlayamadım, bu yüzden vba'yı ve formülü kopyaladım/yapıştırdım ve her seferinde bir hata verdi
Bu yorum sitedeki moderatör tarafından en aza indirildi
teşekkür ederim, öncelikle bunu performansta yavaşlama olmadan çalıştırmayı başardım. Bu metin yerine değerleri kullanıyorum, bu yüzden sorum şu ki, bir listede 19 puandan az olanları geri getirmek istiyorum. Tek hücre Özü bunun için çalışabilir mi yoksa belirli bir değer mi olması gerekiyor?
Bu yorum sitedeki moderatör tarafından en aza indirildi
Aralık 154 satırdan daha uzun olduğunda VB komutu bozulur (yani :B154)....
Bu yorum sitedeki moderatör tarafından en aza indirildi
Dizi boyutunu artırırsanız hata çıkıyor
Bu yorum sitedeki moderatör tarafından en aza indirildi
2 Ölçüt Eşleştiğinde, Virgülle Ayrılmış Bir Hücrede Birden Çok Arama Değeri Döndürür
A2=B2 Sonra Aralıktan "SingleCellExtract" ile Sonuç - Lütfen.......
Bu yorum sitedeki moderatör tarafından en aza indirildi
, Günaydın

VBA kodu, çalışma sayfamla mükemmel bir şekilde çalıştı, oldukça açık ve basit, ancak excel'e yalnızca benzersiz değerleri döndürmesini söylemenin bir yolunu bulmaya çalışıyordum. Bu aynı kodu kullanarak mümkün olabilir mi?
5 üzerinden 5 olarak derecelendirildi
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba,

Her değer için virgül ve boşlukla ayrılmış birden çok değer için tam doğrulama kodu istiyorum.

Örnek:
Lucy, Tom, Nicol, Akash, Elma

Herhangi bir öneriniz varsa lütfen tekrar oynatın.
4.5 üzerinden 5 olarak derecelendirildi
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba, Manikanta
Birden çok değeri virgül ve boşlukla ayırmak için virgülün arkasına bir boşluk eklemeniz yeterlidir, formülü şu şekilde değiştirin: =TekHücre Özü(D2,A2:B15,2,", ").
Lütfen deneyin, umarım size yardımcı olabilir!
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba Skyyang,

Tekrar oynattığınız için teşekkürler!

Zaten aynı şekilde denedim ama hücre değerinde son bir fazladan virgül (,) aşağıda gelen örnektir.

Lucy, Tom, Nicol, Akash, Elma,

Bu, Json dosyası için çalışmayacak, bu yüzden aşağıdaki gibi virgül ve boşlukla ayrılmış değerler istiyorum.

Lucy, Tom, Nicol, Akash, Elma

Teşekkür ederim!
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba, Manikanta
Bu durumda aşağıdaki Kullanıcı Tanımlı Fonksiyonu uygulayabilirsiniz:

Function MultipleValues(work_range As Range, criteria As Variant, merge_range As Range, Optional Separator As String = ",") As Variant
Dim outcome As String
On Error Resume Next
If work_range.Count <> merge_range.Count Then
MultipleValues = CVErr(xlErrRef)
Exit Function
End If
For i = 1 To work_range.Count
If work_range.Cells(i).Value = criteria Then
outcome = outcome & Separator & merge_range.Cells(i).Value
End If
Next i
If outcome <> "" Then
outcome = VBA.Mid(outcome, VBA.Len(Separator) + 1)
End If
MultipleValues = outcome
Exit Function
End Function


Kodu yapıştırdıktan sonra lütfen şu formülü kullanın: =MultipleValues($A$2:$A$15,D2,$B$2:$B$15,", ")

Lütfen deneyin, umarım bu size yardımcı olabilir!
Hala başka bir sorununuz varsa, lütfen buraya yorum yapın.
https://www.extendoffice.com/images/stories/comments/comment-skyyang/doc-return-multiple-matching-1.png
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba Skyyang,

Bu şimdi çalışıyor, Hızlı yanıtınız için teşekkür ederiz.

Yine çok işime yaradı yardımlarınız için teşekkür ederim.

Saygılarımızla,
Manikanta.
5 üzerinden 5 olarak derecelendirildi
Bu yorum sitedeki moderatör tarafından en aza indirildi
Hiçbir soya programlayıcısı, abajo'nun en iyi şekilde çalıştırılması için ayuda'ya ihtiyaç duymaz.

S-01-08-0017->Mikro Direk 1R, Siyah, Paslanmaz Çelik -Uç,->4;S-01-08-0057->Mikro Direk 2R, Siyah, Paslanmaz Çelik -Uç,->2

Farklı hatlarda değerlerim var.
S-01-08-0017->Mikro Direk 1R, Siyah, Paslanmaz Çelik -Uç,->4
S-01-08-0057->Mikro Direk 2R, Siyah, Paslanmaz Çelik -Uç,->2

İşlevler:
SingleCellExtract İşlevi(Dize Olarak Arama Değeri, Aralık Olarak Arama Aralığı, Tamsayı Olarak SütunNumarası, Dizge Olarak Karakter)
'güncelleme Extendoffice
Dim kadar uzun
xRet'i Dize Olarak Karart
I = 1 için LookupRange.Columns(1).Cells.Count'a
LookupRange.Cells(I, 1) = LookupValue ise O zaman
Eğer xRet = "" ise O zaman
xRet = LookupRange.Cells(I, ColumnNumber) & Char
başka
xRet = xRet & "" & LookupRange.Cells(I, ColumnNumber) & Char
Eğer son
Eğer son
Sonraki
SingleCellExtract = Left(xRet, Len(xRet) - 1)
son İşlevi
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba Yery,
Noktalı virgül karakterine göre bir hücreyi birden çok satıra bölmek mi istediniz?
Öyleyse, aşağıdaki VBA kodu size yardımcı olabilir:
Sub SplitAll()
    Dim xRg As Range
    Dim xRg1 As Range
    Dim xCell As Range
    Dim I As Long
    Dim xAddress As String
    Dim xUpdate As Boolean
    Dim xRet As Variant
    On Error Resume Next
    xAddress = Application.ActiveWindow.RangeSelection.Address
    Set xRg = Application.InputBox("Please select a range", "Kutools for Excel", xAddress, , , , , 8)
    Set xRg = Application.Intersect(xRg, xRg.Worksheet.UsedRange)
    If xRg Is Nothing Then Exit Sub
        If xRg.Columns.Count > 1 Then
            MsgBox "You can't select multiple columns", , "Kutools for Excel"
            Exit Sub
            End If
            Set xRg1 = Application.InputBox("Split to (single cell):", "Kutools for Excel", , , , , , 8)
            Set xRg1 = xRg1.Range("A1")
            If xRg1 Is Nothing Then Exit Sub
                xUpdate = Application.ScreenUpdating
                Application.ScreenUpdating = False
                For Each xCell In xRg
                    xRet = Split(xCell.Value, ";")
                    xRg1.Worksheet.Range(xRg1.Offset(I, 0), xRg1.Offset(I + UBound(xRet, 1), 0)) = Application.WorksheetFunction.Transpose(xRet)
                    I = I + UBound(xRet, 1) + 1
                Next
                Application.ScreenUpdating = xUpdate
            End Sub

Lütfen bir deneyin, umarım size yardımcı olabilir!
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