• DİKKAT

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

kriterlere göre veri aktarımı makrosu lazım

  • Konbuyu başlatan Konbuyu başlatan 86126
  • Başlangıç tarihi Başlangıç tarihi
Katılım
24 Aralık 2006
Mesajlar
232
Excel Vers. ve Dili
2007 ingilizce
TARİH KRİTER 1 KRİTER 2 KRİTER 3 KRİTER 4 KRİTER 5 KRİTER 6 KRİTER 7 KRİTER 8
BANDIRMA01.01.2007 A 2 4 4 4 4 4 4
İZMİR 02.01.2007 A 3 5 5 5 5 5 5
İSTANBUL02.01.2007 A 4 4 4 4 4 4 4
İSTANBUL04.01.2007 B 5 3 3 3 3 3 3
ANKARA 04.01.2007 B 6 3 3 3 3 3 3
ANKARA 04.01.2007 B 8 3 3 3 3 3 3
BANDIRMA07.01.2007 B 9 3 3 3 3 3 3
İZMİR 08.01.2007 B 1 2 2 2 2 2 2
İSTANBUL09.01.2007 B 1 2 2 2 2 2 2
İSTANBUL10.01.2007 A 1 1 1 1 1 1 1
ANKARA 11.01.2007 A 3 1 1 1 1 1 1
ANKARA 12.01.2007 C 4 1 1 1 1 1 1
BANDIRMA13.01.2007 C 5 1 1 1 1 1 1
İZMİR 14.01.2007 C 6 1 1 1 1 1 1
İSTANBUL15.01.2007 C 2 1 1 1 1 1 1
İSTANBUL16.01.2007 C 4 1 1 1 1 1 1

sayfa 1 de bu şekilde verilerim var, sayfa ikiye ili yazıp iki atrih arası B Sutunundaki verielere göre toplam almak istiyorum.
 
Son düzenleme:
arkadaşlar bu işten hiçmi anlayan yok. yardımlarınızı bekliyorum.
 
Kendinize göre uyarlayınız.
=+TOPLA.ÇARPIM(--(VERİLER!C2:C17="A");--(VERİLER!D2: D17))
 
İlerİ Excel ArkadaŞim İlgİn İÇİn TeŞekkÜr Ederİm. Ektekİ Doyami İnceleyebİlİrmİsİn. İl Ve İkİ Tarİh AraliĞina GÖre GÖre Bu İŞlemİ Yapmak İstİyorum.
 
yurttaş arkadaşım eline sağlık, veriler 30 000 bini aşkın olduğundan çok yavaş çalışıyor. makro ile yazmak mümkünmü. teşekkür ederim
 
YURTTAŞ ARKADAŞIM FORMÜLÜNLE İLGİLİ BİR SORUM OLACAK.
formülde geçen =TOPLA.ÇARPIM(--(il=$A$1);--(k=B3);--(tarih>=$D$1);--(tarih<=$F$1)) ile formülün sonuna eklediğin kk ların ne anlama geldiğini anlamadım. kopyalama yaparken bu kkkkk ları otomatik çoğalmanın kısa yolu nedir. açıklayabilirsen çok memnun kalacağım
 
Selamlar,

Aşağıdaki kodu denermisiniz.

Kod:
Sub AKTAR()
    [C3:IV65536].ClearContents
    ŞEHİR = [A1].Address
    TARİH1 = [D1].Address
    TARİH2 = [F1].Address
    SON = Sheets("VERİLER").[A65536].End(xlUp).Row
    For X = 3 To [B65536].End(xlUp).Row
    For Y = 3 To Sheets("VERİLER").[B1].End(xlToRight).Column
    If Y = 3 Then
    Cells(X, Y) = Evaluate("SUMPRODUCT(--(VERİLER!A2:A" & SON & "=" & ŞEHİR & "),--(VERİLER!C2:C" & SON & "=B" & X & "),--(VERİLER!B2:B" & SON & ">=" & TARİH1 & "),--(VERİLER!B2:B" & SON & "<=" & TARİH2 & " ))")
    Else
    SÜTUN = WorksheetFunction.Substitute(Mid(Cells(1, Y).Address, 1, 3), "$", "")
    Cells(X, Y) = Evaluate("=SUMPRODUCT(--(VERİLER!A2:A" & SON & "=" & ŞEHİR & "),--(VERİLER!C2:C" & SON & "=B" & X & "),--(VERİLER!B2:B" & SON & ">=" & TARİH1 & "),--(VERİLER!B2:B" & SON & "<=" & TARİH2 & "),--(VERİLER!" & SÜTUN & "2:" & SÜTUN & SON & "))")
    End If
    Next: Next
    MsgBox "AKTARIM İŞLEMİ TAMAMLANMIŞTIR.", vbInformation
End Sub
 
COST CONTROL çok teşekkür ederim. A,B,C kriterini saydırmasak nasıl yapacağız. veriler çok olduğu için çok yavaş çalışıyor. kriter 2 den itibaren tolam alsın kriter 1 toplamasın. yeni örneği ekte yardımını bekliyorum.
 
Selamlar,

Kodu aşağıdaki gibi değiştirip denermisiniz. Ben 40.000 satır kopyalayıp denedim. "AKTARILAN" sayfasındaki 3 kriteri yaklaşık 10 saniyede hesapladı. Umarım bu haliyle işinize yarar.

