Çözüldü Referans Noktasız Sıralı Liste Oluşturma

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

merakli

Site Üyesi

Excel Versiyonu
Excel 2019
Excel Sürümü
64 Bit
Excel Dili
Türkçe
Merhaba arkadaşlar.

Örnek dosya ve görselle açıklamaya çalıştığım işlemi öncelikle Formülle alternatif olarak VBA ile nasıl yapabilirim?

Örnek Veri sayfasında Veri!$B$2:$B$16 satırları arasında değişken Sınıf/Şube (8/A, 8/B, 8/C, 8/D) isimleri bulunmaktadır.
Liste sayfasında statik olarak duran bu listeyi öncelikle formülle (alternatif VBA ile) öğrenme amaçlı oluşturmak istiyorum.
Şube isimleri (8/A, 8/B, 8/C, 8/D) değişken olduğu için sabit bir referans noktamız yok.
Bu durumda ne yapılabilir. İlk aklıma gelen iki yol var.
1 - Veri!$B$2:$B$16 satırları arasındaki verilerden tekrarsız bir liste yapılabilir. (8/A, 8/B, 8/C, 8/D) gibi nasıl sıraya konabilir emin değilim.
* Ancak listeler 5/A, 5/B, 5/C, 5/D, 5/E, 5/F, 6/A, 6/B, 6/C, 6/D, 6/E, 6/F, 6/G, 7/A, 7/B, 7/C, 7/D, 7/E, 8/A, 8/B, 8/C, 8/D GİBİ İLK RAKAM 5-8 arası şube harfleri ise eşit sayıda değil yani bazısı F de bazısı E de bazısı D de bitebiliyor.
2 - İlk fikirden çözüm üretilemezse formül içine süslü parantezle tanımlama yapılabilir. {8/A, 8/B, 8/C, 8/D} gibi...
Bu durumda soldaki sıralamayı bir referans noktası olmaksızın nasıl yapabilirim?
İlk önce (8/A, 8/B, 8/C, 8/D) şeklinde sıralanıp sonra bu sınıflardaki öğrenciler numarası küçük olandan büyük olana doğru sıralanması


Tüm Listeden Referans Noktasız Sıralı Liste Oluşturmak.webp
 

Ekli dosyalar

  • Tüm Listeden Referans Noktasız Sıralı Liste Oluşturmak - Örnek.xlsx
    16.6 KB · Görüntüleme: 4
Çözüm
@merakli
B sütunu için formül aşağıdaki gibi olacak.
Formüldeki;
-- KAÇINCI("ZZZ";Veri!$B:$B;1)-4 kısmında yer alan ZZZ ibaresi sınıf adları (metin) ile karşılaştırılıp alfabetik (artan) sıralama yapılması halinde en sonda yer alacak herhangi bir METİNsel ifade olabilir. Tarih alanı olsaydı 31.12.9999, sayı alanı olsaydı KUVVET(10;10) gibi BÜYÜK bir sayı yazardım.
-- Sondaki -4 ise başlık satırının satır numarası. Böylece BAŞLIK hücresinden. 1 hücre kayarak başlayıp, son dolu satır-başlık satırı ADET hücreyi içine alan bir ALAN elde edilmiş oluyor.
-- Formülün önceki halinde SATIR()-1 kısmındaki 1 sayısı ilk formül satırı için 1 sonucu almak için öyle idi.
Yeni yapıda ilk formül satırı 4 olduğu için -1...
Merhabalar Liste sayfası B2 hücresine bu formülü yazıp sağa ve aşağı sürükleyerek deneyiniz. Dizi Formülüdür.

Kod:
Görüntülemek için giriş yapmalısınız.
(1 satır)

Eğer Office 2021 yada 365 versiyonu kullansaydınız. B2 hücresine Aşağıdaki formülü yazmanız yeterliydi.

Kod:
Görüntülemek için giriş yapmalısınız.
(1 satır)
 
Sayın @Mehmet bey,
Formülünüzü şu şekilde kullandım.

C sütunu yani öğrenci numaraları kısmına dizi formülü olarak
Kod:
Görüntülemek için giriş yapmalısınız.
(1 satır)

