• DİKKAT !

    Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak Dosya Yükleme tamamen ücretsizdir.

Soru rastgele seçim yaparken bazı değerlere öncelik vermek

GhostNova

Yeni Üye
Katılım
7 Mar 2025
Mesajlar
29
Aldığı beğeni
1
Excel V
Office 365 TR
Konu Sahibi
Merhaba çalışan bir kodum var bazı kısıtlara göre atama yapıyor ama sonradan farkettim ki bu atamada sürekli rastgele sayılarla atanmasından dolayı adaletsizlik oluşuyor. Örneğin bir kişi son dört seferde iki üç sefer atanmaya biliyor diğerleri sürekli atanıyor. Örnek bir excel dosyası oluşturdum orada çalışan kodum var. Güncel dosyada şuan kod önce atama yapıyor sonrasında buton yardımıyla atanmayanlarıda listeliyor aklıma gelen fikir son 4 seferde atanmayanlara öncelik verip hepsini atayıp kalan boşluklarıda eski mantıkla atama yapması. Yardımcı olacaklara şimdiden teşekkürler.
 
Merhaba.
Konuyu baştan alıp tam olarak ne yapmak istediğinizi örnek bir dosya ile pekiştirerek sorarsanız daha anlaşılır olacaktır.
Genelde yeni kod yazmak var olan kodları değiştirmekten daha kolaydır.
 
Konu Sahibi
Elimdeki kod insanları bölgeleri rastgele atıyor ama bazı şartları var o şartları sağlayabilmek için referans değerleri oluşturdum. Mesela atanacak kişi kendi bölümündeki bölgeye gidemez kendi bölümüne zaten gidemez. Bunu sağlamak için kişiye referans değeri verdim kendi bölümünü gösteriyor bölgelerede eşleşme değerleri atadım çünkü bazı bölgeler 2-3 farklı bölüm atanamaz. referans1 değeri eşleşme1-2-3-4 e eşit değilse o zaman atama yapıyor atama seçtiği hücreninde bir altına aynı şartları sağlıyorsa atama yapıyor. eğer bir alt satırı başka bir bölge var ise o zaman sadece bir kere atanıyor yani temelde istediğim herkes iki kere alt alta aynı bölgelere(j sütunu) olacak şekilde atansın. eğer bir kere atandıktan sonra alt satırdaki bölgesi başka bir bölgeye geçiş yapıyorsa sadece bir kere atanıyor ve birdaha da seçilmiyor. temelde bunu yapıyor ama bazı istisnaları var x kişisi her zaman aynı yere son üç yere atanıyor. z kişisi sadece üa olmayan yerlere atanıyor ve zyi 4 kere atamak istiyorum. Normalde herkes 2 kere farklı bölgeye geçişte bir kere atanıyor x üç kere z 4 kere her seferinde bu şartlarla atanmak zorunda(x ve z her seferinde atanıcak) zorunda. diğerlerini ise 4/5 seferde bir dinlendirmek istiyorum onun içinde son beş seferde 10 kereden fazla atandıysa onu dinledirmek için seçmeme şartı koydum. Kod temelde bunları yapıyor biraz karışık olduğu için koda eklemek istediğim şeyi yazdım sadece. ayrıca seçilmeyenleri göster makrosu ekledim ama oraya bakınca farkettim ki bazı kişiler rastgelelikten dolayı örneğin 3 atamanın ikisinde atanmamış böyle ihtimaller doğuyor amacım bunun önüne geçmek. Umarım yardımcı olabilirsiniz. Şimdiden teşekürler.
 
