• DİKKAT

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

sıralı listede formül hatası (eğerhata,rank,toplaçarpım,eğer)

Katılım
15 Mayıs 2015
Mesajlar
76
Excel Vers. ve Dili
2013 türkçe
Merhaba;

Data1 sayfasındaki verilere göre sıralama yapan bir dosyam var.
"Mimarsinan" sayfasında "adsoyad","servis","durak","saat" sütunlarında saatlere göre sıralama yapmak istiyorum fakat formülde çözemediğim bir hatadan dolayı istediğim sıralamayı yapamıyorum. aynı saatte binen kişiler olduğunda ölçüt olarak adının baş harfi ikinci kriter olsun istemiştim, sıkıntı da buradan çıkıyor galiba. ("G" sütunu)
yapmak istediğim liste de "Mimarsinan1" listesi gibidir.

düzeltmeme yardımcı olursanız sevinirim. örneğim ektedir.
(B:H sütunları normalde gizlidir.)
 

Ekli dosyalar

Merhaba.
Ekli belgedeki BARAN adlı sayfaya bakınız.

BARAN adlı sayfada L1 hücresini değiştirerek sonucu gözlemleyiniz.

NOT: Ekteki belgeyi daha önce indirmişseniz, tekrar kontrol ediniz, eki yeniledim.
.
 

Ekli dosyalar

Son düzenleme:
Merhaba.
Ekli belgedeki BARAN adlı sayfaya bakınız.

BARAN adlı sayfada L1 hücresini değiştirerek sonucu gözlemleyiniz.

NOT: Ekteki belgeyi daha önce indirmişseniz, tekrar kontrol ediniz, eki yeniledim.
.

öncelikle ilginize teşekkür ederim. ama siz de benimle aynı hatayı almışsınız. sıralama saate göre artan olmamış. resimde kırmızı çerçeve içine aldım. sizdeki örnekten de kontrol edebilirsiniz.

vRE9nz.jpg
 
Merhaba,

Bu tarz işlemler makro ile daha iyidir.

Ekteki örneği inceleyiniz.

Kod:
Sub denenememm()

Sheets("BARAN").Range("A2:D10000").ClearContents

Set con = VBA.CreateObject("adodb.Connection")

con.Open "provider=microsoft.ace.oledb.12.0;data source=" & _
ThisWorkbook.FullName & ";extended properties=""Excel 12.0;hdr=yes"""

sorgu = "select [ad soyad],[SERVİS],[durak],saat from [data1$] where [SERVİS]= '" & Sheets("BARAN").Range("F1") & "' order by saat"

Set rs = con.Execute(sorgu)

Range("A2").CopyFromRecordset rs

Columns("d").NumberFormat = "hh:mm:ss"

End Sub
 

Ekli dosyalar

Merhaba,

Bu tarz işlemler makro ile daha iyidir.

Ekteki örneği inceleyiniz.

Kod:
Sub denenememm()

Sheets("BARAN").Range("A2:D10000").ClearContents

Set con = VBA.CreateObject("adodb.Connection")

con.Open "provider=microsoft.ace.oledb.12.0;data source=" & _
ThisWorkbook.FullName & ";extended properties=""Excel 12.0;hdr=yes"""

sorgu = "select [ad soyad],[SERVİS],[durak],saat from [data1$] where [SERVİS]= '" & Sheets("BARAN").Range("F1") & "' order by saat"

Set rs = con.Execute(sorgu)

Range("A2").CopyFromRecordset rs

Columns("d").NumberFormat = "hh:mm:ss"

End Sub

sayın kuvari;
örneğiniz gerçekten çok başarılı ve amacına hizmet ediyor. eğer formüllü bir örnek gelmezse kesinlikle kullanacağım.
ama nedendir bilinmez excel'de formülle çalışmayı daha çok seviyorum :)
ellerinize sağlık çok teşekkür ederim vakit ayırdığınız için.
 
formül nasıl uygulanacak

ÖMER üstad,
BARAN isimli sayfada b2 hücresindeki
_xlfn.IFERROR(İNDİS(DATA1!$B$1:$B$72;KAÇINCI($L$1&" "&SATIR()-1;DATA1!$G$1:$G$72;0);1);"")

formülü ofice2003 deki halini yazabilir misiniz.
 
2003 versiyonu için B2 hücresindeki formül:
Kod:
=EĞER(EHATALIYSA(KAÇINCI($L$1&" "&SATIR()-1;DATA1!$G$1:$G$72;0));"";(İNDİS(DATA1!$B$1:$B$72;KAÇINCI($L$1&" "&SATIR()-1;DATA1!$G$1:$G$72;0);1)))
 
öncelikle ilginize teşekkür ederim. ama siz de benimle aynı hatayı almışsınız. sıralama saate göre artan olmamış. resimde kırmızı çerçeve içine aldım. sizdeki örnekten de kontrol edebilirsiniz.

F2 hücresindeki formülü aşağıdaki ile değiştirip, aşağı doğru kopyalayın.
Kod:
=EĞER(E2="";"";[B][COLOR="red"]E2+[/COLOR][/B](SATIR()/[B][COLOR="Red"]10000[/COLOR][/B]))
 
Son düzenleme:
BARAN sayfasını ofice2003 olarak formül yapılması

ÖMER üstadım
BARAN sayfası formüllerindeki _xlfn.IFERROR olanları ofice 2003 olarak formül yapılması mümkün mü ? diğer sütunlarda da _xlfn.IFERROR var...

ayrıcaf2 hücresine =EĞER(E2="";"";E2+(SATIR()/10000)) değiştirdim.ama hata verdi...
teşekkür ederim.
 
ömer bey çok teşekkür ederim düzeldi. bir "0" nelere kaadir :) çok sağolun.


Aslında bölen yerine hangi sayı yazılması gerektiğini araştırmanızı öneririm.
Ben 10.000 yazdım (fazla aslında) ve sizin işinizi görecek bir sayı idi bunun yerine örneğin listeniz 10 değerden mi oluşuyor, 1000 değerden mi durumunuda gözönüne alarak karar vermek lazım, belki formülü biraz daha karmaşıklaştırıp listedeki veri sayısına bağlı formül de oluşturulabilirdi.
Amaç: Listedeki eşit değerler arasındaki eşitliği bozmak,
-- Formülde + yazdığınızda durum ne olur?
-- Formülde + yerine - yazılması neyi değiştirirdi,
-- 10.000 yerine tam doğru sayı ne olmalı
gibi konuları belge üzerinde denemeler yaparak araştırmanızı öneririm.
 
Geri
Üst