Sayıyı istenilen kurallara göre yuvarlamayı nasıl yaparım?

parcequil

Altın Üye
Katılım
10 Nisan 2005
Mesajlar
99
Excel Vers. ve Dili
Excel 2019 Türkçe
Altın Üyelik Bitiş Tarihi
11-07-2025
Arkadaşlar iyi günler,

İş yerimizde yeni bir isterden dolayı sayıları yuvarlama kuralımız değişti. Bu kural çerçevesinde yuvarlamayı yapma konusunda yardımcı olabilirseniz çok sevinirim.

- Belirtilen rakamın sonu XXX5 (Beş) ile bitiyorsa bir önündeki rakama bakıyoruz o tek ise (XX35, XX75, 0.X15) yukarı yuvarlıyoruz (XX40, XX80, 0.X20), çift ise (XX25, XX85, 0.X25) aşağıya yuvarlıyoruz (XX20, XX80, 0.X20) gibi. Eğer rakamın sonu 5 (beş) ile bitmiyorsa klasik yuvarlama kuralımız geçerli olacak.

Teşekkürler.
 

Merhum İdris SERDAR

Moderatör
Yönetici
Katılım
21 Ekim 2005
Mesajlar
17,094
Excel Vers. ve Dili
Excel, 365 - İngilizce
.

Sayı A1 hücresinde ise;

Deneyin.

Kod:
=IF(AND(RIGHT(TRUNC(A1;4);1)>=5;ISODD(LEFT(RIGHT(TRUNC(A1;4);2);1))=TRUE);ROUNDUP(TRUNC(A1;4);3);IF(AND(RIGHT(TRUNC(A1;4);1)>=5;ISODD(LEFT(RIGHT(TRUNC(A1;4);2);1))=FALSE);ROUNDDOWN(TRUNC(A1;4);3)))
.
 
Son düzenleme:

kulomer46

Altın Üye
Katılım
23 Mart 2007
Mesajlar
1,513
Excel Vers. ve Dili
Microsoft Office LTSC Professional Plus 2021 - Türkçe
Altın Üyelik Bitiş Tarihi
08-06-2027
Bende alternatif olarak probleminizi çözen aşağıdaki makro kodunu ekliyorum.

Sorunuz Fonksiyon Soruları bölümünde bulunuyor biliyorum ama değişik bir çözüm olsun diye ekledim.

Selamlar...

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Right(Target.Value, 1) = 5 Then
    If Mid(Target.Value, Len(Target.Value) - 1, 1) Mod 2 = 0 Then   
        Target.Value = Target.Value - 5       
    Else   
        Target.Value = Target.Value + 5    
    End If   
End If
End Sub
 

parcequil

Altın Üye
Katılım
10 Nisan 2005
Mesajlar
99
Excel Vers. ve Dili
Excel 2019 Türkçe
Altın Üyelik Bitiş Tarihi
11-07-2025
Öncelikle yardımlarınız için çok teşekkürler.

İdris Bey, Tam olarak istediğimiz sonucu alamadık. Ben tam açıklayamamış olabilirim.

Ekteki dosyada üst kısımda istenilen sonuçlar bir örnekle gösteriliyor. Sizin gönderdiğiniz fonksiyonla resmin altındaki satırda ise o sonuçları alamıyoruz.
Size zahmet bu şekilde düzenleyebilir miyiz.

Kulemer46 çok teşekkür ederim ama makro yerine fonksiyonla olması daha avantajlı olacaktır.
 

Ekli dosyalar

parcequil

Altın Üye
Katılım
10 Nisan 2005
Mesajlar
99
Excel Vers. ve Dili
Excel 2019 Türkçe
Altın Üyelik Bitiş Tarihi
11-07-2025
Bir konuyu atlamışım kusura bakmayın, noktadan sonra tek hane varsa o zaman yuvarlama yapmayacak amacımız noktadan sonra tek hane yapmak
 

Merhum İdris SERDAR

Moderatör
Yönetici
Katılım
21 Ekim 2005
Mesajlar
17,094
Excel Vers. ve Dili
Excel, 365 - İngilizce
.

Aşağıdaki formülü deneyin.


Kod:
=IF(OR(--RIGHT(A1;1)<>5;LEN(RIGHT(A1;LEN(A1)-FIND(",";A1)))=1);ROUND(A1;1);IF(AND(ISODD(LEFT(RIGHT(A1;2);1));--RIGHT(A1;1)=5);ROUNDUP(A1;1);IF(AND(ISEVEN(LEFT(RIGHT(A1;2);1));--RIGHT(A1;1)=5);ROUNDDOWN(A1;1))))
Ayrıca örnek dosya burada.

http://dosya.co/vbv2tymixjy3/YU.xlsx.html


.
 

Ali

Uzman
Katılım
21 Temmuz 2005
Mesajlar
7,900
Excel Vers. ve Dili
İş:Excel 2016-Türkçe
Kod:
=EĞER(--SAĞDAN(100*MOD(A2;1))=5;EĞER(MOD(SOLDAN(10*MOD(A2;1));2)=0;AŞAĞIYUVARLA(A2;1);YUKARIYUVARLA(A2;1));YUVARLA(A2;1))
deneyin.
 

parcequil

Altın Üye
Katılım
10 Nisan 2005
Mesajlar
99
Excel Vers. ve Dili
Excel 2019 Türkçe
Altın Üyelik Bitiş Tarihi
11-07-2025
Pazartesi günü iş yerimde denerim.

Yardımlarınız için çok teşekkürler


Tapatalk kullanarak iPhone aracılığıyla gönderildi
 

parcequil

Altın Üye
Katılım
10 Nisan 2005
Mesajlar
99
Excel Vers. ve Dili
Excel 2019 Türkçe
Altın Üyelik Bitiş Tarihi
11-07-2025
Arkadaşlar ilginiz ve yardımlarınız için çok teşekkürler. Formül sorunsuz çalıştı.


Tapatalk kullanarak iPhone aracılığıyla gönderildi
 
Üst