Kategorilerin Toplamı Büyükten Küçüğe Sıralama

  • Konuyu başlatan Konuyu başlatan merakli
  • Başlangıç tarihi Başlangıç tarihi
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

Kısa Açıklama

Kategorilerin Toplamı Büyükten Küçüğe Sıralama isimli başlıkta, ilgili işlemlere dair detaylar yer almaktadır.
Excel Versiyonu
Excel 2016
Excel Sürümü
64 Bit
Excel Dili
Türkçe
Uzun bir aradan sonra Merhaba,
Örnek

Verilen iki tarih aralığındaki kategorilere ait toplamları alıp bu toplardan sıfırdan büyük değeri olan kategorileri büyükten küçüğe listeleme işlemi

e-tablo olarak eklediğim ve anlatmaya çalıştığım işlemi formül ve VBA ile nasıl yapabilirim?


soru.webp
 
@ExcelDepo
Basit örnek üzerinden gittiğimiz için orijinal dosyaya uyarlamaya çalıştım ancak soldaki tablo/çizelge bende Veri isimli diğer bir sayfada bunu fonksiyona nasıl uyarlamam gerekiyor. saat çok geç oldu ama uygun bir zamanınızda açıklamanızı rica ediyorum

Şu şekilde mi kullanmalıyım yoksa fonksiyonun içinde mi değişiklik yapmalıyız.

=ToplamFiyatKategori(Veri!B2:B48; Veri!D2:D48; Veri!C2:C48; G2; G3)
 
@merakli

Bu da alternatif olsun.

VBA tarafında boş/uygun bir MODULE içine aşağıdaki kodu yapıştırın.
Sonuç almak istediğiniz ilk hücreye = TFK( B2:D48 ; G2 ; G3 ) formülünü uygulayın.
Listeleme büyükten küçüğe olacak şekilde yapılır.

Liste veya kriter tarihler başka sayfada ise ilgili adresleri A1:B10 yerine Sayfa1!A1:B10 gibi yazabilirsiniz.
Formüldeki ilk kısım verilerin olduğu alan, ikincisi başlangıç tarihi, üçüncüsü bitiş tarihidir.

Kod:
Görüntülemek için giriş yapmanız gerekmektedir.
(21 satır)
 
@Ömer BARAN Bey Teşekkür ederim.

Office 2016 TR sürümünde bu şekilde bir sonuç veriyor.
#YOK şeklinde olanları kaldırmak için ne yapmalıyız?
@ExcelDepo'nun örneğinin bu sorunu veren ve vermeyen örneklerini karşılaştırdım.
ReDim resultArray(1 To dict.Count, 1 To 2) yerine ReDim resultArray(1 To maxRows, 1 To 2) kullanılmış
ve
For Each category In dict.keys yerine For i = i To maxRows kullanılmış.

Sizin örnekte bu şekilde bir kullanım henüz bulamadığım için değişiklikte yapamadım.

baran.webp
 
@Ömer BARAN Bey

Hoş bir durum değil ancak.
Soruyu sorarken basitleştirerek soruyoruz.
Orijinal dosyaya eklerken, o an öngöremediğimiz durumlardan dolayı, sorunlarda kaçınılmaz olabiliyor.
Burada da aynı durumu yaşadım.
Tabloda gereksiz alanları çıkarttığım için sizde buna göre kodladınız.
Ancaak orijinal dosyada bu 3 alanın aralarında farklı sütunlar olduğu için doğal olarak çalışmadı.
Bunun dışında kategori toplam miktarı büyükten küçüğe doğru değil karışık olarak gelmekte
Sizden ricam üstteki hatayı düzeltirken bu iki açıdan (sütunlar yan yana değil ve büyükten küçüğe doğru sıralama) göz önünde bulundurmanızı rica edeceğim.
 

Ekli dosyalar

@ExcelDepo
Yaramaz mı. Teşekkür ederim.
Ben sadece olayı anlama ve mantığını çözme kodlarla haşır neşir olarak kendimi ilerletme açısından uğraşıyorum.
Sizin kodu anladım.
Şimdi Ömer beyin kodunu özümseyip iki fonksiyon arasındaki yaklaşım farkını incelemek istiyorum.

