• DİKKAT

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

Sagdan Parca Almak - Yuvarlamak

Katılım
21 Kasım 2012
Mesajlar
172
Excel Vers. ve Dili
2013 - TR & EN
Takildigim iki adet sorum olacak. Ornegin A1 hucresinde soyle bir sey yazili olsun: "Nothing in List but Over 15K (40)" , B1 hucresinde ise A1 hucresinde "Over 15K (40)" kismini gordugu anda 40 ve 15in farki olan 25'i yazsin. bu kismini ben hallettim aslinda ehataliysa(mbul formulu ile.. benim sorum su : bir kriter daha eklemek istiyorum B1 hucresine. Ornegin A1 Hucresi "Nothing in List but Over 15K (40) >> Over 15K (25)" yazili oldugunda B1 hucresi ">>" isaretini gordugunde ilk hesaplamayi yapmayip ">>" isaretinden sonraki gelen kisma gore hesaplama yapip, 25 ve 15in farki olan 10'u yazsin.

Kucuk bir hatirlatma : () isareti icindeki ve diger tum rakamlar degisebiliyor, sabit rakamlar degil.


Benim bu yukarida bahsettigim soruya ek olarak bilmiyorum sunu da B1 hucresine kriter olarak ekleyebilir miyiz. : Bunlar hep kucuk sorular oldugu icin bir arada yazmak istedim. birbiriyle baglantili olacak aslinda. Ornegin () isareti icinde 47986 gibi bir sayi yazili olsun. bu sayiyi nasil 50'ye cevirebilirim SADECE Yuvarlama ile..47986 'yi neden 50 ye cevirmek istiyorsun diye sorulursa diye soyleyeyim, 47986 aslinda 48K gibi. boylece 15 rakamini cikartip 2 basamakli sayi elde edebilirim. neden 1000'e bolerek yapmiyorsun diye sorulursa eger, cunku () isareti icinde 2 basamakli bir sayiya denk geldiginde, ve ben bu sayiyi 1000'e boldugumde yanlis sonuc cikacaktir. iki basamakli bir sayiyi iki basamkli bir sayiya yuvarlarsam sorun olmayacaktir. bu sebepten dolayi.

uzun uzun yazdim cunku anlasilmasini kolay kilabilmek icin... Yardimlarinizi bekliyorum cok ama cok tesekkur ederim..
Problemimi acikladigim bir excel dosyasina goz atmak icin linki paylasiyorum>> link > http://dosya.web.tr/KMgp0O

UPDATE > Bu konunun sonunda sorumun cozumlu son halinin 2 versiyonunu su linklerde eger indirmek isteyip gormek isteyen olursa diye. tesekkur ederim yardimci olan herkese.
1. VERSIYON > http://dosya.web.tr/KX45eK
2. VERSIYON >(turist)>https://drive.google.com/file/d/0Bxzt1BJSCehiaWVwUHpSLUFYd1k/view
 
Son düzenleme:
Uzun uzun yazmak yerine; örnek excel dosyanızı foruma ekleyip, istediklerinizi dosya üzerinde tanımlarsanız; daha kolay ve çabuk cevap bulabilirsiniz.
 