numaraları Veri sayfasından Liste sayfasına çektim sonra bu numaraya göre diğer bilgileri
Kod:
Görüntülemek için giriş yapmalısınız.
(1 satır)
şeklinde Veri sayfasından Liste sayfasına çektim.

Veriler Liste sayfasına çekildiğinde doğru bir şekilde çekilip çekilmediği kontrol etmeden hemen görebilmek adına numaraları küçükten büyüğe doğru A, B, C ve D sınıflarında sıralamıştım.

Sonrasında formülün istenileni yapıp yapmadığını denemek amaçlı;
Örneğin BEYHAN KAYA isimli öğrencinin Veri sayfasından Sınıfını 8/A dan 8/D e çevirdim.
Bu durumda bu öğrencinin 8/D sınıfının ilk başındaki öğrenci olması gerekirdi (numarası diğer 8/D deki öğrencilere göre küçük olduğu için)
ancak bu durumda doğru bir sonuç vermedi.

Ben tam ifade edememiş olabilirim.

Liste sayfasına Veri sayfasındaki öğrencileri
Öncelikle
8/A sınıfındakileri sıralayacak (İlk önce en küçük numaradan başlayarak, numara sırasına göre...)
8/B sınıfındakileri sıralayacak (İlk önce en küçük numaradan başlayarak, numara sırasına göre...)
8/C sınıfındakileri sıralayacak (İlk önce en küçük numaradan başlayarak, numara sırasına göre...)
8/D sınıfındakileri sıralayacak (İlk önce en küçük numaradan başlayarak, numara sırasına göre...)

Screenshot_1.webp
 

Ekli dosyalar

  • Tüm Listeden Referans Noktasız Sıralı Liste Oluşturmak - Örnek.xlsx
    15.5 KB · Görüntüleme: 4
@merakli

Birinci formülü B2 hücresine, ikinci formülü A2 hücresine, üçüncü formülü C2 hücresine uygulayıp boş sonuç alana dek aşağı kopyalayın.
D ve E sütunlarındaki formülleri de =EĞER($B2="";""; mevcut formül ) şeklinde değiştirin.

Kod:
Görüntülemek için giriş yapmalısınız.
(1 satır)
Kod:
Görüntülemek için giriş yapmalısınız.
(1 satır)
Kod:
Görüntülemek için giriş yapmalısınız.
(1 satır)
 
@merakli

Birinci formülü B2 hücresine, ikinci formülü A2 hücresine, üçüncü formülü C2 hücresine uygulayıp boş sonuç alana dek aşağı kopyalayın.
D ve E sütunlarındaki formülleri de =EĞER($B2="";""; mevcut formül ) şeklinde değiştirin.

Kod:
Görüntülemek için giriş yapmalısınız.
(1 satır)
Kod:
Görüntülemek için giriş yapmalısınız.
(1 satır)
Kod:
Görüntülemek için giriş yapmalısınız.
(1 satır)

Teşekkür ederim @Ömer BARAN Bey.
🙏
 
@Ömer BARAN Bey orijinal dosyaya uygularken alt satırlarda boş satırlar vardı.
Boş satırlar ne kadarsa o sayı kadar listenin üstünde boş satır bırakıyor.
Bunu öngörememişim. Bu durumu yani boş satırları nasıl göz ardı edebiliriz?

Screenshot_2.webp


Screenshot_3.webp
 

Ekli dosyalar

  • Tüm Listeden Referans Noktasız Sıralı Liste Oluşturmak - Örnek.xlsx
    14.4 KB · Görüntüleme: 4
Yeni belgeniz ekte.

@Ömer BARAN Bey dosyayı yüklediğiniz süreden beri bununla uğraşıyorum ilk defa "ZZZ" gibi hayali bir referans noktası kullanımını gördüm başka karakterlerle de denedim ASD vb. gibi yine çalışıyordu. Sanırım en son dolu satırı buluyoruz bu şekilde.

Orijinal dosyada verilerin bulunduğu sayfa ile Listenin bulunduğu sayfanın satırları aynı değil bunun için ilk satırda veri gelmiyor. Bunu aşmak için saatlerdir kodu deniyorum ama bir türlü bu sorunu aşamadım maalesef.


