• DİKKAT

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

Matematiksel eşitlik

Katılım
3 Mart 2016
Mesajlar
15
Excel Vers. ve Dili
2010 İngilizce
Merhabalar,
A sütunundaki rakanmın B sütunda belirli bir kurala göre dizilmiş rakam/rakamların toplamına eşit olup olmadığını gösteren bir makro/formüle ihtiyacım var.Yardımcı olabilir misiniz?

Örnek dosyayı yükledim.Teşekkürler.
 

Ekli dosyalar

. . .

C1 yazılan sonuç yanlış olmayacak mı toplam 11 yapıyor ve
C sütununa doğru/yanlış yazdırmak yeterli mi yoksa Doğru(4+4=8 olduğudan) şeklinde dökümünüde yazmak gerekiyor mu.

. . .
 
. . .

Ayrıntılı yazdırmak isterseniz doğru/yanlış tan sonraki ' (tırnak) işaretlerini silin.
Yeşil satır siyaha dönecektir.

Kod:
Sub kod()
    Application.ScreenUpdating = False
    For i = 1 To Cells(Rows.Count, "A").End(3).Row
        uz = Len(Cells(i, "B"))
        For a = 1 To uz
            k = Mid(Cells(i, "B"), a, 1)
            If IsNumeric(k) Then
                topla = topla + (k * 1)
                metin = metin & "+" & k
            End If
        Next a
        
        metin = WorksheetFunction.Substitute(metin, "+", "", 1)
        If Cells(i, "A") = topla Then
            Cells(i, "C") = "Doğru" [B][COLOR="Red"]'[/COLOR][/B] [COLOR="DarkGreen"]& "(" & metin & "=" & topla & " olduğundan)"[/COLOR]
        Else
            Cells(i, "C") = "Yanlış"[B][COLOR="red"] '[/COLOR][/B][COLOR="darkgreen"]& "(" & metin & "=" & topla & " eşit değil)"[/COLOR]
        End If
        topla = Empty
        metin = Empty
    Next i
    Application.ScreenUpdating = True
    MsgBox " B i t t i "
End Sub

. . .
 
. . .

C1 yazılan sonuç yanlış olmayacak mı toplam 11 yapıyor ve
C sütununa doğru/yanlış yazdırmak yeterli mi yoksa Doğru(4+4=8 olduğudan) şeklinde dökümünüde yazmak gerekiyor mu.

. . .

Evet hocam "Yanlış" yazması gerekiyor hata yapmışım.Açıklamaya gerek yok bilgilendirme olarak yazmıştım.
 
. . .

Ayrıntılı yazdırmak isterseniz doğru/yanlış tan sonraki ' (tırnak) işaretlerini silin.
Yeşil satır siyaha dönecektir.

Kod:
Sub kod()
    Application.ScreenUpdating = False
    For i = 1 To Cells(Rows.Count, "A").End(3).Row
        uz = Len(Cells(i, "B"))
        For a = 1 To uz
            k = Mid(Cells(i, "B"), a, 1)
            If IsNumeric(k) Then
                topla = topla + (k * 1)
                metin = metin & "+" & k
            End If
        Next a
        
        metin = WorksheetFunction.Substitute(metin, "+", "", 1)
        If Cells(i, "A") = topla Then
            Cells(i, "C") = "Doğru" [B][COLOR="Red"]'[/COLOR][/B] [COLOR="DarkGreen"]& "(" & metin & "=" & topla & " olduğundan)"[/COLOR]
        Else
            Cells(i, "C") = "Yanlış"[B][COLOR="red"] '[/COLOR][/B][COLOR="darkgreen"]& "(" & metin & "=" & topla & " eşit değil)"[/COLOR]
        End If
        topla = Empty
        metin = Empty
    Next i
    Application.ScreenUpdating = True
    MsgBox " B i t t i "
End Sub

. . .

Emir hocam teşekkürler, ancak 2 veya daha fazla basamaklı sayılar için çalışmıyor.
 
Merhabalar,
A sütunundaki rakanmın B sütunda belirli bir kurala göre dizilmiş rakam/rakamların toplamına eşit olup olmadığını gösteren bir makro/formüle ihtiyacım var.Yardımcı olabilir misiniz?

Örnek dosyayı yükledim.Teşekkürler.
.

Dosyanız ekte.

KTF ve yerleşik fonksiyonlarla yapılmış iki çözüm yer almaktadır.


.
 

Ekli dosyalar

.

Dosyanız ekte.

KTF ve yerleşik fonksiyonlarla yapılmış iki çözüm yer almaktadır.


.

İdris Bey,
Teşşekkürler elinize sağlık iki basamklılarda da çalışıyor ancak kural düzeni bozulduğunda da çalışıyor, aşağıdaki durumlarda false göstersin istiyorum buna göre bir düzenleme yapabilir misiniz?

Örnek:
1)Harflerden sonra tek - olması gerekiyor.
XY--5 gibi bir ifade olunca da doğru sonuç veriyor.
2)Gruplar ; ile birbirinden ayrılıyor onun yerine başka bir şey yazdığımdada sonuç doğru çıkıyor.
3)Hücrenin en sonu rakam olmalı
 
Emir hocam teşekkürler, ancak 2 veya daha fazla basamaklı sayılar için çalışmıyor.
. . .

Kod:
Sub kod()
    Application.ScreenUpdating = False
    For i = 1 To Cells(Rows.Count, "A").End(3).Row
        Cells(i, "C") = Cells(i, "B")
        uz = Len(Cells(i, "B"))
        For a = 1 To uz
            k = Mid(Cells(i, "C"), a, 1)
            If Not IsNumeric(k) Then
                Cells(i, "C") = Replace(Cells(i, "C"), k, "+")
            End If
        Next a
        Cells(i, "C").Formula = ("=" & Cells(i, "C"))
        If Cells(i, "A") = Cells(i, "C") Then
            Cells(i, "C") = "Doğru"
        Else
            Cells(i, "C") = "Yanlış"
        End If
    Next i
    Application.ScreenUpdating = True
    MsgBox " B i t t i "
End Sub

. . .
 
Geri
Üst