Elimdeki kod insanları bölgeleri rastgele atıyor ama bazı şartları var o şartları sağlayabilmek için referans değerleri oluşturdum. Mesela atanacak kişi kendi bölümündeki bölgeye gidemez kendi bölümüne zaten gidemez. Bunu sağlamak için kişiye referans değeri verdim kendi bölümünü gösteriyor bölgelerede eşleşme değerleri atadım çünkü bazı bölgeler 2-3 farklı bölüm atanamaz. referans1 değeri eşleşme1-2-3-4 e eşit değilse o zaman atama yapıyor atama seçtiği hücreninde bir altına aynı şartları sağlıyorsa atama yapıyor. eğer bir alt satırı başka bir bölge var ise o zaman sadece bir kere atanıyor yani temelde istediğim herkes iki kere alt alta aynı bölgelere(j sütunu) olacak şekilde atansın. eğer bir kere atandıktan sonra alt satırdaki bölgesi başka bir bölgeye geçiş yapıyorsa sadece bir kere atanıyor ve birdaha da seçilmiyor. temelde bunu yapıyor ama bazı istisnaları var x kişisi her zaman aynı yere son üç yere atanıyor. z kişisi sadece üa olmayan yerlere atanıyor ve zyi 4 kere atamak istiyorum. Normalde herkes 2 kere farklı bölgeye geçişte bir kere atanıyor x üç kere z 4 kere her seferinde bu şartlarla atanmak zorunda(x ve z her seferinde atanıcak) zorunda. diğerlerini ise 4/5 seferde bir dinlendirmek istiyorum onun içinde son beş seferde 10 kereden fazla atandıysa onu dinledirmek için seçmeme şartı koydum. Kod temelde bunları yapıyor biraz karışık olduğu için koda eklemek istediğim şeyi yazdım sadece. ayrıca seçilmeyenleri göster makrosu ekledim ama oraya bakınca farkettim ki bazı kişiler rastgelelikten dolayı örneğin 3 atamanın ikisinde atanmamış böyle ihtimaller doğuyor amacım bunun önüne geçmek. Umarım yardımcı olabilirsiniz. Şimdiden teşekürler.
Yaziyi görünce okuyasim gelmedi. Hocam nokta, virgül ve paragraf kullanabilirsin. Boyle okumasi işkence
 
Elimdeki kod insanları bölgeleri rastgele atıyor ama bazı şartları var o şartları sağlayabilmek için referans değerleri oluşturdum. Mesela atanacak kişi kendi bölümündeki bölgeye gidemez kendi bölümüne zaten gidemez. Bunu sağlamak için kişiye referans değeri verdim kendi bölümünü gösteriyor bölgelerede eşleşme değerleri atadım çünkü bazı bölgeler 2-3 farklı bölüm atanamaz. referans1 değeri eşleşme1-2-3-4 e eşit değilse o zaman atama yapıyor atama seçtiği hücreninde bir altına aynı şartları sağlıyorsa atama yapıyor. eğer bir alt satırı başka bir bölge var ise o zaman sadece bir kere atanıyor yani temelde istediğim herkes iki kere alt alta aynı bölgelere(j sütunu) olacak şekilde atansın. eğer bir kere atandıktan sonra alt satırdaki bölgesi başka bir bölgeye geçiş yapıyorsa sadece bir kere atanıyor ve birdaha da seçilmiyor. temelde bunu yapıyor ama bazı istisnaları var x kişisi her zaman aynı yere son üç yere atanıyor. z kişisi sadece üa olmayan yerlere atanıyor ve zyi 4 kere atamak istiyorum. Normalde herkes 2 kere farklı bölgeye geçişte bir kere atanıyor x üç kere z 4 kere her seferinde bu şartlarla atanmak zorunda(x ve z her seferinde atanıcak) zorunda. diğerlerini ise 4/5 seferde bir dinlendirmek istiyorum onun içinde son beş seferde 10 kereden fazla atandıysa onu dinledirmek için seçmeme şartı koydum. Kod temelde bunları yapıyor biraz karışık olduğu için koda eklemek istediğim şeyi yazdım sadece. ayrıca seçilmeyenleri göster makrosu ekledim ama oraya bakınca farkettim ki bazı kişiler rastgelelikten dolayı örneğin 3 atamanın ikisinde atanmamış böyle ihtimaller doğuyor amacım bunun önüne geçmek. Umarım yardımcı olabilirsiniz. Şimdiden teşekürler.
GhostNova bu kadar yazı yerine açıklayıcı örnek belge ile sormaniz daha uygun olacaktır.
 