Aşağıdaki görsellerde ve sizin en son gönderdiğiniz çalışan örnek dosyadaki gibi üst satırlarda başka veriler var sayfanın birinde 4. satırdan diğerinde ise 5. satırdan başladığı için aradaki 1 satırlık fark orijinal dosyada 1 satırlık veri almayan satır olarak karşıma çıkmaktadır.

ne kadar uğraşsam da o satırı çalışır hale getiremedim maalesef :(

1111.webp



222222.webp
 

Ekli dosyalar

  • Tüm Listeden Referans Noktasız Sıralı Liste Oluşturmak - Örnek (2).xlsx
    18.6 KB · Görüntüleme: 4
@merakli
B sütunu için formül aşağıdaki gibi olacak.
Formüldeki;
-- KAÇINCI("ZZZ";Veri!$B:$B;1)-4 kısmında yer alan ZZZ ibaresi sınıf adları (metin) ile karşılaştırılıp alfabetik (artan) sıralama yapılması halinde en sonda yer alacak herhangi bir METİNsel ifade olabilir. Tarih alanı olsaydı 31.12.9999, sayı alanı olsaydı KUVVET(10;10) gibi BÜYÜK bir sayı yazardım.
-- Sondaki -4 ise başlık satırının satır numarası. Böylece BAŞLIK hücresinden. 1 hücre kayarak başlayıp, son dolu satır-başlık satırı ADET hücreyi içine alan bir ALAN elde edilmiş oluyor.
-- Formülün önceki halinde SATIR()-1 kısmındaki 1 sayısı ilk formül satırı için 1 sonucu almak için öyle idi.
Yeni yapıda ilk formül satırı 4 olduğu için -1 yerine -3 yazılmalı.

Kod:
Görüntülemek için giriş yapmalısınız.
(1 satır)
 
Çözüm
@merakli
B sütunu için formül aşağıdaki gibi olacak.
Formüldeki;
-- KAÇINCI("ZZZ";Veri!$B:$B;1)-4 kısmında yer alan ZZZ ibaresi sınıf adları (metin) ile karşılaştırılıp alfabetik (artan) sıralama yapılması halinde en sonda yer alacak herhangi bir METİNsel ifade olabilir. Tarih alanı olsaydı 31.12.9999, sayı alanı olsaydı KUVVET(10;10) gibi BÜYÜK bir sayı yazardım.
-- Sondaki -4 ise başlık satırının satır numarası. Böylece BAŞLIK hücresinden. 1 hücre kayarak başlayıp, son dolu satır-başlık satırı ADET hücreyi içine alan bir ALAN elde edilmiş oluyor.
-- Formülün önceki halinde SATIR()-1 kısmındaki 1 sayısı ilk formül satırı için 1 sonucu almak için öyle idi.
Yeni yapıda ilk formül satırı 4 olduğu için -1 yerine -3 yazılmalı.

Kod:
Görüntülemek için giriş yapmalısınız.
(1 satır)

@Ömer BARAN Bey, Katkılarınız ödenmez. Çok teşekkür ederim. Allah Razı Olsun.
 
@Ömer BARAN Bey bu başlıkta son bir şey daha danışmak istiyorum

En son paylaştığınız formülde

Veri!$B:$B

sütununu sınırlandırmak istiyorum.
Veri!$B5:$B131
şeklinde yazdığımda yani ilk sayıyı 5. satırdan başlattığımda listenin en altından bu kadar sayıda ismi listeye almıyor.
Ancak
Veri!$B1:$B131
şeklinde yazdığımda liste tam olarak alınabiliyor.

Normalde mantıken Veri!$B5:$B131 şeklinde yazmam gerekiyor çünkü çekilen Veri bu satır aralıklarında.

Buna bir açıklama getirebilir misiniz neden bu şekilde olduğu konusunda


Kod:
Görüntülemek için giriş yapmalısınız.
(1 satır)
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Konuyu başlatan
Site Üyesi
Katılım
Konu Bilgi
Durum
Çözüldü 
Forum
Excel Formül Soruları
Başlangıç tarihi
Son yanıt tarihi
Cevaplar
11
Geri
Üst