B

Çözüldü Bugünkü tarihteki izinlileri listeleme

  • Konuyu başlatan Konuyu başlatan bgokmen
  • Başlangıç tarihi Başlangıç tarihi

bgokmen

Normal Üye
Excel Versiyonu
Excel 2016
Excel Sürümü
64 Bit
Excel Dili
Türkçe
Allah'ın selamı herkesin üzerine olsun
Hayırlı Akşamlar...

Puantaj tablomuzda tarih sütunundaki tarih ile örnek dosyadaki AO hücresindeki tarih aynı ise karşısında HT ( hafta tatili ) yazan tüm isimleri nasıl listeleyebiliriz.
Teşekkürler
 

Ekli dosyalar

Ve Aleyküm Selam, bilmukabele...

İşleminizi Makro kullanarak yapmak isterseniz, biraz eğitici olması adına ve bazı prensiplerim kapsamında dosya eklemek yerine daha zor olan yöntem ile sorunuza cevap vermek isterim.

Sonuç için adımlar:
  1. Dosyanızı F12 tuşuna basarak Farklı Kaydetme penceresini açın ve Kayıt Türü kısmından "Makro İçerebilen Excel Çalışma Kitabı (*.xlsm)" seçeneği ile kaydedin.

    1622584512352.webp


  2. Çalışma kitabınıza bir sayfa daha ekleyin.
    1622584838404.webp


  3. Alt + F11 kısayolu ile Visual Basic ekranını açın.

  4. Üst menüden Insert -> Module seçtikten sonra Modules1'e çift tıklayın ve ekranın sağ tarafına aşağıdaki kodu yapıştırın.
    1622584935812.webp

    1622585006897.webp


  5. Kod:
    Görüntülemek için giriş yapmanız gerekmektedir.
    (33 satır)

  6. Bu kodu, Visual Basic penceresi açıkken cursorun Sub ADO_Kodlama() alanında herhangi bir yerde olduğundan emin olduktan sonra, F5 tuşuna basın.
SONUÇ:

1622583805961.webp


Vereceğiniz geri bildirimlere göre hangi alanları almak istediğinizi revize ederiz.
 
Moderatörün son düzenlenenleri:
Selamlar,

Alternatif olarak
Formülle çözüm...

Dosyanızda AP4 hücresine (ya da BOŞ bir kolonda uygun bir hücreye)
DİZİ Formül olarak
Kod:
Görüntülemek için giriş yapmanız gerekmektedir.
(1 satır)
formülünü girin ve aşağıya doğru kopyalayın..

Dosyanız ektedir.. İncelersiniz..

Not : DİZİ formüllerin hücreye girişleri ENTER ile değil, CTRL+SHIFT+ENTER tuşlarının 3 üne AYNI anda basılarak yapılır. Formül doğru şekilde girildiğinde, formül otomatik olarak {...} parantezleri içerisine alınır. Formül doğru şekilde girilmediğinde ya da { } parantezleri manuel yazıldığında formül düzgün olarak çalışmayacaktır.
 

Ekli dosyalar

AO2 hücresinde yazılan TARİH için HT yazanların listesi

AO4 hücresine

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

formülünü yazın aşağıya doğru kopyalayın...

Not : Bir önceki mesajımda belirtilen Komple AY için liste de dosyada bulunmaktadır..
 

Ekli dosyalar

AO2 hücresinde yazılan TARİH için HT yazanların listesi

AO4 hücresine

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

formülünü yazın aşağıya doğru kopyalayın...

Not : Bir önceki mesajımda belirtilen Komple AY için liste de dosyada bulunmaktadır..
hocam tam istediğim gibi olmuş.. Teşekkür ederim. Hayırlı Çalışmalar...
 

Güncelleme:​

52779

Hocam ekli dosyadaki görev yerine göre (X) konulan kişileri tarihe göre dinamik bir şekilde nasıl tablo olarak gösterebiliriz.​

Örneğin görev yeri xxx olan ve karşısında x olan kişileri listeleyelim, ancak bu listedeki herhangi bir kişiye ht konulduğunda listede gözükmesin ve tablo kendisini ona göre ayarlasın.

daha önceki bir dosyada bulunan bAlan formülünü bu dosya için güncellemeye çalıştım ancak bir sonuç alamadım.

Yardımlarınız için şimdiden teşekkürler.
 
Selamlar,
Soruda eksik kısım :
1 - Belirli bir tarih için mi? Yani örneğin seçilecek / yazılacak 06.Haziran için mi?
Eğer böyleyse,
Yani 06. Haziran tarihinde, Görev yeri "abc" olanların ve HT yazmayanların listesi için
AO4 hücresine
Kod:
Görüntülemek için giriş yapmanız gerekmektedir.
(1 satır)
yazın ve aşağıya doğru kopyalayın.