Konu Sahibi
Nokta ve virgül ile ayrılmış zaten anlaşılan hiç bakmamışsınız..
Yine de paragraflara bölebilirim.

Elimdeki kod insanları bölgeleri rastgele atıyor ama bazı şartları var.
Mesela atanacak kişi kendi bölümündeki bölgeye gidemez kendi bölümüne zaten gidemez.
Bunu sağlamak için kişiye referans değeri verdim kendi bölümünü gösteriyor bölgelerede eşleşme değerleri atadım çünkü bazı bölgeler 2-3 farklı bölüm atanamaz.
Referans1 değeri eşleşme1-2-3-4 e eşit değilse o zaman atama yapıyor atama seçtiği hücreninde bir altına aynı şartları sağlıyorsa tekrar atama yapıyor. Eğer bir alt satırında başka bir bölge var ise o zaman sadece bir kere atanıyor yani temelde istediğim herkes iki kere alt alta aynı bölgelere(j sütunu) olacak şekilde atansın.

Eğer bir kere atandıktan sonra alt satırdaki bölgesi başka bir bölgeye geçiş yapıyorsa sadece bir kere atanıyor ve birdaha da seçilmiyor.
Temelde bunu yapıyor ama bazı istisnaları var x kişisi her zaman aynı yere son üç yere atanıyor. z kişisi sadece üa olmayan yerlere atanıyor ve zyi 4 kere atamak istiyorum.
Normalde herkes 2 kere farklı bölgeye geçişte bir kere atanıyor x üç kere z 4 kere her seferinde bu şartlarla atanmak zorunda(x ve z her seferinde atanıcak) zorunda.
Diğerlerini ise 4/5 seferde bir dinlendirmek istiyorum onun içinde son beş seferde 10 kereden fazla atandıysa onu dinledirmek için seçmeme şartı koydum.
Birde bir kişi son dört seferde aynı bölgeye atanmamalı şartı var.

Kod temelde bunları yapıyor biraz karışık olduğu için koda eklemek istediğim şeyi yazdım sadece.
Ayrıca seçilmeyenleri göster makrosu ekledim ama oraya bakınca farkettim ki bazı kişiler rastgelelikten dolayı örneğin 3 atamanın ikisinde atanmamış böyle ihtimaller doğuyor amacım bunun önüne geçmek.
 
Konu Sahibi
GhostNova bu kadar yazı yerine açıklayıcı örnek belge ile sormaniz daha uygun olacaktır.
Açıklayıcı örnek belge zaten var çalışan kod var..

Koda ekleme yapmak istediğimi söyleyince kodun genel amacı sorulmuş bende açıkladım. Zaten içinde bir sürü kıstası olan bir program kafa karıştırmamak için yazmadım istenildi diye açıkladım.

İstediğim tek değişiklik seçilmeyenler olarak listelenen yere öncelik verip ilk olarak onlar atanacak, sonra diğerleri.
 
Kodlarınız çok karışık bu kodları analiz etmek yenisini yazmaktan daha zor.
Mevcut kodları bırakın, madde madde ne yapmak istiyorsunuz onu yazın.
Merak ettim A sütunundaki formülde sabit olarak girdiğiniz kişi adları nedir.
 
Konu Sahibi
Kodlarınız çok karışık bu kodları analiz etmek yenisini yazmaktan daha zor.
Mevcut kodları bırakın, madde madde ne yapmak istiyorsunuz onu yazın.
Merak ettim A sütunundaki formülde sabit olarak girdiğiniz kişi adları nedir.
Kod karışık duruyor evet ama nedeni kendine özel farklı farklı durumları olması bir kere çalıştırmak bile çok uğraştırdı.

Kodun neler yaptığı yukarda yazıyor tek getirmek istediğim güncelleme rastgele değerleri seçip atama yaparken son 3 seferde atama yapılmayanlara(seçilmeyenler her atamanın altında listeleniyor) öncelik vermek böyle bir şey mümkün mü?

