Çözüldü Aynı olanları kritere uygun olanların sadece tek olarak aktarma

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

kmlzdmr

Site Üyesi
Excel Versiyonu
Excel 2016
Excel Sürümü
64 Bit
Excel Dili
Türkçe
Merhaba,
Forumda daha önceden #hakki83 isimli kullanıcı tarafından sorulmuş olan "Aynı olanları birer tane aktarma formülü" başlıklı
soru için forum yöneticisi 52779 tarafından 2. pencerede verilen harika örnekler için koşul eklenerek formül güncellemesi ihtiycı hasıl oldu.
Yapamadım...
Ekli belgedeki sayfada R sütununda Evet/Hayır M sütununda da sayısal değerler var.
A sütunundaki değerlerin yine sadece bir tanelerini R sütunun ilgili satırı "evet" olmak ve M sütunun değeri de >=1 olmak koşulları
birlikte gerçekleşen şekilde ilgili sayfadaki B,C,D,E,F sütunlarındaki formülleri bu koşulları da ekleyerek
formülleri güncellenmesine ihtiyacım var.
Not: Sayın #52779'un Ehata fonksiyonundaki formüllerini Excel2003 için Eğer(Ehatalıysa fonksiyonuna çevirdim.
Yardımınızı beklerim. (Excel2003 için gerekli)

 

Ekli dosyalar

Selamlar,
Dokumanınızdaki yapıya ve istenilen koşullara uygun olarak
Ekte
2 farklı formül ile KTF kullanarak , sırasız listeleme ve
KTF ile sıralı listeleme
yapılmış örnek vardır. İncelersiniz.

Not : KTF internet kaynaklı olup, dokumanınızdaki koşullara uygun olarak uyarlandı. Belirtmeliyim ki, benim makro bilgim maalesef çok yeterli değil...
 

Ekli dosyalar

