FilemakerTurk, AYS Bilişim ve Beyaz Net tarafından desteklenmektedir.
Filemaker Danışmanınız
AYS Bilişim
Mehmet KAYA
 0532 231 07 27
 0216 318 55 80
 mkaya@aysbilisim.net
						

Toplam Tutarı Yazıya Çevirme Hk.

0 oy
1,098 kez görüntülendi

Merhaba Dostlar,

Aşağıdaki Hesaplama da BEŞ YÜZ ELLI 50TL şeklinde çıkıyor çözemedim.Yardımcı olursanız sevinirim.

 

Let([Million = Div(Toplam Tutar; 1000000); Bin = Div((Toplam Tutar - (Div(Toplam Tutar; 1000000) * 1000000)); 1000); Yüz = Div(Int(Mod(Toplam Tutar; 1000)); 100); On = Int(Mod(Toplam Tutar; 1000)); Kuruş = (Toplam Tutar - Int(Toplam Tutar)) * 100 + ,00005]; Trim ( Choose(Div(Million; 100);""; "Bir"; "İki"; "Üç"; "Dört"; "Beş"; "Altı"; "Yedi"; "Sekiz"; "Dokuz") &  Case(Div(Million; 100) > 0; " Yüz ") & Choose(Div(Mod(Million; 100); 10);"" ;""; "Yirmi"; "Otuz "; "Kırk"; "Elli"; "Altmış "; "Yetmiş "; "Seksen "; "Doksan ") &Choose(Case(Mod(Million; 100) >= 20; Mod(Million; 10); Mod(Million; 100));""; "Bir "; "İki "; "Üç "; "Dört "; "Beş "; "Altı "; "Yedi "; "Sekiz "; "Dokuz "; "On "; "Onbir "; "Oniki "; "Onüç "; "Ondört "; "Onbeş "; "Onaltı "; "Onyedi "; "Onsekiz"; "Ondokuz ") &Case(Million > 0; "Milyon ") & Choose(Div(Bin; 100); ""; ""; "İki"; "Üç"; "Dört"; "Beş"; "Altı"; "Yedi"; "Sekiz"; "Dokuz") & Case(Div(Bin; 100) > 0; " Yüz ") & Choose(Div(Mod(Bin; 100); 10); ""; ""; "Yirmi "; "Otuz "; "Kırk "; "Elli "; "Altmış "; "Yetmiş "; "Seksen "; "Doksan ") &Choose(Case(Mod(Bin; 100)  >= 20; Mod(Bin; 10); Mod(Bin; 100));""; ""; "İki "; "Üç "; "Dört "; "Beş "; "Altı "; "Yedi "; "Sekiz "; "Dokuz "; "On "; "Onbir "; "Oniki "; "Onüç "; "Ondört "; "Onbeş "; "Onaltı "; "Onyedi "; "Onsekiz "; "Ondokuz ") &Case(Bin > 0; "Bin ") &  Choose(Yüz; ""; ""; "İki"; "Üç"; "Dört"; "Beş"; "Altı"; "Yedi"; "Sekiz"; "Dokuz") & Case(Yüz > 0;" Yüz ") &Choose(Div(Mod(Int(Mod(Toplam Tutar; 1000)); 100); 10); ""; ""; "Yirmi "; "Otuz "; "Kırk "; "Elli "; "Altmış "; "Yetmiş"; "Seksen "; "Doksan ") &Choose(Case(Mod(On; 100) >= 20; "Mod On"; 10); Mod(On; 100); "Bir " ; "İki " ; "Üç " ; "Dört "; "Beş "; "Altı "; "Yedi "; "Sekiz "; "Dokuz "; "On "; "Onbir "; "Oniki "; "Onüç "; "Ondört "; "Onbeş "; "Onaltı "; "Onyedi "; "Onsekiz "; "Ondokuz ") &Case(Toplam Tutar < 1; ""; Case(Toplam Tutar < 2; "TL"; "TL")) & "  " & Choose(Div(Mod(Kuruş; 100); 10);""; ""; "Yirmi "; "Otuz "; "Kırk "; "Elli"; "Altmış "; "Yetmiş "; "Seksen"; "Doksan ") & Choose(Case(Mod(Kuruş; 100) >= 20; Mod(Kuruş; 10); Mod(Kuruş; 100));""; "Bir "; "İki "; "Üç "; "Dört "; "Beş "; "Altı "; "Yedi "; "Sekiz "; "Dokuz "; "On "; "Onbir "; "Oniki "; "Onüç "; "Ondört "; "Onbeş "; "Onaltı "; "Onyedi "; "Onsekiz "; "Ondokuz ") & Case(Kuruş < 1;"";Case(Kuruş < 2;"Kuruş"; "Kuruş"))) )