Office 365 için ise
AO4 hücresine
Kod:
Görüntülemek için giriş yapmanız gerekmektedir.
(1 satır)
yazın.

2 - Komple liste için mi?
Yani herhangi bir tarih seçilmeyecek ve Örneğin 1. Haziran - 30. Haziran komple alanı mı alınacak?
Eğer böyleyse;
Yani örneğe göre, F4:AI30 alanı için, Görev Yerinde abc yazan ve F4:AI30 da HT yazmayanların listesi ise,
Öncelikle; Ay bazen 28, bazen 29, bazen 30 ve bazen 31 olduğundan; ve de belki personeller azalabilir / artabilir varsayarak
gerekli dinamik alanların ad tanımlamalarını yapalım...
Kod:
Görüntülemek için giriş yapmanız gerekmektedir.
(1 satır)
Kod:
Görüntülemek için giriş yapmanız gerekmektedir.
(1 satır)
Kod:
Görüntülemek için giriş yapmanız gerekmektedir.
(1 satır)

AO4 hücresine DİZİ formül olarak
Kod:
Görüntülemek için giriş yapmanız gerekmektedir.
(1 satır)
formülünü yazın ve aşağıya doğru kopyalayın...

Not : DİZİ formül hücreye girişi Ctrl+Shift+Enter ile yapılmalıdır.
 
Hocam ellerinize ve emeğinize sağlık çok teşekkür ederim.
Bir sorum daha olacaktı bu tür senaryoları nasıl yapabiliriz. Mantığı nedir. Ders veya çalışabileceğim bir kaynak tavsiye edebilirmisiniz.
 
Öncelikle, ben teşekkür ediyorum...
Sorunuza gelince,
Nasıl cevap verebileceğimi bilmiyorum, ama (bana göre ki, ben de öğrenmeye çalışıyorum)
*** Kendinize ilgi duyacağınız özel problemler / projeler bulun.
*** Kendiniz çözmeye çalışın...
*** Probleminize / Projenize yönelik bolca araştırma yapın internette.
*** Çözümlerinizi detaylı kontrol edin. Hatta alternatif çözümleri bulmayı deneyin...
*** Çözemeyip de araştırarak bulduğunuz çözümleri detaylı analiz edin. Ve onların da alternatiflerini yazmaya çalışın.
*** Bu işlemleri her bir probleminizde tekrar edin. tekrar ettikçe daha kısa, daha mantıklı ve Excel'in diğer yerleşik işlevlerini kullanmayı da deneyin.

Kısaca bol bol antrenman yapmalısınız...
 
herkese iyi akşamlar

Örneğin görev yeri xxx olan ve karşısında x olan kişileri listeleyelim, ancak bu listedeki herhangi bir kişiye ht konulduğunda listede gözükmesin ve tablo kendisini ona göre ayarlasın.​


daha önceki bir dosyada bulunan bAlan formülünü bu dosya için güncellemeye çalıştım ancak bir sonuç alamadım.

Yardımlarınız için şimdiden teşekkürler.
buradaki amacım örneğin x tarihinde çalışan 7 kişi, xx tarihinde çalışanlar 8 olunca tabloya satır eklemeden 8. satırı otomatik eklemek.

bayağı bir araştırma yaptım ama beceremedim.
 
Moderatörün son düzenlenenleri:
güncelleme
hocam buradaki zzz neyi ifade ediyordu... hatırlayamadımda
Selamlar,
zzzz bir sütunda METİN olarak son dolu hücrenin bulunması için kullanıldı.
Örnek
GYer : =KAYDIR('personel izin'!$E$4;;;KAÇINCI("zzzz";'personel izin'!$C$4:$C$10000);1)
Ad Tanımlaması için kullanılan formüle bakıldığında, KAÇINCI("zzzz";'personel izin'!$C$4:$C$10000) kısmında "zzzz" kullanılmakta ve C4 : C10000 aralığında METİN olarak son DOLU hücrenin Kaçıncı olduğu bulunmaktadır.
Aradan çok zaman geçtiği için dosyanızı hatırlamıyorum, ancak, varsayalım ki son dolu METİN C40 hücresi olsun... ;KAÇINCI("zzzz";'personel izin'!$C$4:$C$10000) sonucu bize 37 değerini üretecektir. Eğer C42 ye bir METİN daha yazarsak, sonuç otomatik olarak 39 olacaktır. KAYDIR işlevi ile beraber de bize dinamik alan aralığını verecektir. Böylelikle, listede satırlara veri girildikçe, formülde alan aralıklarını güncellemeye gerek kalmaması amacıyla formüllerde dinamik alan ad tanımlamaları kullanılmıştır.

11 no lu mesajda Alan ad tanımlamasına bakarsanız KAÇINCI(9^99;'personel izin'!$F$3:$AL$3) zzzz yerine 9^99 kullanılmıştır... zzzz METİN için geçerlidir... 9^99 ise SAYI için geçerli olup, satırda/sütunda SAYI olarak son DOLU hücrenin kaçıncı olduğunun hesaplanmasında kullanılmıştır.

