Değere göre veri getirme

Katılım
7 Aralık 2015
Mesajlar
8
Excel Vers. ve Dili
Excel
Arkadaşlar Merhaba,

Aşağıdaki konu ile ilgili yardımlarınızı bekliyorum.
**************************************
1. Tablo
No Izin Kullanılan Tarih Departman
1 11.01.2015
1 13.06.2015
2 02.01.2015
3 03.01.2015
4 04.01.2015
4 06.06.2015
5 05.01.2015
5 01.12.2015
6 06.01.2015
7 07.01.2015
8 08.01.2015
9 09.01.2015
9 08.01.2015

No Görev Başlangıç Tarihi Görev Bitiş Tarihi Departman

1 01.01.2015 13.05.2015 S
1 13.05.2015 07.12.2015 O
2 02.01.2015 07.12.2015 I
3 01.01.2015 07.12.2015 B
4 01.01.2015 03.02.2015 ST
4 03.02.2015 07.12.2015 M
5 02.01.2015 05.01.2015 İ
5 05.01.2015 07.12.2015 Y
6 04.01.2015 07.01.2015 M
6 07.01.2015 07.12.2015 IK
7 07.01.2015 07.12.2015 B
8 06.01.2015 07.12.2015 M
9 01.01.2015 08.01.2015 STN
9 08.01.2015 07.12.2015 S

1. tablodaki kişilere ait kayıt noları ve izin kullandıkları tarihler yer alıyor. İkinci tabloda ise aynı kişilere ait 2015 yılı için görev değişikliği tablosu yer alıyor. Amacımız kişilerin izin kullandıkları dönem hangi departmanda çalıştıklarını bulmak. Yani 1. tabloda boş olan departman sütünuna 2. tablodan veri getirmek.(İngilizce excel kullanıyorum) Şimdiden teşekkür ederim.
 
Son düzenleme:

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
birinci tablonuz Tablo 1 isimli sayfada ve 2. tablonuz Tablo 2 isimli sayfada ise alağıdaki kodları bir modüle kopyalayıp deneyiniz. Sayfa adları sizin dosyanıza uymuyorsa kodda gerekli düzeltmeyi yapınız:

Kod:
Sub departman()
Set s1 = Sheets("Tablo 1")
Set s2 = Sheets("Tablo 2")

son1 = s1.Cells(Rows.Count, "B").End(3).Row
son2 = s2.Cells(Rows.Count, "B").End(3).Row

For i = 1 To son1
    For j = 1 To son2
        If s1.Cells(i, "A") = s2.Cells(j, "A") And s1.Cells(i, "B") >= s2.Cells(j, "B") And _
        s1.Cells(i, "C") <= s2.Cells(j, "C") Then
            s1.Cells(i, "C") = s2.Cells(j, "D")
        End If
    Next
Next

End Sub
 
Katılım
7 Aralık 2015
Mesajlar
8
Excel Vers. ve Dili
Excel
Merhaba,

Sorunuz net değil, örnek dosya ekleyerek açıklamanızı rica ederim.

Linki inceleyip çözümde bulabilirsiniz.


http://www.excel.web.tr/f60/vlookup-d-eyara-uygulamasi-t17226.html

.
Ömer Bey, birinci tabloyu ofiste çalışan kişiler gibi düşünebilirsiniz. Ve birinci tablodaki tarih bu kişilerin devamsızlık yaptıkları tarihler olarak belirtilmiştir. İkinci tabloda gene bu ofiste çalışan kişilerin yıl içindeki kurum içi hareketlerini göstermektedir. Örneğin; 1 sicil nolu kişi 1 Ocak ve 13 Mayıs tarihleri arasında S departmanında çalışıyormuş. Amacım, 1. tablodaki kişilerin devamsızlık yaptıkları tarihlerde hangi birimde çalıştıklarını bulmak. Buraya öyle bir formül yazmalıyım ki her kişini farklı tarihlerde yapılmış devamsızlığın hangi departmanda iken yapıldığını göstersin. Bunu countifs ile sadece bir kısmını bulabiliyorum.

Yardımlarınız için teşekkür ederim.
 
Katılım
7 Aralık 2015
Mesajlar
8
Excel Vers. ve Dili
Excel
birinci tablonuz Tablo 1 isimli sayfada ve 2. tablonuz Tablo 2 isimli sayfada ise alağıdaki kodları bir modüle kopyalayıp deneyiniz. Sayfa adları sizin dosyanıza uymuyorsa kodda gerekli düzeltmeyi yapınız:

Kod:
Sub departman()
Set s1 = Sheets("Tablo 1")
Set s2 = Sheets("Tablo 2")

son1 = s1.Cells(Rows.Count, "B").End(3).Row
son2 = s2.Cells(Rows.Count, "B").End(3).Row

