• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Soru 11 Koşula Göre Değer Birleştirme

  • Konbuyu başlatan Konbuyu başlatan aLp59
  • Başlangıç tarihi Başlangıç tarihi

aLp59

Altın Üye
Katılım
19 Kasım 2020
Mesajlar
70
Excel Vers. ve Dili
365 / İngilizce
Arkadaşlar merhaba

11 koşula göre belirli hücrelerdeki değerleri birleştirmek istiyorum.

Şuanda bu işlemi elle tek tek formül yazarak yapıyorum. (formül ektedir)

Tek bir formülle bu iş çözülebilir mi?

Teşekkürler:)
 

Ekli dosyalar

Merhaba.

7. satır sanırım yanlış yazmışsınız.
8. satıra neden OK yazdığınızı da açıklarsanız onu da ekleyebilirim.

Bunlar dışında aşağıdaki kod işinizi görüyor.

Sayfanın kod kısmına aşağıdaki kodları kopyalayın.
C-G arası hücrelerde bir değişiklik yaptığınızda kodlar otomatik çalışacaktır.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Durum As String, Kim As String, EKS As String, IHT As String, ISIP As String, IlkT
    If Not Intersect(Target, Range("C:G")) Is Nothing Then
        Kim = Cells(Target.Row, "C")
        EKS = Cells(Target.Row, "D")
        IHT = Cells(Target.Row, "E")
        ISIP = Cells(Target.Row, "F")
        IlkT = Cells(Target.Row, "G")
        If EKS <> "" Then Durum = "EKS" & "_" & EKS
        If IHT <> "" Then Durum = IIf(Durum = "", "", Durum & "_") & "İHT" & "_" & IHT
        If ISIP <> "" Then Durum = IIf(Durum = "", "", Durum & "_") & "İSİP" & "_" & ISIP
        If IlkT <> "" Then Durum = Durum & IlkT
        Durum = Kim & "_" & Durum
        Application.EnableEvents = False
        Cells(Target.Row, "H") = Durum
        Application.EnableEvents = True
    End If
End Sub
 
Son düzenleme:
Deneyiniz.

C++:
=METİNBİRLEŞTİR("_";DOĞRU;C2;EĞER(D2:H2<>"";$D$1:$H$1&"_"&METNEÇEVİR(D2:H2;"gg.aa.yyyy");""))
 
Merhaba.

7. satır sanırım yanlış yazmışsınız.
8. satıra neden OK yazdığınızı da açıklarsanız onu da ekleyebilirim.

Bunlar dışında aşağıdaki kod işinizi görüyor.

Sayfanın kod kısmına aşağıdaki kodları kopyalayın.
C-G arası hücrelerde bir değişiklik yaptığınızda kodlar otomatik çalışacaktır.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Durum As String, Kim As String, EKS As String, IHT As String, ISIP As String, IlkT
    If Not Intersect(Target, Range("C:G")) Is Nothing Then
        Kim = Cells(Target.Row, "C")
        EKS = Cells(Target.Row, "D")
        IHT = Cells(Target.Row, "E")
        ISIP = Cells(Target.Row, "F")
        IlkT = Cells(Target.Row, "G")
        If EKS <> "" Then Durum = "EKS" & "_" & EKS
        If IHT <> "" Then Durum = IIf(Durum = "", "", Durum & "_") & "İHT" & "_" & IHT
        If ISIP <> "" Then Durum = IIf(Durum = "", "", Durum & "_") & "İSİP" & "_" & ISIP
        If IlkT <> "" Then Durum = Durum & IlkT
        Durum = Kim & "_" & Durum
        Application.EnableEvents = False
        Cells(Target.Row, "H") = Durum
        Application.EnableEvents = True
    End If
End Sub

Sayın Muzaffer Ali

8. satır koşulu, eğer C sütunu= T_ ise ve D ve H sütunları boş ise OK yazacak şekilde olacak.

Kodu kopyalayıp sayfanın içine yapıştırdığımda hiç bir şey olmuyor, ekran görüntüsünü aldım.

Teşekkür ederim:)
 

Ekli dosyalar

  • Ekran görüntüsü 2022-06-05 150951.jpg
    Ekran görüntüsü 2022-06-05 150951.jpg
    217.5 KB · Görüntüleme: 2
Sayın Muzaffer Ali

8. satır koşulu, eğer C sütunu= T_ ise ve D ve H sütunları boş ise OK yazacak şekilde olacak.

Kodu kopyalayıp sayfanın içine yapıştırdığımda hiç bir şey olmuyor, ekran görüntüsünü aldım.

Teşekkür ederim:)
Yukarıdaki mesajda aynen şöyle yazmıştım.
"C-G arası hücrelerde bir değişiklik yaptığınızda kodlar otomatik çalışacaktır. "
 
Yukarıdaki mesajda aynen şöyle yazmıştım.
"C-G arası hücrelerde bir değişiklik yaptığınızda kodlar otomatik çalışacaktır. "

Tek tek inceledim

Sadece T_ koşulu çalışmıyor, ekteki resimdeki gibi olursa; C sütunu = T_ ve D ve E sütunları boşsa ve G sütunu =+++ ise OK yazacak şekilde olursa harika olur. :)
 
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Durum As String, Kim As String, EKS As String, IHT As String, ISIP As String, IlkT
    If Not Intersect(Target, Range("C:G")) Is Nothing Then
        Kim = Cells(Target.Row, "C")
        EKS = Cells(Target.Row, "D")
        IHT = Cells(Target.Row, "E")
        ISIP = Cells(Target.Row, "F")
        IlkT = Cells(Target.Row, "G")
        If EKS <> "" Then Durum = "EKS" & "_" & EKS
        If IHT <> "" Then Durum = IIf(Durum = "", "", Durum & "_") & "İHT" & "_" & IHT
        If ISIP <> "" Then Durum = IIf(Durum = "", "", Durum & "_") & "İSİP" & "_" & ISIP
        If IlkT <> "" Then Durum = Durum & IlkT
        Durum = Kim & "_" & Durum
        If Kim = "T_" And EKS = "" And IHT = "" And IlkT = "+++" Then Durum = "OK"
        Application.EnableEvents = False
        Cells(Target.Row, "H") = Durum
        Application.EnableEvents = True
    End If
End Sub
 
Hocam mükemmel çalışıyor.

Elinize sağlık.

Çok teşekkür ederim.:)
 
Son bahsettiğiniz koşullarıda ekleyince aşağıdaki formül ofis 365 sürümünde sonuç veriyor.

C++:
=EĞER(VE(C2="T_";D2="";E2="";G2="+++");"OK";YERİNEKOY(METİNBİRLEŞTİR("_";DOĞRU;C2;EĞER(D2:G2<>"";$D$1:$G$1&"_"&METNEÇEVİR(D2:G2;"gg.aa.yyyy");""));"_IlkT_";""))

236945
 

Ekli dosyalar

Korhan Ayhan hocam

Formül çalışıyor.

Elinize sağlık.

Teşekkürler:)
 
Geri
Üst