Çözüldü Birden Çok Kritere Göre İşlem Yapma

  • Konuyu başlatan Konuyu başlatan ycicek
  • Başlangıç tarihi Başlangıç tarihi
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

ycicek

Site Üyesi
Excel Versiyonu
Excel 2016
Excel Sürümü
64 Bit
Excel Dili
Türkçe
Merhaba Üstadlarım,
Yine ben 🥺 Yine karmaşık sorularım var. İnşaallah başlığı düzgün atmışımdır.

Ekli belgemizde Aylık Vardiya Listesi yapmaya çalıştım. Ayın ilk günü bir önceki ayın son günü vardiyası neyse ona göre manuel olarak girilmesi ve akabinde diğer 29 günün verisinin ilk gün verisine göre gelmesini istiyorum. Bunu formüller ile yapabilir miyiz?

Sorunun etraflıca anlaşılabilmesi için belgenin içindeki açıklamayı okumak gerekiyor. Örnek olması açısında bir de vardiya listesi ekliyorum.
Not: Açıklama Personel Listesi Sayfasında.

Şimdiden teşekkür ediyorum.

Saygılarımla
Yasin ÇİÇEK
 

Ekli dosyalar

Çözüm
Sayın @ycicek .

D14'e uygulayıp sağa ve aşağı doğru kopyalacağınız formül olarak aşağıdaki formülü oluşturdum.
O2 'deki tarih yılın ilk haftasındaki bir gün olduğunda, B14:B19 arasına yazılan vardiya türüne göre sonuç verir ve
izleyen tarihlerde her kişinin kendi hafta tatili gününde vardiya türü, 5'inci satırdaki seçime göre her hafta değiştirilir.

Belgenizde mevcut formüllerde kullanılan 1.000.000 satır / 6-7 sütunluk alan başvurularının yerine AD TANIMLAMALARI ekledim.
Mevcut formüllerinizi incelemedim,
sadece alan başvurularını DİNAMİK yapıya kavuşturdum ve sütun adına göre adlandırdım (PL_B, PL_C gibi sayfa adı ve sütun adı şeklinde).
Mevcut formüllerinizi de buna göre güncelledim.

Sürpriz olarak da eklediğim...
Eyvallah.

Esas olarak emekliyim, Ms.Excel özel zevkim. Gece - gündüz işi biraz karışık, fazla uykuyu sevmem.
Forumumuzun yeni olması dolayısıyla da 7/24 misali buralardayım (öğleden önce pek ilgilenemiyorum).

Memnuniyetinizi, etrafınızdaki M.Excel kullanıcılarını forumumuzdan haberdar ederek,
onların da üye olmalarını tavsiye ederek göstermeniz her zaman ilk tercihimiz.

Biz diyoruz ki; siz hayal edin, üzerinde düşünelim, bilgi/tecrübenin yettiği kadar da çözüm üretelim.

İyi çalışmalar dilerim.

.
 
Tamam sanırım.
Ne demişlerdi DEMOKRASİDE ÇARELER TÜKENMEZ.

-- AD TANIMLAMAsı üzerinden hücreye =BRN şeklindeki formülü uyguluyorsanız, AD TANIMLAMA kısmındaki formülü,
-- Bu AD TANIMLAMASInı değil de doğrudan formülü hücreye uygulayarak kullanıyorsanız da D14'deki formülü
aşağıdakiyle değiştirip sağa ve aşağı doğru kopyalayın.

Böylece süreklilik olayı TAM ve KESİN olarak çözülmüş oluyor diye düşünüyorum.
Size düşen sadece, kişilerin başlangıç vardiya harfini yazmak.

VBA:
You must log in to view content
(6 satır)

.

@Ömer BARAN Üstadım Hayırlı geceler. Son formülden sonra İzin girişi yaparak deneme yaptım. İzin girdiğimizde #YOK hatası alıyorum.
 
Sayın @ycicek .

Vardiya sayfasındaki personel bilgileri için 6 satırlık yapı hep sabit midir?
Belgedeki sorunun öngöremedik. Demekki veriyi soldan almak doğru değilmiş.
Başlangıç gününden sonraki 8'inci günden itibaren 7 sütun soldan vardiya bilgisi almak doğru yöntem değilmiş demekki.
Bir sütunda vardiya bilgisi dışında bir bilgi (Yİ, R gibi) olduğunda bu sütundan 7 sonrakinde hatalı sonuç alınıyor durumda.

