Gelismis Eger fonksiyonu

Katılım
11 Eylül 2024
Mesajlar
3
Excel Vers. ve Dili
excel
A1 ve A2 hucresi Ahmet olsun B1 ve B2 husresi sari ve yesil olsun, A3 ve A4 hucresi Mehmet olsun B3 B4 ve B5 hucresi pembe mavi ve siyah olsun. Ayri bir sayfada da kurallar olsun mesela Ahmet sadece sari olabilir vede mehmet pembe ve siyah olabilir. Ilk sayfamizda ahmet icin C1 ve C2 ye tablodaki kosulumuza uyana dogru yazssin(yani sari vardi tabloda). Mehmet icinde C3,C4 ve C5 hucresine talodaki kosulu saglayanlar dogru digerleri yanlis olsun (tabloda pembe ve siyah vardi)
 
Katılım
11 Temmuz 2024
Mesajlar
36
Excel Vers. ve Dili
Excel 2021 Türkçe
Merhaba sayın SEDATELMAS;

Formül olarak bu formülün işinizi göreceğini düşünüyorum;

=EĞER(EĞERSAY(Kurallar!$A$2:$A$100; A1; Kurallar!$B$2:$B$100; B1)>0; "doğru"; "yanlış")


Makro isterseniz eğer şöyle deneyebilirsiniz;

Kod:
Sub KosullariKontrolEt()
    Dim veriSayfasi As Worksheet
    Dim kuralSayfasi As Worksheet
    Dim sonSatir As Long
    Dim i As Long, j As Long
    Dim isim As String
    Dim renk As String
    Dim kuralSonSatir As Long
    Dim eslesmeVar As Boolean
    
    ' Sayfa isimlerini ayarlayın
    Set veriSayfasi = ThisWorkbook.Sheets("Sayfa1") ' Verilerin olduğu sayfa
    Set kuralSayfasi = ThisWorkbook.Sheets("Sayfa2") ' Kuralların olduğu sayfa
    
    ' Veri sayfasındaki son satırı bulun
    sonSatir = veriSayfasi.Cells(veriSayfasi.Rows.Count, "A").End(xlUp).Row
    ' Kural sayfasındaki son satırı bulun
    kuralSonSatir = kuralSayfasi.Cells(kuralSayfasi.Rows.Count, "A").End(xlUp).Row
    
    ' Verileri döngü ile kontrol edin
    For i = 1 To sonSatir ' Eğer başlık varsa 2'den başlatın
        isim = veriSayfasi.Cells(i, "A").Value
        renk = veriSayfasi.Cells(i, "B").Value
        
        eslesmeVar = False
        
        ' Kuralları kontrol edin
        For j = 1 To kuralSonSatir
            If kuralSayfasi.Cells(j, "A").Value = isim And _
               kuralSayfasi.Cells(j, "B").Value = renk Then
                eslesmeVar = True
                Exit For
            End If
        Next j
        
        ' Sonuca göre "doğru" veya "yanlış" yazın
        If eslesmeVar Then
            veriSayfasi.Cells(i, "C").Value = "doğru"
        Else
            veriSayfasi.Cells(i, "C").Value = "yanlış"
        End If
    Next i
    
    MsgBox "Kontrol tamamlandı.", vbInformation
End Sub
İstediğin düzenin böyle olması gerekiyor eğer yanlış anlamadıysam. Herhangi bir sorun olursa tekrar iletişim halinde oluruz. İyi çalışmalar
 
Katılım
11 Eylül 2024
Mesajlar
3
Excel Vers. ve Dili
excel
Merhaba sayın SEDATELMAS;

Formül olarak bu formülün işinizi göreceğini düşünüyorum;

=EĞER(EĞERSAY(Kurallar!$A$2:$A$100; A1; Kurallar!$B$2:$B$100; B1)>0; "doğru"; "yanlış")


Makro isterseniz eğer şöyle deneyebilirsiniz;

