Soru Veri çekerken gerekli düzeltmeleri yapabilmek

dengeceteris

Altın Üye
Katılım
21 Aralık 2019
Mesajlar
192
Excel Vers. ve Dili
Office 2016
Altın Üyelik Bitiş Tarihi
15-06-2025
Sevgili arkadaşlar benim için zor bir dosya ayıklamak ve aynı şeyi değişik firmalarda defalarca yapmak uğraştırıcı. Fakat öyle bir formülüm olmalı ki ekte gönderdiğim (Tamamı 100 bin satır ama ben küçük bir kısmını paylaştım) ve ayda 4-5 defa yapmak zorunda kaldığım bir işlem. Bu dosyayı kendi formatıma getirip bunu başka bir programa analiz için gönderiyorum. Maalesef ham hali de böyle bozuk geliyor. Yapmaya çalıştığım ise şu; (Bir tane veri alabileceğim bir kod sayfam olsun ve veriyi alırken aşağıda ki işlemleri yapsa)

  • Bu ham halin (F) sütununda Kodlar ve Hesap isimleri karışık geliyor. Onun için öncelikle Bu kodları ve hesap isimlerini ayıklayıp
  • A sütununa kodları
  • B sütununa hücrenin geri kalan isimlerini
  • C sütununa (A sütununda bulunan tarihleri)
  • D sütununa (Ham halinin B sütununda bulunan ve 2021/0005 yazan yerde ki sadece fiş numaralarını Yani “0005”i)
  • E sütununa (Ham halin C sütunundaki verileri
  • F sütununa (Ham halin G sütunundaki verileri)
  • G sütununa ise Ham halin H sütunundaki verileri)
  • H sütununa ise (Ham Halinini I sütunu verilerini almak
 

Ekli dosyalar

  • 56 KB Görüntüleme: 8

Merhum İdris SERDAR

Moderatör
Yönetici
Katılım
21 Ekim 2005
Mesajlar
17,094
Excel Vers. ve Dili
Excel, 365 - İngilizce
.

Power Queryi inceleyin.

Rahatlıkla ekte verdiğim dosyayı elde edersiniz.

.
 

Ekli dosyalar

Son düzenleme:

Ziynettin

Destek Ekibi
Destek Ekibi
Katılım
18 Nisan 2008
Mesajlar
1,105
Excel Vers. ve Dili
office2010
Kod rapor sayfası ekler ve verileriniz bu sayfaya listelenir.


Kod:
Sub test()
Dim s1 As Worksheet, s2 As Worksheet

Set s1 = Sheets("Sheet 1")

On Error Resume Next
    Set s2 = Sheets("Rapor")
    If Err.Number <> 9 Then
        s2.Cells.ClearContents
        s2.Cells.ClearFormats
    Else
        Sheets.Add After:=Sheets(Sheets.Count)
        ActiveSheet.Name = "Rapor"
        Set s2 = Sheets("Rapor")
    End If
On Error GoTo 0

    son = s1.Cells(Rows.Count, "f").End(3).Row

    a = s1.Range("A1:J" & son).Value

    ReDim b(1 To UBound(a), 1 To 8)

    say = 1
    b(say, 1) = "account_id"
    b(say, 2) = "display_name"
    b(say, 3) = "date"
    b(say, 4) = "fis_no"
    b(say, 5) = "partner_id/name"
    b(say, 6) = "debit"
    b(say, 7) = "credit"
    b(say, 8) = "name"

    For i = 2 To UBound(a)
        say = say + 1
        b(say, 1) = Left(a(i, 6), 6)
        b(say, 2) = Mid(a(i, 6), 8, Len(a(i, 6)))
        b(say, 3) = a(i, 1)
        b(say, 4) = Left(Split(a(i, 2), "/")(2), 4)
        b(say, 5) = a(i, 3)
        b(say, 6) = a(i, 7)
        b(say, 7) = a(i, 8)
        b(say, 8) = a(i, 9)
    Next i

    s2.[C1].Resize(say).NumberFormat = "yyyy-mm-dd"
    s2.[D1].Resize(say).NumberFormat = "0000"
    s2.[F1].Resize(say, 2).NumberFormat = "#,##0.00"
    s2.[A1].Resize(say, 8).Borders.Color = rgbSilver
    s2.[A1].Resize(say, 8) = b
    s2.[A1].Resize(say, 8).EntireColumn.AutoFit
    s2.Select
    MsgBox "İşlem tamam.", vbInformation
End Sub
 

dengeceteris

Altın Üye
Katılım
21 Aralık 2019
Mesajlar
192
Excel Vers. ve Dili
Office 2016
Altın Üyelik Bitiş Tarihi
15-06-2025
Sevgili İdris Serdar bey ve Ziynettin bey ilginiz için tşk ederim. İdris bey bir şey öğrenmiş oldum ama daha fazla incelemem gerekiyor. Ziynettin bey çok güzel çalıştı ama bir şey daha isteyebilir miyim sizden . Ben bu kodu bir örnek dosya içine koyacam. Bunu oluştururken yan sayfa değilde bu verileri asıl ham veriden çekip gelse daha iyi olacak mümkünse. İkinci bir istirhamım benzer dosyalarım var. Ama bunlarda fark şu diyelim ki 1.sütunu baz alırsak aralarda boşluklar var yani her sayfadan sonra bir kaç satış boşluk ve sayfa başlarında sayfa başlıklarını yineleme var. Bu boşlukları ve başlıkları kaldırabilsek muhteşem olur.
 
Üst