Sorunuza gelince, daha önce söylediğim gibi dosyanızı hatırlamıyorum ve de ne istenildiğini anlamlandıramadım maalesef....
Sorunuzu örnek dokuman ile destekleyip, istenileni net açıklamanız yerinde olacaktır...
 
Anladığımı söyleyecek olursam
(Ne yapılmak istendiğini anlayamadım maalesef.. Tablolar var ama veriler yok..)
1 - Veri girişleri örneğinizdeki gibi Tablo yapısında ise, veri girdikçe, zaten, tablo girilen verileri de kapsayacak şekilde otomatik olarak genişleyecektir / uzayacaktır.
2 - Veri girişleri değil de, sadece, formül ile elde edilen sonuçların görüntülenip fazlalıkların görünmemesini istiyorsanız
a - Office 365 kullanılırsa, dinamik dizi formülleriyle DÖKÜLME li olarak formüle edilip istenilen sonuçlar elde edilebilir. Ancak, Office 365 te çalıştığından, diğer Office yüklü PC lerde çalışmayacaktır.
b - Tüm office versiyonları ile çalışması istenirse de Makro kullanılarak çözüm sağlanabilir.. Bu da beni aşacaktır...

Bence, ne yapılmak isteniyorsa, örnek dokumanınızı o yönde hazırlamalı, verileri yazmalı (hatta örneklerde uç örnekleri de vermeli, Boşluklar oluyorsa nasıl değerlendirileceğini, kaç satır veriniz olduğunu vs....) ve açıklamaları da eklemelisiniz... Ki Makro kodlaması yapacak üyelere kolaylık sağlanabilsin....
Ayrıca, bu konu zaten çözümlenmiş bir konu olduğundan yeni bir konu açmanızda büyük yarar olacaktır....
 
Selamlar,
Soruda eksik kısım :
1 - Belirli bir tarih için mi? Yani örneğin seçilecek / yazılacak 06.Haziran için mi?
Eğer böyleyse,
Yani 06. Haziran tarihinde, Görev yeri "abc" olanların ve HT yazmayanların listesi için
AO4 hücresine
Kod:
Görüntülemek için giriş yapmanız gerekmektedir.
(1 satır)
yazın ve aşağıya doğru kopyalayın.

Office 365 için ise
AO4 hücresine
Kod:
Görüntülemek için giriş yapmanız gerekmektedir.
(1 satır)
yazın.

2 - Komple liste için mi?
Yani herhangi bir tarih seçilmeyecek ve Örneğin 1. Haziran - 30. Haziran komple alanı mı alınacak?
Eğer böyleyse;
Yani örneğe göre, F4:AI30 alanı için, Görev Yerinde abc yazan ve F4:AI30 da HT yazmayanların listesi ise,
Öncelikle; Ay bazen 28, bazen 29, bazen 30 ve bazen 31 olduğundan; ve de belki personeller azalabilir / artabilir varsayarak
gerekli dinamik alanların ad tanımlamalarını yapalım...
Kod:
Görüntülemek için giriş yapmanız gerekmektedir.
(1 satır)
Kod:
Görüntülemek için giriş yapmanız gerekmektedir.
(1 satır)
Kod:
Görüntülemek için giriş yapmanız gerekmektedir.
(1 satır)

AO4 hücresine DİZİ formül olarak
Kod:
Görüntülemek için giriş yapmanız gerekmektedir.
(1 satır)
formülünü yazın ve aşağıya doğru kopyalayın...

Not : DİZİ formül hücreye girişi Ctrl+Shift+Enter ile yapılmalıdır.
Sayın 52779
11. penceredeki AD tanımlı formülleri içeren şekilde 6 numaralı penceredeki dosyayı uygulanmış olarak dosyayı paylaşabilir misiniz.
Uygulamaya çalıştım. AO4 hücresi ve devamında birşey gelmedi.
 
Sn @KMLZDMR

TOPLAMA işlevi2003 de yok... Onun yerine İNDİS(....KÜÇÜK(EĞER(...... şeklindeki DİZİ formülünü uygulamanız gerekir...

Formüllerde kullanılan Diğer işlevlerin 2003 de olup olmadıklarını da bilmiyorum...
(Her ne kadar sizde çalışmayacaksa da, Office 365 de kullanılan dinamik dizi formülleriyle çözüm de dosyada bulunmakta)

Ad Tanımlamaları kullanılarak ve de TOPLAMA işlevinin yerine üstte bahsedilen Dizi formül uyarlanmış dokuman ektedir....

Not : Bu defa olumsuz da olsa tepki vermeyi deneyiniz LUTFEN...
 

Ekli dosyalar

Üst