Kod:
Sub KosullariKontrolEt()
    Dim veriSayfasi As Worksheet
    Dim kuralSayfasi As Worksheet
    Dim sonSatir As Long
    Dim i As Long, j As Long
    Dim isim As String
    Dim renk As String
    Dim kuralSonSatir As Long
    Dim eslesmeVar As Boolean
   
    ' Sayfa isimlerini ayarlayın
    Set veriSayfasi = ThisWorkbook.Sheets("Sayfa1") ' Verilerin olduğu sayfa
    Set kuralSayfasi = ThisWorkbook.Sheets("Sayfa2") ' Kuralların olduğu sayfa
   
    ' Veri sayfasındaki son satırı bulun
    sonSatir = veriSayfasi.Cells(veriSayfasi.Rows.Count, "A").End(xlUp).Row
    ' Kural sayfasındaki son satırı bulun
    kuralSonSatir = kuralSayfasi.Cells(kuralSayfasi.Rows.Count, "A").End(xlUp).Row
   
    ' Verileri döngü ile kontrol edin
    For i = 1 To sonSatir ' Eğer başlık varsa 2'den başlatın
        isim = veriSayfasi.Cells(i, "A").Value
        renk = veriSayfasi.Cells(i, "B").Value
       
        eslesmeVar = False
       
        ' Kuralları kontrol edin
        For j = 1 To kuralSonSatir
            If kuralSayfasi.Cells(j, "A").Value = isim And _
               kuralSayfasi.Cells(j, "B").Value = renk Then
                eslesmeVar = True
                Exit For
            End If
        Next j
       
        ' Sonuca göre "doğru" veya "yanlış" yazın
        If eslesmeVar Then
            veriSayfasi.Cells(i, "C").Value = "doğru"
        Else
            veriSayfasi.Cells(i, "C").Value = "yanlış"
        End If
    Next i
   
    MsgBox "Kontrol tamamlandı.", vbInformation
End Sub
İstediğin düzenin böyle olması gerekiyor eğer yanlış anlamadıysam. Herhangi bir sorun olursa tekrar iletişim halinde oluruz. İyi çalışmalar
Cok ozur dilerim excelim temel duzeyde kurallar yazan yere ne yamaliyim.
 
Katılım
11 Temmuz 2024
Mesajlar
36
Excel Vers. ve Dili
Excel 2021 Türkçe
Estağfurullah, lütfen özür dilemeyin. Adım adım birlikte yapalım isterseniz.

A Sütunu: İsimler (Ahmet veya Mehmet)
B Sütunu: Renkler

Örnek olarak şöyle yapacağız;

A

B

Ahmet

sarı

Ahmet

yeşil

Mehmet

pembe

Mehmet

mavi

Mehmet

siyah



Şimdi söylemiş olduğunuz kuralları ikinci sayfada tanımlayalım;

Yeni bir sayfa oluşturun ve bu sayfada isimlere karşılık gelen izin verilen renkleri tanımlayın.

Örnek olarak:

A

B

İsim

İzinli Renk

Ahmet

sarı

Mehmet

pembe

Mehmet

Siyah



Şimdi yukarıda vermiş olduğum formülü uygulama kısmına gelelim. C1 hücresine

=EĞER(EĞERSAY(Kurallar!$A$2:$A$100; A1; Kurallar!$B$2:$B$100; B1)>0; "doğru"; "yanlış")

bu formülü uygulayacağız. C1 hücresine gelip verdiğim kodu yapıştırsanız formül uygulanmış olacaktır. Bunu uyguladıktan sonra sizi şöyle bir tablo karşılayacak hocam;


A

B

C

Ahmet

sarı

doğru

Ahmet

yeşil

yanlış

Mehmet

pembe

doğru

Mehmet

mavi

yanlış

Mehmet

siyah

doğru



Formül kısmı böyle. VBA kodu da paylaşmıştım, onun da nasıl uygulanacağını belirteyim. Excel'de iken ALT + F11 tuşlarına basarak VBA editörünü açın.
Üst menüden Insert (Ekle) seçeneğine tıklayın ve açılan menüden Module (Modül)'ü seçin.
Vermiş olduğum makro kodunu uygulayın.
Makro kodunu kaydettikten sonra VBA editörünü kapatın.
Excel'de Geliştirici sekmesine gidin. (Eğer Geliştirici sekmesi görünmüyorsa, Dosya > Seçenekler > Şeridi Özelleştir yolunu izleyerek Geliştirici sekmesini etkinleştirebilirsiniz.)
Makrolar düğmesine tıklayın.
Listeden KosullariKontrolEt makrosunu seçip Çalıştır düğmesine tıklayın.

Umarım açıklayıcı olmuştur. Kodlar istediğiniz gibi çalışmazsa, yanlış olan kısımları belirtmeniz halinde yardımcı olmaya çalışırım. İyi çalışmalar tekrardan.
 
Katılım
11 Eylül 2024
Mesajlar
3
Excel Vers. ve Dili
excel
Yardimseverliginiz icin cok cok tesekkur ederim, yine ben beceremedim sanirim, size mail adresi yazssan excel dosyasi olarak sizden alsam olur mu, sedatelmas@hotmail.com gonderemezssenizde caniniz sagolun
 
Üst