Önce seçilmeyenleri atayıp sonrasında kalan boşluklara d sütunundaki asıl değerleri atamak istedim ama excel donma yaşıyor bunun nedeninin son dolu sütunun yanındaki sütunda eğer herhangi bir yerinde bir şey yazmasından dolayı yaptığını düşünüyorum.

Mesela 3. satır son dolu sütunun bir yanındaki hücreyi eğer 3. satırı boş ise referans almak istiyorum ve atamayı o sütuna yapmak istiyorum ama eğer ki son dolu sütunun bir yanındaki sütunda 8-9. vs hücrelerde bir şey yazıyorsa yani ilk oraya (8.9. vs satır son dolu boş sütunun yanındaki sütun) atama yapıp boşlukları ona göre doldurmak istersem excel izin vermiyor kendini kapatıyor. Bunu nasıl önleyebilirim?

Yani hedef sütuna iki kere atama yapmak gibi bir şey istiyorum. İlk olarak seçilmeyenleri yani kesinlikle atamak istediklerimi atamak sonrasında kalan boş hücreler yine aynı mantıkla asıl listeden seçip atamak(kodun eski mantığı).
Tabi ki başka yolu varsa o şekilde de olur

Bu arada A sütunundaki değerlerin kod ile alakası yoktur. Dosyayı tekrardan paylaşıyorum.

Teşekkürler şimdiden.
 

Ekli dosyalar

Konu Sahibi
Bu şekilde yedek alıp dener misiniz;

HTML:
Kod:
İçeriği görebilmek için Giriş yap ya da Üye ol.
Malesef bir kere çalıştırınca sadece MAX DENEME AŞILDI ikinci kere çalıştırıncada bazı yerlere atama yaptı ama üçüncü dördüncü kerede hiç bişi yapmadı.
1747145095685.png
 
Aslında amacım sonsuz döngüye girip excelin yanıt vermemesinin önüne geçmektedir. Şu şekilde deneyebilir misiniz yedek aldıktan sonra;
HTML:
Kod:
İçeriği görebilmek için Giriş yap ya da Üye ol.
 
Konu Sahibi
Aslında amacım sonsuz döngüye girip excelin yanıt vermemesinin önüne geçmektedir. Şu şekilde deneyebilir misiniz yedek aldıktan sonra;
HTML:
Kod:
İçeriği görebilmek için Giriş yap ya da Üye ol.
Atamasını yaptı bu sefer ama amacımız olan seçilmeyenlere öncelik vermeye dikkat etmemiş. N sütununda atanmayıp yeni atamada tekrar atanmayan veriler var. Teşekkürler.
 
Şöyle dener misiniz; ben nedense yaptığım düzenlemeden ötürü (döngü olmazsa sonsuz döngüye girdiğinden excel yanıtsız kalıyor) sonuç alamadım. Farklı bir yol ile, çıkan sonucun istatistiğini de tutarak şu şekilde kodu düzenledim. Böyle kontrol edip sonucu paylaşabilir misiniz; istatistik kısmı sonrasında kaldırılabilir;

HTML:
Kod:
İçeriği görebilmek için Giriş yap ya da Üye ol.
 
Konu Sahibi
Şöyle dener misiniz; ben nedense yaptığım düzenlemeden ötürü (döngü olmazsa sonsuz döngüye girdiğinden excel yanıtsız kalıyor) sonuç alamadım. Farklı bir yol ile, çıkan sonucun istatistiğini de tutarak şu şekilde kodu düzenledim. Böyle kontrol edip sonucu paylaşabilir misiniz; istatistik kısmı sonrasında kaldırılabilir;

HTML:
Kod:
İçeriği görebilmek için Giriş yap ya da Üye ol.
Maalesef seçilmeyenlerde olup yine atama yapmadıkları var. Ayrıca son satırları karıştırdı.
 

Ekli dosyalar

  • 1747243564626.png
    1747243564626.png
    30.9 KB · Gösterim: 3
Geri
Üst