Ancak bunun dışında şöyle bir problemle daha karşılaştım.
Dizi fonksiyonu birleştirilmiş hücrelerde çalışmıyor.
Bu duruma çözüm olarak en basitinden başka bir alanda çalıştırmak ve buradan verileri birleştirilmiş hücreye taşımak...
Diğer bir aklıma gelen ise SQL ile verileri çekip geçici bir alana yazdırıp sonra o verileri istenilen alana atadıktan sonra geçici alanı temizlemek...
Bunun başka bir pratik yolu var mı bilemiyorum.
Başka önerileriniz varsa paylaşırsanız memnun olurum.
 
Ben de alanlar birbirine komşu diye düşünerek kodlama yapmıştım.
Her neyse yapılacak 2 şey var:
-- Kodda mevcut yapıya göre TEK seçim yöntemine devam edip, koddaki Index sütun numaralarını değiştirmek,
-- Kodda tarih/tutar/tür bilgilerini ayrı ayrı seçilmesini sağlayacak değişiklik yapmak.
Biraz yoğunluğum olduğundan ben birinci yönteme göre kodda düzenleme yağmayı tercih ettim.


Kod:
Görüntülemek için giriş yapmanız gerekmektedir.
(21 satır)
 
Veri alanlarının bağımsız seçme esnekliği için şu kodu kullanabilirsiniz.

Formül kullanımı: =TFK( Veri!B2:B48 ; Veri!E2:E48 ; Veri!G2:G48 ; C2 ; C3 )

Kod:
Görüntülemek için giriş yapmanız gerekmektedir.
(18 satır)
 
@halily
Teşekkür ederim.
Aslında eski bir SQL ve web tasarımcı olarak (Neredeyse 1998 den beri...) Excel'de SQL kullanarak ADO ile veri alıp-vermek özel hobi/ilgi alanımdır. Bu konuda örneklerinden en çok yararlandığım excel-pratique(nokta)com PierreP56 rumuzlu biri vardı site adresi tatiak.canalblog(nokta)com belki bazı arkadaşlarda faydalanır diye yazıyorum.

Tekrar teşekkürler. ADO arşivime aldım. Ancak bu işlemi formülle de çözümüne ulaşmak istiyorum
 
Sayın @ExcelDepo
Okul müdürüyüm ve boş vakitlerimde mesai arkadaşlarımın işlerini kolaylaştırıcı excel dosyaları yaparak bu konuda kendimi geliştirmeye çalışıyorum.
Ancak temel hedefim sorduğum soruların cevabını bulup işime devam etmek olmadığı için birden fazla önerinin olmasını hedefliyorum ki birbirleriyle karşılaştırabileyim.
Şunu da itiraf edeyim @Ömer BARAN beyin kod yazımına özel bir merakım ve hayranlığım var.
Hatta onun bu forumda yazdığı tüm kodlardan kendi bilgisayarıma bir dizin açıp arşivlemeye çalıştım ama maalesef bitiremedim 9000 den fazla paylaşımı var :)

Sorduğum sorulardan aldığım cevapları hep not alıyorum belki o sorduğum soruda kullanmasam bile başka uygulamalardan ondan mutlaka faydalanıyorum.

Hatta bu forumda da şu şekilde çalışıyorum.

Arama kısmına @Ömer BARAN yazıp ReDim kelimesini aratıyorum. Ömer beyin yazdığı tüm vba içinde bu kullanımları inceliyor anlamadığım yerleri yapay zekaya örneklerle açıklamasını istiyorum ve satır satır kontrol ediyorum...

Bu başlık altında Fonksiyon ve ADO ile bu işlemi başardık ancak ben en basit yöntemi olan formüllede çözüme kavuşturulabildiğini görmek-bilmek istiyorum. Onun için orijinal dosyaya benzeyen yeni bir soru oluşturdum onunla çözüme ulaşmaya çalışacağım.

Size karşı herhangi bir tavrım ya da kastım yoktur. Verdiğiniz cevaplar ve destekler için sizlere de her zaman müteşekkirim.
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Benzer Konular Popüler İçerikler Daha Fazlası
Geri
Üst