Sayın #52779 ilginize teşekkür ederim.
Ancak, AD hatası almaktayım. tanımlı fonksiyondan mıdır bilemedim. tanımlanmış adlardan "k" için yapılmış formül olan;
=MAK(_xlfn.IFERROR(KAÇINCI("zzzzz";Sayfa1!$A$2:$A$10001);SATIR(Sayfa1!$A$2));_xlfn.IFERROR(KAÇINCI(9,9999E+307;Sayfa1!$A$2:$A$10001);SATIR(Sayfa1!$A$2)))
excelimin 2003 olması nedeni ile olabilir. bu formülü ehata fonksiyonunu eğer(ehatalıysa yapamadım. Denemem aşağıdadır.
Öncelikle bunu düzeltilebilirse diğerleri çalışabilir sanırım.
yapmaya çalıştığım aşağıdaki formül =MAK(EĞER(EHATALIYSA(KAÇINCI("zzzzz";Sayfa1!$A$2:$A$10001));SATIR(Sayfa1!$A$2);KAÇINCI("zzzzz";Sayfa1!$A$2:$A$10001));SATIR(Sayfa1!$A$2);EĞER(EHATALIYSA(KAÇINCI(9,9999E+307;Sayfa1!$A$2:$A$10001));SATIR(Sayfa1!$A$2);KAÇINCI(9,9999E+307;Sayfa1!$A$2:$A$10001));SATIR(Sayfa1!$A$2))
excel içinde çalıştı=sonuç 118 çıktı
ancak bu formülü ad tanımlamasındaki "k" alanına yapıştıramadım. kırımızı alana kadar elle yazabildim. sanırım sınırlı karakter....
=MAK(EĞER(EHATALIYSA(KAÇINCI("zzzzz";Sayfa1!$A$2:$A$10001));SATIR(Sayfa1!$A$2);KAÇINCI("zzzzz";Sayfa1!$A$2:$A$10001));SATIR(Sayfa1!$A$2);EĞER(EHATALIYSA(KAÇINCI(9,9999E+307;Sayfa1!$A$2:$A$10001));SATIR(Sayfa1!$A$2);KAÇINCI(9,9999E+307;Sayfa1!$A$2:$A$10001));SATIR(Sayfa1!$A$2))
bu durumda bu formülü nasıl çözebiliriz.
 
Selamlar,
k ad tanımlaması için verilen formüldür. EĞERHATA dan dolayı 2003 v. da çalışmaz.
Formülün anlamı, A kolonunda $A$2:$A$10001 aralığında en son veriyi bularak toplam satır adedini bulmaktır. Formül hem SAYI ve hem de METİN ifadeleri içerecek şekilde düzenlenmiştir. Bu nedenle de kolonda SAYI olmaması ya da METİN olmaması ya da HİÇ Veri bulunmaması durumlarında HATA vermemesi amacıyla EĞERHATA kullanılmıştır.
Sonuç 118 olup, A kolonunda , arada boşluklar da bulunabilmesi kaydıyla 118 satır veri var demektir.

Bunun yerine farklı formüller de yazılabilir. Örneğin
=MAK(EĞER(Sayfa1!$A$2:$A$10001<>"";SATIR(Sayfa1!$A$2:$A$10001)))-SATIR(Sayfa1!$A$2)+1

$A$2:$A$10001 aralığında Sayı - Metin ifade bulunması koşuluyla çalışır. Hiç veri yoksa -1 değerini verir. yani, En az 1 değer yazılmalı...

Diğer bir örnek ise,
=ARA(2;1/(Sayfa1!$A$2:$A$10001<>"");SATIR(Sayfa1!$A$2:$A$10001))-SATIR(Sayfa1!$A$2)+1

Herhangi birisini Formüller >>> Ad Yöneticisinden k ad tanımlaması formül bölümüne yazın..
 
Örnek dosyanın 2. versiyonu ektedir. İncelersiniz...
Öncelikle şunu belirtmeliyim ki, kullanılan formüller DİZİ formülleridir ve bu da YAVAŞ çalışmaya neden olmaktadır.

Dosyada,
1 - T kolonu tüm koşulların birarada değerlendirildiği Sart kolonu olarak planlandı.
*** koşullar bu kolonda formüle edilecek
*** bu sayede de koşulların değişiklik göstermesi durumlarında formüllerde ve KTF de değişiklik yapılmasına gerek kalmayacaktır.
Sart kolonu Sart ad tanımlamasıyla dinamik alan olarak tanımlanmış ve gerek formüllerde ve gerekse de makrolarda kullanılmıştır.
2 - 1 ve 2. Formüller Benzersizlerin listelenmesi için kullanılan GENEL formülün kriterli olarak uyarlanmış şeklidir. Bu formüller ilk örnek dosyada verilmedi.
3 - 3. ve 4. formüller ilk örnek dosyada da verilmişti.
4 - 5. ve 6. formüller ise, internet kaynaklıdır ve ENÇOKOLAN ve ENÇOKOLAN.ÇOK fonksiyonlarının kullanımıyla yapılmıştır. Bu fonksiyonlar da Excel2010 ve sonrası için geçerlidir.
5 - KTF ile sıralı / sırasız listeleme ilk örnek dosyada da verilmiştir.
6 - Makro ile alfabetik listeleme için de 2 örnek verilmiştir. Makrolar sayfanın kod bölümünde olup kodlar alıntılardan uyarlamadır.
 

Ekli dosyalar

Merhaba.

Yanlış düşünmüyorsam; ben de bir alternatif vereyim.

Formülün ilk uygulanacağı S2 hücresi seçili durumdayken
-- aşağıdaki formülü AD TANIMLAMASI kısmında KOSUL adını kullanarak uygulayın.
-- S2 hücresine de; =EĞER(EHATALIYSA(KOSUL);"";KOSUL) şeklinde formül yazıp aşağı doğru boş sonuç alıncaya kadar kopyalayın.

Formülün yavaş çalışacağını sanmıyorum açıkçası.

KOŞULLAR;
-- Tekrarsız liste oluşacak,
-- A sütunundaki boş hücreler dikkate alınmayacak,
-- M sütunu dolu olacak,
-- R sütununda EVET yazılı olacak
VBA:
You must log in to view content
(1 satır)

.
 
Sayın Ömer Baran üstadım teşekkür ederim.
Öğrenmek istediğim, yaptığınız S sütunu formülü ve "Kosul" ad tanımlama formülü dosyadaki c,d,e,f sütunlarındaki formül örneklerinin çalışmasına yardımcı formüller değil mi?
 
Sayın @KMLZDMR .

Verdiğim cevabın, Sayın @52779 'un daha önceki sorular için oluşturduğu, hepsi birbirinden güzel kurgulanmış
formüllerle / ad tanımlamalarıyla bir ilgisi yok.

Ben cevabı sadece, bu konu sayfasındaki sorunuz olan, çok koşullu listeme işlemi için olmak üzere,
dizi formülü de olmadığından (dizi formülü ad tanımlamasının içinde aslında) belgenin yavaş çalışmasına
çok fazla neden olmayacağını düşündüğüm bir cevap verdim.
Yani cevabım sadece S sütununa yöneliktir.

İşin esasına bakarsanız benim asıl tavsiyelerim;
-- çok zorunlu olmadıkça belgelerde dizi formülü yoğunluğu oluşturulmamalıdır,
-- Ms.Excel 'de sütun/satır sayısı da yeterli olduğuna göre gerekirse her bir sıralama işlemi için bir adet yardımcı sütun kullanıp,
bu yardımcı sütunda elde edilecek sıra numaralarına göre de asıl sonuç alanında basit formüllerle sonuç alınmalıdır,
-- dizi formülleri büyük veri yığınlarının herbir satırına uygulanmak için değil bir-birkaç hücrelik alanda sonuç almak için kullanılmalıdır.
Tercihlere diyecek bir şey yok, bunlar benim düşüncelerim.

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