For i = 1 To son1
    For j = 1 To son2
        If s1.Cells(i, "A") = s2.Cells(j, "A") And s1.Cells(i, "B") >= s2.Cells(j, "B") And _
        s1.Cells(i, "C") <= s2.Cells(j, "C") Then
            s1.Cells(i, "C") = s2.Cells(j, "D")
        End If
    Next
Next

End Sub
Yusuf44 Bey, çok teşekkür ederim cevabınız için. Acaba bunu visual basic'de mi kullanmam gerekiyor. Eğer öyleyse hiç visual basic bilgim yok :( Gene de denemeye çalışacağım. Bunun dışında, benim bunu karşılayacak bir formül yazmam mümkün mü acaba?

Çok teşekkürler,
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Bu bir makro. Dosyaya makronun nasıl eklenip çalıştırılacağıyla ilgili internette kısa bir araştırmayla sonuç alabilirsiniz. Şu anda ayrıntılı bilgi vermek için müsait değilim maalese.
 
Katılım
7 Aralık 2015
Mesajlar
8
Excel Vers. ve Dili
Excel
Bu bir makro. Dosyaya makronun nasıl eklenip çalıştırılacağıyla ilgili internette kısa bir araştırmayla sonuç alabilirsiniz. Şu anda ayrıntılı bilgi vermek için müsait değilim maalese.
Yusuf44, teşekkür ederim, macro çalıştı, ancak verileri hatalı getiriyor gibi görünüyor. Farklı aralıklarda aynı numara için aynı departmanı getirdi.
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Hatalı olan verilerin ne olması gerektiğini ve neden öyle olması gerektiğini de belirterek örnek dosyanızı yükleyin, inceleyelim.
 
Katılım
7 Aralık 2015
Mesajlar
8
Excel Vers. ve Dili
Excel
Hatalı olan verilerin ne olması gerektiğini ve neden öyle olması gerektiğini de belirterek örnek dosyanızı yükleyin, inceleyelim.
Dosya nerden yükleniyor bilmiyorum. Buarada daha önce paylaştığım datada ufak bir hata vardı o nedenle tekrar paylaşıyorum.

No Tarih Olması Gereken
1 11.01.2015 S
1 14.06.2015 O
2 02.01.2015 I
3 03.01.2015 B
4 04.01.2015 ST
4 06.06.2015 M
5 05.01.2015 İ
5 01.12.2015 Y
6 06.01.2015 M
7 07.01.2015 B
8 08.01.2015 M
9 09.01.2015 S
9 08.01.2015 STN

No Görev Başlangıç Tarihi Görev Bitiş Tarihi Departman
1 01.01.2015 13.05.2015 S
1 14.05.2015 10.12.2015 O
2 02.01.2015 10.12.2015 I
3 01.01.2015 10.12.2015 B
4 01.01.2015 03.02.2015 M
5 02.01.2015 05.01.2015 İ
5 06.01.2015 10.12.2015 Y
6 04.01.2015 07.01.2015 M
6 08.01.2015 10.12.2015 IK
7 07.01.2015 10.12.2015 B
8 06.01.2015 10.12.2015 M
9 01.01.2015 08.01.2015 STN
9 09.01.2015 10.12.2015 S

Teşekkürler
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Kodları aşağıdaki şekilde değiştirdim:

Kod:
Sub departman()
Set s1 = Sheets("Tablo 1")
Set s2 = Sheets("Tablo 2")

son1 = s1.Cells(Rows.Count, "B").End(3).Row
son2 = s2.Cells(Rows.Count, "B").End(3).Row
For i = 2 To son1
    For j = 2 To son2
        If s1.Cells(i, "A") = s2.Cells(j, "A") And s1.Cells(i, "B") >= s2.Cells(j, "B") And _
        s1.Cells(i, "B") <= s2.Cells(j, "C") Then
            s1.Cells(i, "C") = s2.Cells(j, "D")
            j = son2
        End If
    Next
Next
MsgBox ("İşlem Tamam")
End Sub
 
Katılım
7 Aralık 2015
Mesajlar
8
Excel Vers. ve Dili
Excel
Kodları aşağıdaki şekilde değiştirdim:

Kod:
Sub departman()
Set s1 = Sheets("Tablo 1")
Set s2 = Sheets("Tablo 2")

son1 = s1.Cells(Rows.Count, "B").End(3).Row
son2 = s2.Cells(Rows.Count, "B").End(3).Row
For i = 2 To son1
    For j = 2 To son2
        If s1.Cells(i, "A") = s2.Cells(j, "A") And s1.Cells(i, "B") >= s2.Cells(j, "B") And _
        s1.Cells(i, "B") <= s2.Cells(j, "C") Then
            s1.Cells(i, "C") = s2.Cells(j, "D")
            j = son2
        End If
    Next
Next
MsgBox ("İşlem Tamam")
End Sub
Elinize sağlık oldu..
 
Üst