• DİKKAT

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

Farklı para birimlerini toplama

Katılım
29 Şubat 2008
Mesajlar
45
Excel Vers. ve Dili
excel 2007 türkce kullanıyorum
selam sitenize yeni üye oldum öncelikle böyle güzel ve faydalı bir site kurdugunuz icin emeği gecen tüm arkadaşlara teşekkürler.
benim cözemedigim bir sorunum var binlerce verinin oldugu bir ödeme takip dosyam var ve burdaki ödemeler farklı para birimlerinden olusuyor yani (1000$,2500€, 3000ytl) para birimleri rakamlara sayı para birimi şekliyle verilmis ve
tabloda karışık bir şekildeler ben bu para birimlerini doları dolar euro euro ytl ytl cinsinden ayrı ayrı toplamak istiyorum bunu yapabilceğim bir formul varmıdır varsa bilen bir arkadaş yazarsa cok memnun olurum yada sitede daha önce bu konuda bilgi verilmişse o bilginin yer aldığı link yazıla bilir mi.

Not: excel 2007 kullanıyorum.
 
S.NO AdI "
Ülke" Miktar
1 A İNGİLTERE 1.000 YTL
2 B ÜRDÜN 2.000 $
3 C ALMANYA 500 €
4 A İNGİLTERE 600 $
5 B İNGİLTERE 650 €
6 C ALMANYA 800 YTL
7 A İNGİLTERE £900
8 B HİNDİSTAN 3.500 €
9 C ABD 10.000 $
10 A ABD £25.000
11 B ALMANYA 2.300 YTL
12 C ALMANYA £470
13 A ABD £680
14 B ABD 5.500 $
15 C FRANSA 6500
16 A KANADA 7.200 YTL
17 B Almanya 850 $
18 C Almanya £950
19 A G.AFRİKA 300 YTL
20 B Almanya 750 €


PAUND TOPLAM ?
EURO TOPLAM ?
DOLAR TOPLAM ?
YTL TOPLAM ?

soru işareti olan yerlerdeki toplamları hangi formülle yapabilirim
benim tablom yukarıdaki gibi birsey o linkde farklı bir durumdan bahsediliyor sanırım.
 
Son düzenleme:
ekli dosyada örneği gönderiyorum bir cevap yazarsanız cok memnun olurum.
 
teşekkürler korhan bey aradğım dosya bu idi yalnız burda dolar euro ve ytl var bunlara yeni para birimleri nasıl ekleye biliriz paund riyal filan gibi

Public Function TOPLAUSD( _
ParamArray vInput() As Variant) As Variant
Dim rParam As Variant
Dim rCell As Range
Dim vTemp As Variant

Application.Volatile
On Error GoTo Hata
For Each rParam In vInput
If TypeName(rParam) = "Range" Then
With rParam
For Each rCell In Intersect( _
.Cells, .Cells.Parent.UsedRange)
With rCell
If .NumberFormat = "[$$-409]#,##0" Then
If IsError(.Value) Then
vTemp = .Value
Exit For
ElseIf VarType(.Value2) = vbDouble Then
vTemp = vTemp + .Value2
End If
End If
End With
Next rCell
End With
End If
Next rParam
TOPLAUSD = vTemp
Devam:
On Error GoTo 0
Exit Function
Hata:
If Err.Number = 6 Then TOPLAUSD = CVErr(xlErrNum)
Resume Devam
End Function

1. Değiştirilecek yerleri kırmızı olarak gösterdim. Ona göre değiştirmeniz gerekir.

2. If .NumberFormat = "[$$-409]#,##0" Then yer alan formatı Macro kaydet ,ie tespit etmeniz mümkün.

3. Her para birimi için bunu kodları yazmanız gerekir.

.


2.
 
Buda formülle çözüm.

G,H ve I sütunlarda aynı mantıkla ufak değişiklikler ile farklı çözüm yaptım.

Örnek dosya ektedir.

Not:G,H ve I sütunlarında formüller dizi formülü olup formül çubuğunda iken direk entere basılmadan CTRL+SHIFT+ENTER tuşlarına birlikte basılarak dizi formülü oluşturulmuştur.
 
Buda formülle çözüm.

G,H ve I sütunlarda aynı mantıkla ufak değişiklikler ile farklı çözüm yaptım.

Örnek dosya ektedir.

Not:G,H ve I sütunlarında formüller dizi formülü olup formül çubuğunda iken direk entere basılmadan CTRL+SHIFT+ENTER tuşlarına birlikte basılarak dizi formülü oluşturulmuştur.

ali bey formül yoluyla olması cok iyi oldu benim icin cünkü makro bilgisine sahip değilim yalnız bir konuyu anlamadım para birimlerinin yanı bir takım rakamlar yazmışsınız ya doların karşısına 36 euronun karşısına 128 paund ise 163 ytl bos kalmıs bu rakamlar ne icin ytl nin karşısı niye bos eğer alt tusu ile numlockdan yazılan kodlar ise $ harincindekiler bende farklı cıkıyor birde üc ayrı sütuna formul uygulamışsınız toplam icin iki tanesinde para birim işareti yok son sutunda var buna niye ihtiyac duydunuz/
 