aslinda kendim excel de yapmayi denedim fakat beceremedim :(./ sadece basic olarak ">>" isaretini koydugum zaman ">>" sonraki kisimdaki sayilarin farkini yazdirmak. eger ">>" isareti yok ise de normal yazili olan sayilarin farkini aldirmak hucre icinde.. fakat bu sayilar dedigim gibi metin icinde gectigi icin ve ">>" isaretini kosul olarak koymak istedigim icin isler karisiyor biraz benim icin.. hepsi bu.. excel'de nasil sunabilirim ornek olarak bilemedim kendim yapamadigim icin :(
 
Merhaba.


Örnek belgenizi; burası veya burası gibi bir dosya paylaşım sitesine yükleyip oradan alacağınız link'i burada paylaşabilirsiniz.
Böylece örnek dosya üzerinden istediğiniz sonuca daha çabuk ulaşırsınız.

Örnek belgenizde birkaç satırlık her türlü seçeneği içerecek veriler ile sonuçta ulaşılacak değerlerin elle yazıldığı bölüm olursa, gereksiz mesajlaşma ve düzeltmelere gerek kalmadan sorununuz kısa sürede çözülebilir diye düşünüyorum.

Örneğin bir satırda >> karakterlerinin olduğu, başka bir satırda 48K dediğiniz değerin olduğu, bir diğer satırda da iki basamakllı dediğiniz verinin olduğu bir örnek belge hazırlayıp, ilgili verilerin karşısına da ulaşılacak sonucu elle yazarak (bunun karşısına da o sonuca nasıl ulaştığınızı tarif ederek) belgenizi tamamlayın ve yukarıda yazdığım paylaşım sitelerinden birine belgenizi yükleyin bence.
 
omer.baran cok tesekkur ederim onerin icin ve onerine uyup ayni sekilde vermis oldugun siteden excel'de ufak notlarla aciklamaya calistim derdimi ve icinden cikamadigim problemin. link > http://dosya.web.tr/KMgp0O cok tesekkur ederim simdiden yardimlariniz icin..
 
Son düzenleme:
Dosyanız linktedir.İndirip, formülü ve açıklamalarını inceleyiniz.
İNDİR
 
biz de az çok excel biliyoruz diye dolanıyoruz. sayın turist'e söylenecek tek bir cümle var.
- ne yazmış bee :D
 
sadece ">>" isareti icin bu kadar uzun kod gerektigini tahmin etmistim ama bu kadar hizli halledilebilecegini tahmin etmemistim.. Cok tesekkur ederim turist.. yani diyorum ki hani ben isi birakim gel sen benim yerime calis yani hani bana ihtiyaclari yok burda pek aslinda hani bu sorulara cevap veren sen oldugun icin orjinal olarak. dosyaya adini vericem turist. cok yasa.. tesekkur ederim yardimlarin icin...
 
Sayin turist, uzun uzun inceledim paylasmis oldugun dosyayi ve icindeki kodu. cok degisik senaryolarda denedim fakat bir sorun ile karsilastim. O da ilk sutunda yazili olan Nothing in List but Over 15K (40) yazili iken sikinti cikarmadan farkini bana 25 olarak veriyor formul fakat ben o parantez icindeki 40 yerine 26651 gibi bir rakam yazdigimda formulde yer vermissin buna da 5. modunu alip kenbdisinden cikartarak fakat sonucu dogru vermedi. Fakat diger ">>" isareti olan hucrelerde sikinti cikartmadi aynen sonucu dogru sekilde verdi. ben mi bir sey kacirdim gozden yada yanlis yaptim bilemedim..
 
Merhaba.

Aşağıdaki formülü dener misiniz?
Kod:
=(EĞER(UZUNLUK(0+PARÇAAL(EĞERHATA(EĞER(BUL(">>";A1;1)>0;PARÇAAL(A1;BUL(">>";A1;1)+3;UZUNLUK(A1)-BUL(">>";A1;1)+3);A1);A1);(BUL("(";EĞERHATA(EĞER(BUL(">>";A1;1)>0;PARÇAAL(A1;BUL(">>";A1;1)+3;UZUNLUK(A1)-BUL(">>";A1;1)+3);A1);A1);1))+1;(BUL(")";EĞERHATA(EĞER(BUL(">>";A1;1)>0;PARÇAAL(A1;BUL(">>";A1;1)+3;UZUNLUK(A1)-BUL(">>";A1;1)+3);A1);A1);1))-(BUL("(";EĞERHATA(EĞER(BUL(">>";A1;1)>0;PARÇAAL(A1;BUL(">>";A1;1)+3;UZUNLUK(A1)-BUL(">>";A1;1)+3);A1);A1);1))-1))>2;((0+PARÇAAL(EĞERHATA(EĞER(BUL(">>";A1;1)>0;PARÇAAL(A1;BUL(">>";A1;1)+3;UZUNLUK(A1)-BUL(">>";A1;1)+3);A1);A1);(BUL("(";EĞERHATA(EĞER(BUL(">>";A1;1)>0;PARÇAAL(A1;BUL(">>";A1;1)+3;UZUNLUK(A1)-BUL(">>";A1;1)+3);A1);A1);1))+1;(BUL(")";EĞERHATA(EĞER(BUL(">>";A1;1)>0;PARÇAAL(A1;BUL(">>";A1;1)+3;UZUNLUK(A1)-BUL(">>";A1;1)+3);A1);A1);1))-(BUL("(";EĞERHATA(EĞER(BUL(">>";A1;1)>0;PARÇAAL(A1;BUL(">>";A1;1)+3;UZUNLUK(A1)-BUL(">>";A1;1)+3);A1);A1);1))-1))/1000)-MOD((0+PARÇAAL(EĞERHATA(EĞER(BUL(">>";A1;1)>0;PARÇAAL(A1;BUL(">>";A1;1)+3;UZUNLUK(A1)-BUL(">>";A1;1)+3);A1);A1);(BUL("(";EĞERHATA(EĞER(BUL(">>";A1;1)>0;PARÇAAL(A1;BUL(">>";A1;1)+3;UZUNLUK(A1)-BUL(">>";A1;1)+3);A1);A1);1))+1;(BUL(")";EĞERHATA(EĞER(BUL(">>";A1;1)>0;PARÇAAL(A1;BUL(">>";A1;1)+3;UZUNLUK(A1)-BUL(">>";A1;1)+3);A1);A1);1))-(BUL("(";EĞERHATA(EĞER(BUL(">>";A1;1)>0;PARÇAAL(A1;BUL(">>";A1;1)+3;UZUNLUK(A1)-BUL(">>";A1;1)+3);A1);A1);1))-1))/1000;5);0+PARÇAAL(EĞERHATA(EĞER(BUL(">>";A1;1)>0;PARÇAAL(A1;BUL(">>";A1;1)+3;UZUNLUK(A1)-BUL(">>";A1;1)+3);A1);A1);(BUL("(";EĞERHATA(EĞER(BUL(">>";A1;1)>0;PARÇAAL(A1;BUL(">>";A1;1)+3;UZUNLUK(A1)-BUL(">>";A1;1)+3);A1);A1);1))+1;(BUL(")";EĞERHATA(EĞER(BUL(">>";A1;1)>0;PARÇAAL(A1;BUL(">>";A1;1)+3;UZUNLUK(A1)-BUL(">>";A1;1)+3);A1);A1);1))-(BUL("(";EĞERHATA(EĞER(BUL(">>";A1;1)>0;PARÇAAL(A1;BUL(">>";A1;1)+3;UZUNLUK(A1)-BUL(">>";A1;1)+3);A1);A1);1))-1)))-(0+PARÇAAL(EĞERHATA(EĞER(BUL(">>";A1;1)>0;PARÇAAL(A1;BUL(">>";A1;1)+3;UZUNLUK(A1)-BUL(">>";A1;1)+3);A1);A1);BUL("Over ";EĞERHATA(EĞER(BUL(">>";A1;1)>0;PARÇAAL(A1;BUL(">>";A1;1)+3;UZUNLUK(A1)-BUL(">>";A1;1)+3);A1);A1);1)+5;(BUL("K (";EĞERHATA(EĞER(BUL(">>";A1;1)>0;PARÇAAL(A1;BUL(">>";A1;1)+3;UZUNLUK(A1)-BUL(">>";A1;1)+3);A1);A1);1))-(BUL("Over ";EĞERHATA(EĞER(BUL(">>";A1;1)>0;PARÇAAL(A1;BUL(">>";A1;1)+3;UZUNLUK(A1)-BUL(">>";A1;1)+3);A1);A1);1)+5)))
Sayın turist'in örnek belgesinde son satırdaki hücrede yer alan acre kelimesine nasıl işlem yapılacağını anlayamadığm için onu yok saydım.
 
Sayin turist, uzun uzun inceledim paylasmis oldugun dosyayi ve icindeki kodu. cok degisik senaryolarda denedim fakat bir sorun ile karsilastim. O da ilk sutunda yazili olan Nothing in List but Over 15K (40) yazili iken sikinti cikarmadan farkini bana 25 olarak veriyor formul fakat ben o parantez icindeki 40 yerine 26651 gibi bir rakam yazdigimda formulde yer vermissin buna da 5. modunu alip kenbdisinden cikartarak fakat sonucu dogru vermedi. Fakat diger ">>" isareti olan hucrelerde sikinti cikartmadi aynen sonucu dogru sekilde verdi. ben mi bir sey kacirdim gozden yada yanlis yaptim bilemedim..

Linkteki dosya, istediğiniz örneğe uygun çözümlüdür.
İNDİR
 
Son düzenleme:
Turist bilgine ve emegine saglik ve yardimnci olmak icin harcadigin vakit icin cok tesekkur ederim. Bu hafta cok yogun gectii icin ancak haftasonu bugun bakabildim... Bir onceki mesajimda bahsettigim sorun ortadan kalkmis aynen yaptigin kucuk ekleme ile.. Simdi son ve son , soz veriyorum gercekten son bir kucuk sorun daha dikkatimi cekti.. Ornegin (26615) yazili ise aynen guzelce ceviriyor formulu. Simdi ya bu parantez icindeki sayi 5 basamakli degil de (100000) gibi 6 basamakli olur ise ne yapabiliriz ? mod5 bu kismini hallettigimiz kisim sadece 5 ve 5ten kucuk basamak sayisina sahip sayilar icin. ben bu mod5'i kafama gore yuksek bir rakam verip mod10 yazsam bu son sorunu cozmus olmam saniyorum .
 
Son düzenleme:
İstediğiniz basamakta sayı kullanabilirsiniz.
Genel olarak, MOD işlevi bir sayının bir bölen tarafından bölünmesinden sonra kalanı verir.
MOD fonksiyonunda bölen(Divisor) olarak "5"kullanılma sebebi; sizin örneklerinize göre 26615 gibi bir sayının (1000'e bölünerek) "25" olarak dikkate alınmasına uygun olarak; sayıların 5,10,15,20,25.......125 vb. gibi 5erli basamaklar halinde olmasıdır.
Bu nedenle; örneğe göre, =26615/1000-MOD(26615/1000;5) şeklinde veya =26,615-MOD(26,615;5) şeklindeki bir formül "25" sayısını mutlak değer olarak verecektir.(26615 yerine sayının bulunduğu hücre adresi de kullanılabilir)
Formüllerdeki MOD(26,615;5) kısmı bize "1,615" sonucunu verir, 26,615 den 1,615 çıkarırsak,"25" mutlak sayısını elde ederiz.

Yani, burada "5" bölen sayıdır.Kuralınız 5erli sayılar ise "5"i değiştirmenize gerek kalmaz, basamak sayısı ne olursa olsun sonuç doğru olacaktır.
5 yerine böleni "10" yaparsanız, bu defa 10arlı sayıları dikkate alacaktır.
26615 örneğinde sonuç ,"20" olacaktır.
Kullanımınızı bu açıklamalara göre değerlendirebilirsiniz.

Sağlıcakla kalınız...
 
turist cok tesekkur ederim aciklama icin. muhendislikten mezunum ve mod'u bilmemek benim ayibim olur :). ama excel formulundeki isleyis mantigiyla hatirlatman icin minnettarim yardimlarin icin. Fakat benim merak ettigim ve bir kez uygun oldugunda son gonderdigin excel dosyasinda su satir icin parantez icine 100000 yazarak denemni isteyebilir miyim. bana -5 verdi, 85 yerine... >> isaretinin oldugu satirlarda sikinti yok, 85 veriyor. son gonderdigin guncel dosyada, A2 satirina " Nothing in List but Over 15K (100000) " yazip denebilir misin, -5 veriyor cunku.. sunu yazarak () isareti icindeki deger ne ise alabiliyorum, fakat gerisini getiremedim yazmis oldugun formulun een son kisminda >> yok ise ne yapacagini soyledigimiz kisimda.. A2 icin () icini sadece almak icin soyle bir sey yazdim ama gerisini getiremedim. PARÇAAL(A2,MBUL("(",A2)+1,MBUL(")",A2,MBUL("(",A2))-MBUL("(",A2)-1)
 
Son düzenleme:
sanirim bu son sorunu hallettim turist, kodun son kisimda >> isareti yok ise yapilan hesabin oncesine 5 'ten fazla rakamli sayilar icin soyle bir sey ekledim , EĞER(UZUNLUK(PARÇAAL(A2,MBUL("(",A2)+1,MBUL(")",A2,MBUL("(",A2))-MBUL("(",A2)-1))>5, PARÇAAL(PARÇAAL(A2,MBUL("(",A2)+1,MBUL(")",A2,MBUL("(",A2))-MBUL("(",A2)-1), 1,UZUNLUK(PARÇAAL(A2,MBUL("(",A2)+1,MBUL(")",A2,MBUL("(",A2))-MBUL("(",A2)-1))-3)-MOD(PARÇAAL(A2,MBUL("(",A2)+1,MBUL(")",A2,MBUL("(",A2))-MBUL("(",A2)-1),5)-15 ardindan da 5ten kucuk olan rakamlar icinde senin yazmis oldugun son kismi aynen yazdim oldu. sorun ortadan kalkmis oldu.. ekte dosyayi koydum konuyu takip eden baska kisiler cozumlu halini isterlerse diye,.,, Turist emegine saglik ve vaktini ayirdigin icin cok tesekkur ederim. sagol. dosya son duzenledigim haliyle ekte paylastim > http://dosya.web.tr/KX45eK
 
Yeni dosya LİNKTEDİR.
Son değişiklikte uygulama mantığı; Parantez içi sayının 3 basamaklıdan fazla olması koşuluna göredir.4 basamaklı ve fazlasını 1000'e böler, 3 basamaklıdan azsa bölmez.Buna göre de diğer koşulları yerine getirir.
(Tabii ki ;kendi çözümünüzü de uygulayabilirsiniz.)
 
Paylasmis oldugun dosyadaki cozum ve benim yapmis oldugum cozum tikir tikir calisiyor. bu defa hata veya hicbir sey bulamadim. Cok guzel ellerine saglik turist. bu konu da burada kapanmis oldu diyelim.. cok tesekkurler.
 
Geri
Üst