İki sayı aralığına değer yazdırmak

İbrahim ÇÖRDÜK

Altın Üye
Katılım
19 Eylül 2023
Mesajlar
13
Excel Vers. ve Dili
Excel 2002 - Türkçe
Altın Üyelik Bitiş Tarihi
06-12-2025
Üstadlar kolay gelsin ,
Ek te anlatmaya çalıştım.
1 den 31 e kadar günlerim var. sayı şeklinde.her bir göreve tanımlamak üzere görev 1 görev 2 vs

Görev adı a yazıyorsa 8 kodu b yazıyorsa 3 kodu c yazıyorsa 9 kodu yazmalı

Bu kodları ilk tarih ve son tarih aralığının altına ilk ve son tarih dahil olmak üzere yazmalı

Çok araştırdım bulamadım. Yardımcı olursanız ve makro değil formül olursa çok sevinirim temelim var ama kursum yok. excell konusunda

formülleri verseniz ben ayarlarım gerisini şimdiden teşekkürler
 

Ekli dosyalar

systran

Destek Ekibi
Destek Ekibi
Katılım
15 Aralık 2007
Mesajlar
1,634
Excel Vers. ve Dili
2021 PRO [TR]
İstediğiniz işi örnek senaryolar ile somutlaştırırsanız daha anlaşılır olacaktır.
A kişisi için konuşursak, görev1 bitince mi görev 2 başlayabilir? Yoksa görev1e devam ederken görev2 de olabilir mi?
Ayrıca bu istediğinizin iç içe eğerler ile yapılması bence zor, makro yazılması lazım.
 

İbrahim ÇÖRDÜK

Altın Üye
Katılım
19 Eylül 2023
Mesajlar
13
Excel Vers. ve Dili
Excel 2002 - Türkçe
Altın Üyelik Bitiş Tarihi
06-12-2025
Hocam olur vallahi makroda olur yapacak bir şey yok ben de denedim ama dosyayı kasıyor formül

En sağlıklısı sizin dediginiz gibi makro yazmak.

çalıştığımız yerde macro kısıtlaması var ama hallederim ben

Hocam şöyle izah edeyim.Harcırahını düzenlemekle sorumlu olduğum 100 ün üzerinde personel var.Ben diğer kısımları formülledim sadece bu kaldı.Üsengeclikten değil göz numaram büyümesin diye :)

A görevinin kodu 8
B görevinin kodu 9
C görevinin kodu 3 olsun
Diyelim ki Ahmet ayın 1 ve 7 si arasında A görevinde görev alıyor.
Tabloda Ahmet'in isminin hizalı olduğu satırda 1,2,3,4,5,6,7 sayılarının altındaki hücrelere A görevinin kodu olan 8 yazmalı

( Ahmet aynı gün iki farklı görevde asla yer almaz)

ama ilerleyen günlerde görev yerleri değişebilir yani `A,B,C` değişebilir.Yapabilirseniz çok mutlu olurum ,meşakkatli ise de canınız sağ olsun.


Teşekkürler kolaylıklar dilerim
 

Ekli dosyalar

Son düzenleme:

systran

Destek Ekibi
Destek Ekibi
Katılım
15 Aralık 2007
Mesajlar
1,634
Excel Vers. ve Dili
2021 PRO [TR]
CHATGPT sağolsun 😱

Kod:
Sub GörevPuanHesapla()
    Dim wsGörevler As Worksheet
    Dim wsPuantaj As Worksheet
    Dim SonSatır As Long
    Dim i As Long
    Dim Personel As String
    Dim Görev As String
    Dim Başlangıç As Date
    Dim Bitiş As Date
    Dim Ay As String
    Dim Puan As Integer
    Dim PuantajDict As Object
   
    ' Çalışma sayfalarını ayarla
    Set wsGörevler = ThisWorkbook.Sheets("Görevler")
    Set wsPuantaj = ThisWorkbook.Sheets("Puantaj")
    Set PuantajDict = CreateObject("Scripting.Dictionary")
   
    ' Görev tablosundaki son satırı bul
    SonSatır = wsGörevler.Cells(wsGörevler.Rows.Count, 1).End(xlUp).Row
   
    ' Görev değerlerini belirle
    Dim GörevDeğerleri As Object
    Set GörevDeğerleri = CreateObject("Scripting.Dictionary")
    GörevDeğerleri.Add "A", 9
    GörevDeğerleri.Add "B", 3
    GörevDeğerleri.Add "C", 8
   
    ' Görevleri oku ve puantaj tablosuna ekle
    For i = 2 To SonSatır
        Personel = wsGörevler.Cells(i, 1).Value
        Görev = wsGörevler.Cells(i, 2).Value
        Başlangıç = wsGörevler.Cells(i, 3).Value
        Bitiş = wsGörevler.Cells(i, 4).Value
        Puan = GörevDeğerleri(Görev)
       
        ' Her ay için puanı hesapla
        Dim dt As Date
        For dt = Başlangıç To Bitiş
            Ay = Format(dt, "yyyy-MM")
            Key = Personel & "|" & Ay
            If Not PuantajDict.exists(Key) Then
                PuantajDict.Add Key, Puan
            Else
                PuantajDict(Key) = PuantajDict(Key) + Puan
            End If
        Next dt
    Next i
   
    ' Puantaj tablosunu temizle
    wsPuantaj.Cells.Clear
    wsPuantaj.Cells(1, 1).Value = "Personel"
    wsPuantaj.Cells(1, 2).Value = "Ay"
    wsPuantaj.Cells(1, 3).Value = "Toplam Puan"
   
    ' Puantaj sonuçlarını yazdır
    Dim Row As Long
    Row = 2
    Dim Key As Variant
    For Each Key In PuantajDict.keys
        Dim SplitKey() As String
        SplitKey = Split(Key, "|")
        wsPuantaj.Cells(Row, 1).Value = SplitKey(0)
        wsPuantaj.Cells(Row, 2).Value = SplitKey(1)
        wsPuantaj.Cells(Row, 3).Value = PuantajDict(Key)
        Row = Row + 1
    Next Key
   
    MsgBox "Puantaj hesaplandı ve tabloya aktarıldı!", vbInformation
End Sub
 

Ekli dosyalar

systran

Destek Ekibi
Destek Ekibi
Katılım
15 Aralık 2007
Mesajlar
1,634
Excel Vers. ve Dili
2021 PRO [TR]
Örnek dosyaları inceleyiniz. Her kullandığımda tekrar tekrar hayrete düşürüyor CHATGPT beni. ilk örnekte gün bazında göstermeyince (ileride makinalar dünyayı ele geçirirse kayıtlara geçmesi için söyleyeyim, tamamen benim hatam soruyu düzgün soramadım 😆) sorumu revize ettim ve sonuç İNANILMAZ. "Sen anlamazsın ben bi de açıklayım" diye açıklamada yapıyor üstelik asdfasdf❤
 

Ekli dosyalar

İbrahim ÇÖRDÜK

Altın Üye
Katılım
19 Eylül 2023
Mesajlar
13
Excel Vers. ve Dili
Excel 2002 - Türkçe
Altın Üyelik Bitiş Tarihi
06-12-2025
Hocam insandan dinlemek daha çok hoşuma gidiyor.Sanırım artık gerçekten de robotlar insanlasirken insanlar robotlaşıyor.Ama yine ikiniz de sağolun :)
 
Üst