• DİKKAT

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

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

Katılım
10 Nisan 2005
Mesajlar
99
Excel Vers. ve Dili
Excel 2019 Türkçe
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.
 
.

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:
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
 
Ö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

  • IMG_8592.jpg
    IMG_8592.jpg
    104.5 KB · Görüntüleme: 11
Bir konuyu atlamışım kusura bakmayın, noktadan sonra tek hane varsa o zaman yuvarlama yapmayacak amacımız noktadan sonra tek hane yapmak
 
.

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


.
 
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.
 
Pazartesi günü iş yerimde denerim.

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


Tapatalk kullanarak iPhone aracılığıyla gönderildi
 
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
 
Geri
Üst