• DİKKAT

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

Harcamaların Gruplandırılması

Katılım
16 Aralık 2013
Mesajlar
3
Excel Vers. ve Dili
2010
Merhabalar,

Harcamalara ait uzunca bir listem var. Yapılan harcamaların türlerine göre ayrıştırmak istiyorum.

Harcama dökümü aşağıdakine benzer bir yapıdadır.

TARİH--- AÇIKLAMA--- TUTAR--- TÜR
26/5/2014--- TAYYİP KEBAP RESTOR AFYON--- 1020.75--- YEMEK BEDELİ
27/5/2014--- EKMEL PİDE SALONU ISPARTA --- 1460.5--- YEMEK BEDELİ
28/5/2014--- SELO DEMİR İMALAT LTD--- 10000.49--- İNŞAAT BEDELİ
31/5/2014--- GUNES YAPI MARKET--- 12200.81--- İNŞAAT BEDELİ

Yapmak istediğim ise bu tablonun soluna açacağım sütunda AÇIKLAMA kısmında "KEBAP", "PİDE" gibi metinlerin bulunduğu harcamaları "YEMEK BEDELİ" olarak gruplamak. Aynı şekilde içinde "YAPI MARKET", "DEMİR" geçen harcamalar "İNŞAAT BEDELİ" olarak gruplamak.

Türler için AÇIKLAMA kısmında aradığım metinler içinde bir tablom mevcuttur. Özetle ; AÇIKLAMA kısmı içinde aradığım metin türleri de 10'a yakındır. Bir kısmını aşağıda paylaşıyorum.


AÇIKLAMA TÜR
KEBAP YEMEK BEDELİ
PİDE YEMEK BEDELİ
YAPI MARKET İNŞAAT BEDELİ
TASARIM PROJE BEDELİ
ŞEKERLEME YEMEK BEDELİ
GIDA MARKET YEMEK BEDELİ
.
.
.

Yapılmak isteneni tekrar özetlersem. Mevcut harcama listemi harcama türlerini saptayabilmek için açıklama kısmından faydalanmak istiyorum. AÇIKLAMA kısmında geçen anahtar sözcükleri yakalayarak sonuca gidebileceğimi düşünüyorum . Ama nasıl ? :)

Yardımlarınız için şimdiden teşekkür ederim.
 
Aşağıdaki makroyu yazdım ancak maalesef sonuç vermedi. "worksheetfunction sınıfının Sarchb özelliği alınamıyor" hatası veriyor. Aynısını Searh için de veriyor. Bilen arkadaşlarımızdan biri doğrusunu öğretirse memnun olurum:

Kod:
Sub gider()
Set s1 = Sheets("Sayfa1")
Set s2 = Sheets("Sayfa2")
son1 = s1.Cells(Rows.Count, 1).End(3).Row
son2 = s2.Cells(Rows.Count, 1).End(3).Row

For i = 2 To son1
    For j = 2 To son2
        If WorksheetFunction.SearchB(s2.Cells(j, 1), s1.Cells(i, 1)) <> 0 Then
        s1.Cells(i, 4) = s2.Cells(j, 2)
        End If
    Next
Next
End Sub
 
InStr fonksiyonu ile alternatif;
Kod:
Sub Daxe_Syan()
    For i = 2 To Cells(Rows.Count, 2).End(xlUp).Row
        For j = 2 To Cells(Rows.Count, 5).End(xlUp).Row
            If InStr(1, Cells(i, 2), Cells(j, 5)) Then _
               Cells(i, 4) = Cells(j, 6)
        Next
    Next
End Sub

Dosyanız:BURADAN
 
Son düzenleme:
cevaplar için teşekkür ederim. Acaba bunu excel formülleri ile yapabilmenin bir yolu var mıdır?
 
4 nolu mesajda eklenen örnek dosyaya göre D2 hücresine aşağıdaki dizi formülünü uygulayıp deneyiniz.

Dizi formül hücreye yazıldıktan sonra CTRL+SHIFT+ENTER tuşlarına aynı anda basılarak tamamlanmalıdır. Aksi halde doğru sonuç üretmez.

Kod:
=İNDİS($F$2:$F$100;KAÇINCI(1;--ESAYIYSA(MBUL($E$2:$E$100;B2));0))
 
Yardımlarınız için teşekkür ederim. Oldukça faydalı oldu.
 
Geri
Üst