Excel Forum
ALTIN ÜYELİK Hakkında Bilgi


Geri Git   Excel Forum > EXCEL-Soruları > Fonksiyonlar
Atatürk
Şifremi Unuttum

DUYURU SİSTEMİ / REKLAM PANOSU

Fonksiyonlar Bir fonksiyonun, nasıl işlediğini veya aradığınız bir işleme uygun olup olmadığını bu başlık altında sorabilirsiniz.
Dosya ekleyebilirsiniz

Özel Arama


Yanıtla
 
Paylaş Konu Araçları Görünüm Modları
Eski 06-08-2017, 00:45   #1
Schuba
Altın Üye
 
Giriş: 27/01/2016
Şehir: İzmir
Mesaj: 64
Excel Vers. ve Dili:
Excell 2007. Türkçe
Varsayılan şarta bağlı en büyük tarih

Arkadaşlar şöyle bir formüle ihtiyacım var yapabilen varsa yardımcı olursa çok sevinirim..

Benim istediğim
(b)sütununda aynı değerlerde veya fark değerlerde veriler var (af) sütunundada ise bu verilerin giriş tarihleri var

benim istediğim ise (b) sütunundaki veriye göre
(af) sütunundaki en büyük olan tarihi bulmak

yanlız burda önemli olan bir şey var oda
=toplam.çarpım
=mak(eğer
veya herhangi bir dizi formülü
olmadan yapmak
çünkü bu formüller exceli ciddi anlamda kasıyor ve ben bu formülü yaklaşık 30.000 satıra yazcağım için excel ciddi anlamda kasacaktır

örneğin aşağıdaki formül benim istediğimi tam anlamıyla yapıyor fakat bu formül bir dizi formülü olduğu için ve hele hele 30.000
satıra yazılınca excel ciddi şekilde kasıyor.

{=mak(eğer($b$25:$b$30000=b25;$af$25:$af$30000))}

aslında =düşeyara(mak şeklinde bir formül olabilir ama bu formülde tarih değilde veriyi getiriyor yani bu formül işlemi tam tersine yapsa benim işimi görecek

bu iş formülle olmayacaksa kodlada olabilir
bu işi iyi bilen arkadaşlar kod şeklindede yazarsa sevinirim

fakat eğer kodla yazılıcaksa kodun dinamik olması gerekiyor
çünkü sürekli aynı veriye ait değer girildiğinden dolayı satırdaki en büyük tarihte değişebilir olmalı..
Schuba Çevrimdışı   Alıntı Yaparak Cevapla
Eski 06-08-2017, 02:35   #2
Ömer BARAN
Uzman
 
Giriş: 08/03/2011
Şehir: ANKARA / İSTANBUL
Mesaj: 9,086
Excel Vers. ve Dili:
Office 2013 TÜRKÇE
Varsayılan

Merhaba.

Gereksiz mesajlaşmalar yerine bence en iyisi bir örnek belge yüklemeniz.
Örnek belgenin, gerçek belgeyle aynı yapıya sahip olmasına özen gösteriniz.
(sayfa yapısı, satır/sütun yapısı, veri türü, başlık satırı konumu ve başlıklar gibi)

Alternatif cevapların gelebileceği bir soru gibi görünüyor.
.
__________________
.
☾✭ İnadına TÜRKÇE ✭☽

-- Sorunuzu, gerçek belgenizle aynı yapıda ve olması gereken sonuçların elle yazıldığı örnek belge ile destekleyiniz.
-- ALTIN ÜYELİK öneriyorum. / FORUM KURALLARInı mutlaka okuyunuz.
-- ALTIN ÜYE olmayanlar, örnek belgeyi dosya.tc, dosya.co gibi bir siteye yükleyip, belgeye erişim adresini verebilir.
-- Özel mesaj ile soru sormayınız. / Geri bildirimde bulunulmayan cevaplarımı siliyorum.
Ömer BARAN Çevrimdışı   Alıntı Yaparak Cevapla
Eski 06-08-2017, 08:23   #3
İdris SERDAR
Moderatör
 
İdris SERDAR kullanıcısının avatarı
 
Giriş: 21/10/2005
Şehir: Ankara
Mesaj: 14,329
Excel Vers. ve Dili:
Excel, 2016 - İngilizce
Varsayılan

.

Pivot Table- Özet Tablo kullanın.

.
__________________
Çalışmalarımı görmek için:

http://www.excelgurusu.com/

İdris SERDAR
İdris SERDAR Çevrimdışı   Alıntı Yaparak Cevapla
Eski 06-08-2017, 15:53   #4
Korhan Ayhan
Moderatör
 
Korhan Ayhan kullanıcısının avatarı
 
Giriş: 15/03/2005
Şehir: ANTALYA
Mesaj: 22,582
Excel Vers. ve Dili:
OFFICE 2013-2016 PRO TR
Varsayılan

Merhaba,

Alternatif olarak bu formülleri 30.000 satıra uygulamak yerine istediğiniz satıra çift tıklayınca dinamik olarak sonucu size gösterecek bir yapı kullanmanız daha akıllıca olabilir.

Sayfanızın kod bölümüne aşağıdaki kodu uygulayıp deneyiniz.

25. satır ve sonraki satırlarda hücrelere çift tıkladığınızda sonuç alabilirsiniz.

Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
Option Explicit

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Dim Formul As String
    If Intersect(Target, Range("A25:AF" & Rows.Count)) Is Nothing Then Exit Sub
    Cancel = True
    Formul = "=MAX(IF(B25:B30000=""" & Cells(Target.Row, "B") & """,AF25:AF30000))"
    MsgBox Cells(Target.Row, "B") & Chr(10) & Chr(10) & "Ürününün son alım tarihi ; " & Format(Evaluate(Formul), "dd.mm.yyyy")
End Sub
__________________
.
.
.

Soru sormadan önce forumumuzun aşağıdaki
bölümlerini incelediğinizde birçok sorunuza yanıt bulabilirsiniz.


Excel Dersanesi
Uygulamalı Excel Eğitimi
Excel İçin Örnek Uygulamalar
Video Dersane (***Altın Üyelere Özel***)

Lütfen sorularınızın çözümlendiğine dair geri dönüş mesajı yazınız...!
Lütfen yazım ve forum kurallarına uyalım...!
Lütfen sorularımızı açık ve net bir dille ifade edelim...!



FORUM KURALLARI
Korhan Ayhan Çevrimdışı   Alıntı Yaparak Cevapla
Eski 07-08-2017, 02:53   #5
Schuba
Altın Üye
 
Giriş: 27/01/2016
Şehir: İzmir
Mesaj: 64
Excel Vers. ve Dili:
Excell 2007. Türkçe
Varsayılan En büyük tarih kod

hocam öncelikle geri dönüşünüz için teşekkürler

gönderdğiniz kod gayet güzel çalışıyor ve sonucu doğru bir şekilde veriyor
fakat benim istediğim sonucu tıklayarak görmek değilde satırda dinamik olarak görmek çünkü bunları raporlamam gerekiyor filitreleyerek

konuyu daha iyi anlatabilmek için örnek bir dosya ekledim ve detaylı bir şekildede tam olarak ne istediğimi belirttim bir bakar yardımcı olursanız çok sevinirim şimdiden teşekkür ederim..

iyi çalışmalar...............
Eklenmiş Dosyalar
Dosya Türü: xlsm ENBÜYÜK TARİH ÖRNEK.xlsm (38.3 KB, 12 Görüntülenme)
Schuba Çevrimdışı   Alıntı Yaparak Cevapla
Eski 07-08-2017, 08:57   #6
asri
Altın Üye
 
Giriş: 24/04/2005
Şehir: Istanbul
Mesaj: 2,299
Excel Vers. ve Dili:
Office 2016 TR 64 Bit
Varsayılan

Alternatif;

37000 kayıt için 25 saniyede sonuç veriyor.
Daha hızlısı için farklı çalışmalar yapılabilir

Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
Option Explicit

Dim kapatilanfisler(100000, 3) As String
Dim bakimliste(100000, 2) As String
Dim cari As String
Dim sontarih, tarih, bakimtarihi As Date
Dim bakimsayisi, kapalisayisi, i, j, i1, sonsatir, tarihsatir As Long
Dim caribakim, mebran, durum As String
Dim mebranbuldu, carivar As Boolean
Dim sonsatirbakim, sonsatirkapali As Long

Sub koru()
ActiveSheet.Protect Password:="1122", DrawingObjects:=True, contents:=True, Scenarios:=True, AllowFiltering:=True, userinterfaceonly:=True
End Sub

Sub koruma()
    ActiveSheet.Unprotect "1122"
End Sub


Sub Auto_Open()
    If CDate(Cells(1, 1).Value) <> Date Then Call menu2
    Sheets("KAPATILAN FİŞLE").Select
    Call koru
    Sheets("BAKIM TAKİP").Select
    Cells(1, 1).Value = Date
    Call koru
End Sub


Sub menu2()
   Sheets("BAKIM TAKİP").Select
   Call koruma
   Application.ScreenUpdating = False
   Application.DisplayAlerts = False
    Call sifirla
    Call yukle_bakim2
    Call kontrol2
    Call sonuc_yaz2
    Call sonkontrol
   Application.ScreenUpdating = True
   Application.DisplayAlerts = True
   Sheets("KAPATILAN FİŞLER").Select
   Call koru
   Sheets("BAKIM TAKİP").Select
   Call koru
End Sub

Sub sonkontrol()
   Sheets("BAKIM TAKİP").Select
   sonsatirbakim = Cells(Rows.Count, "B").End(3).Row
   sonsatirkapali = Sheets("KAPATILAN FİŞLER").Cells(Rows.Count, "B").End(3).Row
   For i = 5 To sonsatirbakim
     cari = Cells(i, "B").Value
     durum = Cells(i, "Z").Value
     If WorksheetFunction.CountIf(Sheets("KAPATILAN FİŞLER").Range("B1:B" & sonsatirkapali), cari) > 0 And durum = "BİLİNMİYOR" Then
         Cells(i, "AF").Value = "Hatalı Bakım Türü"
     End If
   Next i
End Sub

Sub sifirla()
   For i = 1 To 100000
     bakimliste(i, 1) = ""
     bakimliste(i, 2) = ""
     
     kapatilanfisler(i, 1) = ""
     kapatilanfisler(i, 2) = ""
     kapatilanfisler(i, 3) = ""
   Next i
End Sub

Sub sonuc_yaz2()
   Sheets("BAKIM TAKİP").Select
   sonsatir = Cells(Rows.Count, "B").End(3).Row
   For i = 5 To sonsatir
     Cells(i, "Z").Value = ""
     Cells(i, "Z").Value = bakimliste(i - 4, 2)
   Next i
End Sub

Sub kontrol2()
   Sheets("KAPATILAN FİŞLER").Select
   sonsatir = Cells(Rows.Count, "B").End(3).Row
   For i1 = 1 To bakimsayisi
     caribakim = bakimliste(i1, 1)
     sontarih = CDate("01.01.1970")
     tarihsatir = 0
     mebranbuldu = False
     carivar = False
     For i = 5 To sonsatir
       cari = Cells(i, "B").Value
       tarih = CDate(Cells(i, "E").Value)
       mebran = ""
       For j = 1 To 17 Step 2
           mebran = mebran & Cells(i, 9 + j) & ","
       Next j
       If caribakim = cari And sontarih <= tarih And InStr(mebran, "MEBRAN") > 0 Then
          sontarih = tarih
          tarihsatir = i
          mebranbuldu = True
       End If
       
       If caribakim = cari And mebranbuldu = False And carivar = False Then
          sontarih = tarih
          tarihsatir = i
          carivar = True
       End If
       
     Next i
     
     If tarihsatir = 0 Then bakimliste(i1, 2) = "BİLİNMİYOR"
     
     If tarihsatir >= 1 Then
        bakimtarihi = sontarih + 540
        If bakimtarihi >= Date Then
           bakimliste(i1, 2) = "PERYODİK"
        Else
           bakimliste(i1, 2) = "GENEL"
        End If
     End If
   Next i1
End Sub

Sub yukle_bakim2()
   Sheets("BAKIM TAKİP").Select
   sonsatir = Cells(Rows.Count, "B").End(3).Row
   bakimsayisi = sonsatir - 4
   For i = 5 To sonsatir
     cari = Cells(i, "B").Value
     bakimliste(i - 4, 1) = cari
     bakimliste(i - 4, 2) = ""
   Next i
End Sub
__________________
www.asriakdeniz.com

Bu mesaj en son " 09-08-2017 " tarihinde saat 18:17 itibariyle asri tarafından düzenlenmiştir....
asri Çevrimdışı   Alıntı Yaparak Cevapla
Eski 07-08-2017, 13:47   #7
Schuba
Altın Üye
 
Giriş: 27/01/2016
Şehir: İzmir
Mesaj: 64
Excel Vers. ve Dili:
Excell 2007. Türkçe
Varsayılan Enbüyük tarih

hocam ellerinize sağlık tam istediğim gibi olmuş

fakat ben bu gönderdiğiniz kodu (ThisWorkbook) un kod bölümüne yapıştırdım
kodun çalışması için geliştirici sekmesinden makroları tıklıyıp makroların içinden (ThisWorkbook.menu) makrosunu tıklatarak çalıştırabiliyorum

bir önceki mesajımda dikkat ederseniz bu kodun çalışma kitabı açıldığında çalışsın istemiştim acaba kodu ben yanlış yeremi yapıştırdım yoksa siz bu şekildemi kodu yazdınız.

eğer bu şekilde yazdıysanız bunu çalışma kitabı ilk açıldığında çalışacak hale getirebilirmisiniz enazından işlem otomatik olmuş olur..

BU ARADA MÜŞTERİ LİSTESİNDEN KASTIM BAKIM TAKİP SAYFASIDIR SAYFANIN İSMİNİ DEĞİŞTİRMEYİ UNUTMUŞUM NEYSEKİ FARK ETMİŞSİNİZ.............
Schuba Çevrimdışı   Alıntı Yaparak Cevapla
Eski 07-08-2017, 13:57   #8
asri
Altın Üye
 
Giriş: 24/04/2005
Şehir: Istanbul
Mesaj: 2,299
Excel Vers. ve Dili:
Office 2016 TR 64 Bit
Varsayılan

Alıntı:
Schuba tarafından gönderildi Mesajı Görüntüle
hocam ellerinize sağlık tam istediğim gibi olmuş

fakat ben bu gönderdiğiniz kodu (ThisWorkbook) un kod bölümüne yapıştırdım
kodun çalışması için geliştirici sekmesinden makroları tıklıyıp makroların içinden (ThisWorkbook.menu) makrosunu tıklatarak çalıştırabiliyorum

bir önceki mesajımda dikkat ederseniz bu kodun çalışma kitabı açıldığında çalışsın istemiştim acaba kodu ben yanlış yeremi yapıştırdım yoksa siz bu şekildemi kodu yazdınız.

eğer bu şekilde yazdıysanız bunu çalışma kitabı ilk açıldığında çalışacak hale getirebilirmisiniz enazından işlem otomatik olmuş olur..

BU ARADA MÜŞTERİ LİSTESİNDEN KASTIM BAKIM TAKİP SAYFASIDIR SAYFANIN İSMİNİ DEĞİŞTİRMEYİ UNUTMUŞUM NEYSEKİ FARK ETMİŞSİNİZ.............
Kod güncellendi.
Program her açılışta A1 hücresine bakar. Tarih aynı günün tarihinden farklı ise güncelleme yapar. Aynı tarih ise işlem yapmaz.

El il güncelleme için bir form butonu ekleyip menu makrosunu butona bağlayın.
__________________
www.asriakdeniz.com
asri Çevrimdışı   Alıntı Yaparak Cevapla
Eski 07-08-2017, 16:26   #9
Schuba
Altın Üye
 
Giriş: 27/01/2016
Şehir: İzmir
Mesaj: 64
Excel Vers. ve Dili:
Excell 2007. Türkçe
Varsayılan En büyük tarih kod

hocam dediğiniz gibi kodu değiştirdim fakat çalışma kitabını açtığımda güncellemedi (bakım takip a1 ) hücresine yarının tarihini yazdım olmadı bugünün tarihini girdim gene olmadı
(a1) hücresine ne yazmam gerekiyorki açıldığında güncel
ama butonla güncellemedev sorun yok çalışıyor

birde kodda benim anlatımımdan dolayı eksik birşey farkettim
hani demiştimya 18 ay içerisinde mebran değiştiyse "PERYODİK
değişmedi ise "GENEL" ve o cariye ait herhangi bir kayıt yoksa "BİLİNMİYOR"
yazssın demiştik hatırlarsanız

fakat şöyle bir durum ouşuyor diyelimki (1 CARİ KODU İLE KAYDEDİLEN "KAMİL KARA") isimli müşteriye daha önce 2 veya 3 defa gitmişiz ama "MEBRANINI"ı değiştirmemişiz kapatılan fişler sayfasında 2 veya 3 defa farketmez kaydı var.

burda bize vermesi gereken sonucun kapatılan fişlerdeki KAMİL KARA isimli müşterinin cari koduna bakarak en eski tarihi baz alarak eyer 540 günden küçük ise "PERYODİK" 540 günden büyük ise "GENEL" sonucunu vermesi lazım
ama mevcut kodda "KAMİL KARA" isimli müşteriye ait kaç kayıt olursa olsun eğer hiç mebran değişmedi ise bize hep "BİLİNMİYOR"
sonucunu veriyor.

halbuki burda bizim almamız gereken sonuç "PERYODİK" olması gerekiyor çünkü daha önce 2 veya 3 defa gitmişiz sadece mebranını değişmemişiz

"BİLİNMİYOR " sonucunu bize sadece kapatılan fişlerde o cariye ait herhangi bir kayıt yoksa vermesi gerekiyor örnek ("YILMAZ IŞIK ") isimli müşteri gibi.

bunuda düzeltebilirseniz çok sevinirim .........

dosyayı tekrar ekliyorum kontrol edebilmeniz açısından....
Eklenmiş Dosyalar
Dosya Türü: xlsm ENBÜYÜK TARİH ÖRNEK (2).xlsm (51.2 KB, 5 Görüntülenme)
Schuba Çevrimdışı   Alıntı Yaparak Cevapla
Eski 07-08-2017, 16:40   #10
asri
Altın Üye
 
Giriş: 24/04/2005
Şehir: Istanbul
Mesaj: 2,299
Excel Vers. ve Dili:
Office 2016 TR 64 Bit
Varsayılan

Alıntı:
hocam dediğiniz gibi kodu değiştirdim fakat çalışma kitabını açtığımda güncellemedi (bakım takip a1 ) hücresine yarının tarihini yazdım olmadı bugünün tarihini girdim gene olmadı
(a1) hücresine ne yazmam gerekiyorki açıldığında güncel
ama butonla güncellemedev sorun yok çalışıyor
Kodu Module1 e yapıştırın. Thisworkbook da kalmasın.


Alıntı:
burda bize vermesi gereken sonucun kapatılan fişlerdeki KAMİL KARA isimli müşterinin cari koduna bakarak en eski tarihi baz alarak eyer 540 günden küçük ise "PERYODİK" 540 günden büyük ise "GENEL" sonucunu vermesi lazım
Bu durumda mebran artık dikkate alınmayacak anladığım kadarı ile ,
540 güne göre genel yada peryodik olup olmadığı belirlenecek. Doğru mudur?
__________________
www.asriakdeniz.com
asri Çevrimdışı   Alıntı Yaparak Cevapla
Yanıtla


Konu Araçları
Görünüm Modları

Gönderme Kuralları
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Açık
SimgelerAçık
[IMG] kodu Açık
HTML kodu Kapalı


Saat 18:01


Bu forum Elit NET - www.elitnet.com.tr tarafından sunulmaktadır.

Excel Eğitimi - Mobil Uygulama - Çorlu - Çorlu Web Tasarım - Tarot Falı - invest in turkey - Lingerie - Dyeing Machine - Karton Bardak- Çorlu Özel Eğitim- Site Yönetimi- Led Aydınlatma- Pronet Tekirdağ- Çorlu Kamera- Pronet Edirne- Pronet Kırklareli- Pronet Çerkezköy- Pronet Çorlu- Pronet Lüleburgaz- Pronet Keşan- Çorlu Araç Takip- Çorlu Su Arıtma- Boru Profil- Gebze Emlak- Beylikdüzü Temizlik- İstanbul Burun Estetiği- Bakır Sülfat- Rampa- Rotary- Çorlu İnternet Sitesi- youngblood- Çorlu Palet- Çerkezköy Palet-
Powered by vBulletin Version 3.7.2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Advertisement System V2.6 By   Branden