• DİKKAT

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

"0" değerleri belirli kurala göre toplama

Katılım
23 Haziran 2023
Mesajlar
7
Excel Vers. ve Dili
Excel 2013

TARİH

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

AD SOYAD

19

338

20

244

236

254

250

279

319

36

77

93

91

0

0

94

152

23

148

220

142

17

158

43

222

102

301

94

0

0

0

Merhabalar ;

Yapmak istediğim özetle tablonun tersinden başlayarak sağdan sola sıfır değerlerini toplamak. Fakat şart olarak sıfırdan büyük olan bir değer gelince saymayı bırakmak. Tabloda 31 ila 29 arasında toplam 3 adet sıfır var. 14-15 değerlerindeki sıfırların dahil edilmemesini istiyorum. Yardımcı olabilirseniz sevinirim.
 
Merhaba,

Sonuç olarak ne bekliyorsunuz?
Ayın 28'inde sayma durdu. Kod, Formül Ne yapacak?
 
... sağdan sola sıfır değerlerini toplamak.

Merhaba,
Forumumuza hoş geldiniz.
"...sıfır değerlerini toplamak.." sıfır sonucunu verir.
Sorunuzdan sıfır değerlerini toplamak değil, sondan başa doğru saymak ve 3 sonucunu almak istediğinizi anladım.
Buna göre;
Sorunuzdaki "TARİH" ifadesinin A1 hücresinde olduğunu varsayarak aşağıdaki VBA kodu istediğiniz sonucu verecektir.
C++:
Sub Say()
For i = 32 To 2 Step -1
    If Cells(2, i) <> 0 Then Exit For
    s = s + 1
Next
    MsgBox s & " adet sıfır var."
End Sub
 
Merhaba,
Forumumuza hoş geldiniz.
"...sıfır değerlerini toplamak.." sıfır sonucunu verir.
Sorunuzdan sıfır değerlerini toplamak değil, sondan başa doğru saymak ve 3 sonucunu almak istediğinizi anladım.
Buna göre;
Sorunuzdaki "TARİH" ifadesinin A1 hücresinde olduğunu varsayarak aşağıdaki VBA kodu istediğiniz sonucu verecektir.
C++:
Sub Say()
For i = 32 To 2 Step -1
    If Cells(2, i) <> 0 Then Exit For
    s = s + 1
Next
    MsgBox s & " adet sıfır var."
End Sub


Teşekkürler VBA olarak doğru sonuca ulaşılıyor evet ama istediğim formül. Alt alta verilerim olacak.
 
Başlıklar A1:AG1 aralığında ve veriler bunun altındaki satırlardaysa, 2. satır için;

Kod:
=31-LOOKUP(2;1/($A2:$AG2>0);$A$1:$AG$1)


Türkçe Excel için LOOKUP yerine ARA kullanın....

.
 
Teşekkürler VBA olarak doğru sonuca ulaşılıyor evet ama istediğim formül. Alt alta verilerim olacak.
Merhaba,
Formül konusunu üstat halletmiş.
Yukarıdaki VBA kodunun isteğinize uyarlanmış (alt alta verileriniz için) hali de aşağıdadır.
C++:
Sub Say()
For j = 2 To Cells(Rows.Count, "A").End(3).Row
    s = 0
    For i = 32 To 2 Step -1
        If Cells(j, i) <> 0 Then Exit For
        s = s + 1
    Next i
    Cells(j, 33) = s
Next j
    MsgBox "Sonuçlar AG sütununda listelenmiştir."
End Sub
 
Son düzenleme:
Başlıklar A1:AG1 aralığında ve veriler bunun altındaki satırlardaysa, 2. satır için;

Kod:
=31-LOOKUP(2;1/($A2:$AG2>0);$A$1:$AG$1)


Türkçe Excel için LOOKUP yerine ARA kullanın....

.


Emeğiniz için teşekkür ederim. Fakat çalışmıyor.
 
Merhaba,
Formül konusunu üstat halletmiş.
Yukarıdaki VBA kodunun isteğinize uyarlanmış (alt alta verileriniz için) hali de aşağıdadır.
C++:
Sub Say()
For j = 2 To Cells(Rows.Count, "A").End(3).Row
    s = 0
    For i = 32 To 2 Step -1
        If Cells(j, i) <> 0 Then Exit For
        s = s + 1
    Next i
    Cells(j, 33) = s
Next j
    MsgBox "Sonuçlar AG sütununda listelenmiştir."
End Sub


Çok teşekkür ederim emeğinize sağlık. Formül olarak ulaştığımda daha mutlu olacağım. Emeklerinize sağlık
 
Merhaba,
Safa yapınızı tam olarak bilemediğimiz ve Excel dilini belirtmediğiniz için tahmini olarak;
Haluk üstadın formülünü AG2 hücresine aşağıdaki şekilde yazarak dener misiniz?
Kod:
=31-ARA(2;1/($A2:$AF2>0);$A$1:$AF$1)
 
Merhaba,
Safa yapınızı tam olarak bilemediğimiz ve Excel dilini belirtmediğiniz için tahmini olarak;
Haluk üstadın formülünü AG2 hücresine aşağıdaki şekilde yazarak dener misiniz?
Kod:
=31-ARA(2;1/($A2:$AF2>0);$A$1:$AF$1)


"EVET" bu oldu çalışıyor. Herkesin emeğine sağlık çok teşekkür ederim. :))
 
Geri
Üst