Formül üzerinde düşüneyim, hallederiz inşallah. En kötü olasılık, yardımcı bir alan kullanarak sorunun etrafından dolaşılabilir.
Personel sayısını, yardımcı alan kullanmak gerekirse diye sordum.

.
 
Üstadım bazı noktalarda 4 personel bazılarında 5 bazılarında 6 personel olabilmekte. Genel de 4 personel var.

4 personel olduğunda A ve D İzin günleri haricinde aynı vardiyada 2 kişi çalışıyor.
5 personel olduğunda B ve E İzin günleri haricinde aynı vardiyada 2 kişi çalışıyor.
6 personel olduğunda C ve F İzin günleri haricinde aynı vardiyada 2 kişi çalışıyor.
 
Sayın @ycicek .

BRN ismi kullanılarak oluşturulan AD TANIMLAMASIna ait formülünü aşağıdakiyle değiştirip;
-- Personel Listesi sayfasına, Vardiya sayfasındaki tarih aralığına denk gelecek şekilde S, Yİ, R gibi sonuçlar doğuracak tarihler yazarak,
-- Vardiya sayfası O2 hücrsindeki tarihi, tabloda yıl değişimi sonucunu doğuracak başlangıç tarihleri yazarak
denemeler yapın.

Bir de ilave not: vardiya çizelgenizi her zaman ayın 15'i ile bir sonraki ayın 14'ü arası için hazırlıyorsanız;
-- D14 hücresindeki formülü =EĞER(SÜTUN()-4>=GÜN(SERİAY($O$2;0));"";$O$2+SÜTUN()-4) olarak değiştirip sağa doğru kopyalayın,
-- aşağıdaki formülün ilk satırını =EĞER(YADA($C16="";D$14="");""; olarak değiştirin.
Böylece sağ tarafta ayın 14'ünden sonraki bir tarih oluşmaz ve tarihin oluşmadığı sütunlarda da formül sonucu BOŞ olur.

Ekteki belgede işlemler uygulandı. Üst taraftaki değer değiştirme düğmesiyle ay değişimi yaparak sonuçları kontrol edersiniz.
.
VBA:
You must log in to view content
(6 satır)


.
 

Ekli dosyalar

Sayın @ycicek .

BRN ismi kullanılarak oluşturulan AD TANIMLAMASIna ait formülünü aşağıdakiyle değiştirip;
-- Personel Listesi sayfasına, Vardiya sayfasındaki tarih aralığına denk gelecek şekilde S, Yİ, R gibi sonuçlar doğuracak tarihler yazarak,
-- Vardiya sayfası O2 hücrsindeki tarihi, tabloda yıl değişimi sonucunu doğuracak başlangıç tarihleri yazarak
denemeler yapın.

Bir de ilave not: vardiya çizelgenizi her zaman ayın 15'i ile bir sonraki ayın 14'ü arası için hazırlıyorsanız;
-- D14 hücresindeki formülü =EĞER(SÜTUN()-4>=GÜN(SERİAY($O$2;0));"";$O$2+SÜTUN()-4) olarak değiştirip sağa doğru kopyalayın,
-- aşağıdaki formülün ilk satırını =EĞER(YADA($C16="";D$14="");""; olarak değiştirin.
Böylece sağ tarafta ayın 14'ünden sonraki bir tarih oluşmaz ve tarihin oluşmadığı sütunlarda da formül sonucu BOŞ olur.

Ekteki belgede işlemler uygulandı. Üst taraftaki değer değiştirme düğmesiyle ay değişimi yaparak sonuçları kontrol edersiniz.
.
VBA:
You must log in to view content
(6 satır)


.

Bir de ilave not: vardiya çizelgenizi her zaman ayın 15'i ile bir sonraki ayın 14'ü arası için hazırlıyorsanız;

Evet Hocam 15-14 arası formülü verdiğiniz gibi düzelttim. Buna göre denemeler de yaptım kusursuz çalışıyor. Tek problem tarih kısmına 15.12.2020 yazdığımda 1.1.2021'e geldiğinde vardiya düzeni bozuluyor.
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Üst