Kod:
Sub AKTAR()
    [C3:IV65536].ClearContents
    ŞEHİR = [A1].Address
    TARİH1 = [D1].Address
    TARİH2 = [F1].Address
    SON = Sheets("VERİLER").[A65536].End(xlUp).Row
    For X = 3 To [B65536].End(xlUp).Row
    For Y = 4 To Sheets("VERİLER").[B1].End(xlToRight).Column
    SÜTUN = WorksheetFunction.Substitute(Mid(Cells(1, Y).Address, 1, 3), "$", "")
    Cells(X, Y) = Evaluate("=SUMPRODUCT(--(VERİLER!A2:A" & SON & "=" & ŞEHİR & "),--(VERİLER!C2:C" & SON & "=B" & X & "),--(VERİLER!B2:B" & SON & ">=" & TARİH1 & "),--(VERİLER!B2:B" & SON & "<=" & TARİH2 & "),--(VERİLER!" & SÜTUN & "2:" & SÜTUN & SON & "))")
    Next: Next
    MsgBox "AKTARIM İŞLEMİ TAMAMLANMIŞTIR.", vbInformation
End Sub
 
COST CONTROL ilgin için çok teşekkür ederim. Ben size en iyisi dosyanın aslını göndereyim. Bu kayıtlar 20.000 üzerinde. KRİTER olarak 300 ün üzerinde. bayabir zorlanıyor.. tarihe göre süzüp başka sayfaya aktarsın ondan sonra toplamı başka bir sayfada alsak daha hızlı olur diye düşünüyorum. kırmızı sutunlara göre değerlendirme yapılacak.
şimdiden teşekkür ederim.
dosyam ektedir.
 
Arkadaşlar yardımlarınızı bekliyorum.
 
Selamlar,

Örnek dosyanız üzerinde gerekli düzenlemeleri yaptım. İncelermisiniz. Denemelerim sonucu aşağıdaki sürelerde işlem tamamlandı.

AFYON ilinin raporu = Yaklaşık 4 dakika sürdü.
UŞAK ilinin raporu = Yaklaşık 1 dakika sürdü.

Yani veri sayınız arttıkça raporun çıkma süreside uzayacaktır. Umarım faydası olur.
 
arkadaşım eline ve beynine sağlık. il ve iki tarih aralığını süzüp ondan sonra toplama işlemini yapsak hızlanmazmı. ayrıca süzme de MAHALLE İLE CADDE SK sutununu silsin. biraz daha hızlanır düşüncesindeyim
 
Son düzenleme:
arkada&#351;&#305;m eline ve beynine sa&#287;l&#305;k. il ve iki tarih aral&#305;&#287;&#305;n&#305; s&#252;z&#252;p ondan sonra toplama i&#351;lemini yapsak h&#305;zlanmazm&#305;. ayr&#305;ca s&#252;zme de MAHALLE &#304;LE CADDE SK sutununu silsin. biraz daha h&#305;zlan&#305;r d&#252;&#351;&#252;ncesindeyim

Selamlar,

Zaten ekledi&#287;im dosyadaki kodlar sizin istedi&#287;iniz s&#252;zme i&#351;lemini yapt&#305;ktan sonra de&#287;erleri aktar&#305;yor. Maalesef daha h&#305;zlanabilece&#287;ini d&#252;&#351;&#252;nm&#252;yorum. Sebebi ise neredeyse 256 s&#252;tunluk bir veri taban&#305;n&#305;z var. Do&#287;al olarak excel hesaplarken zorlan&#305;yor. Ve i&#351;lem s&#252;resi uzuyor.
 
süzdüğünde mahalle ve cadde bulunan sutunları sildiremezmiyiz
 
Selamlar,

Bahsettiğiniz sütunları sildirebiliriz tabiki. Ama bu sütunları silmek kodların çalışmasını hızlandırmayacaktır.
 
Selamlar,

Eğer süzme işleminde mahalle ve cadde sütunlarını sildirmek istiyorsanız. Örnek dosyadaki SÜZ kodunu aşağıdaki şekilde değiştirip deneyiniz.

Kod:
Sub SÜZ()
    Sheets("VERİLER").Select
    [A1].Select
    [A1].AutoFilter Field:=1, Criteria1:=Sheets("AKTARILAN").[A1]
    [A1].AutoFilter Field:=2, Criteria1:=">=" & CLng(CDate(Sheets("AKTARILAN").[D1])), Operator:=xlAnd, Criteria2:="<=" & CLng(CDate(Sheets("AKTARILAN").[F1]))
    Range(Selection, Selection.End(xlToRight)).Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
    Sheets("SÜZ").Select
    [A1].PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    [A1].Select
    Application.CutCopyMode = False
    Columns("B:B").NumberFormat = "m/d/yyyy"
    Columns("CL:CM").Delete
    Cells.EntireColumn.AutoFit
    Sheets("VERİLER").Select
    [A1].Select
    Selection.AutoFilter
    Sheets("AKTARILAN").Select
End Sub
 
YURTTAŞ ARKADAŞIM FORMÜLÜNLE İLGİLİ BİR SORUM OLACAK.
formülde geçen =TOPLA.ÇARPIM(--(il=$A$1);--(k=B3);--(tarih>=$D$1);--(tarih<=$F$1)) ile formülün sonuna eklediğin kk ların ne anlama geldiğini anlamadım. kopyalama yaparken bu kkkkk ları otomatik çoğalmanın kısa yolu nedir. açıklayabilirsen çok memnun kalacağım

k, kk, kkk,..... bunlar alan adlarıdır. Ekle /Ad/Tanımla'ya girerseniz görürsünüz. Tıpkı il, tarih, gibi...
 
Geri
Üst