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

aLp59

Altın Üye
Katılım
19 Kasım 2020
Mesajlar
65
Excel Vers. ve Dili
365 / İngilizce
Altın Üyelik Bitiş Tarihi
21-11-2027
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

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
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:

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,243
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
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");""))
 

aLp59

Altın Üye
Katılım
19 Kasım 2020
Mesajlar
65
Excel Vers. ve Dili
365 / İngilizce
Altın Üyelik Bitiş Tarihi
21-11-2027
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

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
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. "
 

aLp59

Altın Üye
Katılım
19 Kasım 2020
Mesajlar
65
Excel Vers. ve Dili
365 / İngilizce
Altın Üyelik Bitiş Tarihi
21-11-2027
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. :)
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
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
 

aLp59

Altın Üye
Katılım
19 Kasım 2020
Mesajlar
65
Excel Vers. ve Dili
365 / İngilizce
Altın Üyelik Bitiş Tarihi
21-11-2027
Hocam mükemmel çalışıyor.

Elinize sağlık.

Çok teşekkür ederim.:)
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,243
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
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

aLp59

Altın Üye
Katılım
19 Kasım 2020
Mesajlar
65
Excel Vers. ve Dili
365 / İngilizce
Altın Üyelik Bitiş Tarihi
21-11-2027
Korhan Ayhan hocam

Formül çalışıyor.

Elinize sağlık.

Teşekkürler:)
 
Üst