yalnız bir konuyu anlamadım para birimlerinin yanı bir takım rakamlar yazmışsınız ya doların karşısına 36 euronun karşısına 128 paund ise 163 ytl bos kalmıs bu rakamlar ne icin ytl nin karşısı

Bu rakamlar Windows ANSI değerlerine karşılık gelen değerlerdir.A1 hücresinde 1 yazıp 255 sayısına kadar aşağı doğru çoğaltın. B1 hücresinede =DAMGA(A1) yazıp aşağı doğru çoğaltın sayılara karşılık gelen kodları göreceksiniz

K ve L yeşil alanda yazdığım kısım ise G sütununa yazdığım Damga(36),Damga(128) ... gibi değerlerin neye karşılık geldiğini görmeniz içindir. YTL için boş olmasının sebebi ANSI'de YTL diye bir kod karşılığı yoktur.

toplam icin iki tanesinde para birim işareti yok son sutunda var buna niye ihtiyac duydunuz/

Hem sayı değerini hemde yanında para sembolü olarakta görün diye alternatif verdim.

H sütundaki gibi "£" ,"YTL" şeklindede kullanabilirsiniz.

İster G sütundaki gibi ister H sütunundaki gibi " " işaretinin arasına para sembolünü yazarak kullanabilirsiniz.
 
Son düzenleme:
ali bey vermis oldugunuz formulu asıl dosyalda uygulamak istedim formul hata verdi sonra sizin gönderdiginiz dosyaya bakınca sizin para birimlerini klavyeden yazmıs oldugunuzu gördüm ama benim buraya göndermis oldugum dosaya para birimleri klavyeden girilmis değildir bicim hücreli bicimlendirdeki sayı sekmesinde para biriminden verilmis bu durumda nasıl bir formul uygulayacağım konusunda bana yardımcı olursanız sevinirim
 
Hücre sayı biçimlendirme formatı formülü tetiklemez.
 
Alİ Bey Vaktİnİzİ Aliyorum Kusura Bakmayin Ama Dolar Euro Paund Gİbİ Para Bİrİmlerİnİ Elle Yazilmayip Para Bİrİmden Verİlİnce Formul Onu Algilamiyor Ve 0 DeĞer Verİyor Ama Para Bİrİmlerİnİ Elle Yazinca FormulÜnÜz İŞlevİ Yerİne Getİrİyor.
 
ali bey vermis oldugunuz formulu asıl dosyalda uygulamak istedim formul hata verdi sonra sizin gönderdiginiz dosyaya bakınca sizin para birimlerini klavyeden yazmıs oldugunuzu gördüm ama benim buraya göndermis oldugum dosaya para birimleri klavyeden girilmis değildir bicim hücreli bicimlendirdeki sayı sekmesinde para biriminden verilmis bu durumda nasıl bir formul uygulayacağım konusunda bana yardımcı olursanız sevinirim

Size kolay bir yöntemle hazırlanmış bir dosyayı ekliyorum.

Hücre formatına göre formülle işlemm yapmak mümkün değil. Ancak hücre formatını açığa çıkaran bir UDF-KTF (User Defined Function - Kullanıcı Tanımlı Fonksiyon) gerektiriyor.

Bunun için hücre formatını belirlemek için aşağıdaki gibi bir koddan yaralanmak gerekir.

Function Format(alan As Range)
If alan.Cells.Count > 1 Then

Format = CVErr(xlErrRef)
Else

Format = alan.NumberFormat
End If
End Function


Dosya ekte.


DOSYA GÜNCELLENDİ...


.
.
 

Ekli dosyalar

Son düzenleme:
Size kolay bir yöntemle hazırlanmış bir dosyayı ekliyorum.

Hücre formatına göre formülle işlemm yapmak mümkün değil. Ancak hücre formatını açığa çıkaran bir UDF-KTF (User Defined Function - Kullanıcı Tanımlı Fonksiyon) gerektiriyor.

Bunun için hücre formatını belirlemek için aşağıdaki gibi bir koddan yaralanmak gerekir.

Function Format(alan As Range)
If alan.Cells.Count > 1 Then

Format = CVErr(xlErrRef)
Else

Format = alan.NumberFormat
End If
End Function


Dosya ekte.

.

yurrtaş bey cok tesekkürler göndermis oldugunuz dosya tam istedigim gibi yalnız bu dosyaya birde paund ekleme imkanımız var mı
para biriminde ingilizce (birleşik krallık) gibi geciyor sanırım
 
o kadar makbule gecti ki cok tesekkürler fazladan yen de eklemisiniz sanırım elinize emeğinize sağlık.
 
slm farklı para birimlerini toplama işlemi excel 2003 ingilizcemi olması gerekiyor türkce de olmaz mı yani
 
Geri
Üst