29, Mayıs, 2015 Custom Functions kategorisinde Mehmetblg (42,320 puan) tarafından soruldu
Case(Toplam Tutar < 2; "TL"; "TL"))

bu kısımda sorun var gibi ama :) çözemedim

2 Cevaplar

+2 oy
 
En İyi Cevap
Case(Toplam Tutar < 2; "TL"; "TL")) Bu bölüm herhalde İngilizce sürümünde "TL" ve "TLs" ayırmak için kullanılıyordu.

 

Bizim uzun süredir kullandığımız formülü aşağıya ekliyorum. Bir deneyebilirsiniz. (O zamanlar let fonksiyonu yoktu, formülde bir kaç yerde sayı alanımız "a" geçiyor. Onları kendi formülünüze göre değiştirmeniz gerekir.)

//"YALNIZ :  " &

If ( a ≥ 1000000000 ; "!!!!!!" ;
Choose( Int(a/100000000) ; "";"YÜZ";"İKİYÜZ";"ÜÇYÜZ";"DÖRTYÜZ";"BEŞYÜZ";"ALTIYÜZ";"YEDİYÜZ";"SEKİZYÜZ";"DOKUZYÜZ") &  

Choose(Mod( Int(a/10000000); 10) ; "";"ON";"YİRMİ";"OTUZ";"KIRK";"ELLİ";"ALTMIŞ";"YETMİŞ";"SEKSEN";"DOKSAN") &

Choose(Mod( Int(a/1000000); 10) ; "";"BİR";"İKİ";"ÜÇ";"DÖRT";"BEŞ";"ALTI";"YEDİ";"SEKİZ";"DOKUZ") &
If( a > 999999 ; "MİLYON"; "") &

Choose(Mod( Int(a/100000); 10) ; "";"YÜZ";"İKİYÜZ";"ÜÇYÜZ";"DÖRTYÜZ";"BEŞYÜZ";"ALTIYÜZ";"YEDİYÜZ";"SEKİZYÜZ";"DOKUZYÜZ") &  
Choose(Mod( Int(a/10000); 10) ; "";"ON";"YİRMİ";"OTUZ";"KIRK";"ELLİ";"ALTMIŞ";"YETMİŞ";"SEKSEN";"DOKSAN") &

If ( Mod( Int(a/1000); 10)=1 and Int(Mod ( a ; 1000000 )/10000)>0 ; "BİR" ; "" ) &
Choose( Mod( Int(a/1000); 10); "";"";"İKİ";"ÜÇ";"DÖRT";"BEŞ";"ALTI";"YEDİ";"SEKİZ";"DOKUZ") &

If ( Int ( Mod ( a ; 1000000 )/1000 )>0 ; "BİN" ; "" ) &

Choose( Mod( Int(a/100); 10); "";"YÜZ";"İKİYÜZ";"ÜÇYÜZ";"DÖRTYÜZ";"BEŞYÜZ";"ALTIYÜZ";"YEDİYÜZ";"SEKİZYÜZ";"DOKUZYÜZ") &

Choose( Mod( Int(a/10); 10); "";"ON";"YİRMİ";"OTUZ";"KIRK";"ELLİ";"ALTMIŞ";"YETMİŞ";"SEKSEN";"DOKSAN") &

Choose(Mod( a; 10) ; "";"BİR";"İKİ";"ÜÇ";"DÖRT";"BEŞ";"ALTI";"YEDİ";"SEKİZ";"DOKUZ") & " TL" &

If ( Mod ( a ; 1 ) =0 ; "" ; "--" &

Choose(Int(Mod ( a ; 1 ) * 10); "";"ON";"YİRMİ";"OTUZ";"KIRK";"ELLİ";"ALTMIŞ";"YETMİŞ";"SEKSEN";"DOKSAN") &

Choose(Mod(Mod ( a ; 1 ) * 100;10) ; "";"BİR";"İKİ";"ÜÇ";"DÖRT";"BEŞ";"ALTI";"YEDİ";"SEKİZ";"DOKUZ") &" Krş." ))
29, Mayıs, 2015 F. Osman Cabi (198,180 puan) tarafından cevaplandı
30, Mayıs, 2015 Mehmetblg tarafından seçilmiş
teşekkür ederim.Düzeldi :)
+1 oy
Hangi rakamı yazıya çevirmekte sıkıntı yaşıyorsunuz o rakamı paylaşabilir misiniz ?
29, Mayıs, 2015 mkanlioglu (63,090 puan) tarafından cevaplandı
toplam tutarımız 550 TL
BEŞ YÜZ ELLI 50TL şeklinde çıkıyor
denedim ama link patlamış kardeş :)
bunu kaçırmışım baktım mkanlıoğlu klasörüme de :P
...