Çözüldü Formül/Makro Çözüm Talebi

Bu sorun verilen destek sayesinde çözüme ulaştırılmıştır.
Durum
Konu Çözümlendiği İçin Kapatılmıştır.

hhmercan

Yeni Üye
Kullanıcı Bilgileri
Katılım
11 Eyl 2021
Mesajlar
29
Aldığı beğeni
7
Excel Versiyonu
Office 365 TR
Konuyu Başlatan
Merhabalar,
Excel ile alakalı bir konuda desteğinize ihtiyacım var. Zorluğu kolaylığı konusunda bir fikrim yok ama biraz uğraştıabileceğini düşündüğüm için hakkını vermek istedim. Bu sebeple başlığa ücretli ibaresi ekledim. Çok uzatmadan konuya geçeyim.

4 sekmeli 1 excel dosyam var. Bunların ilk 3 tanesinin içerik yapısı aynı.
4. sü ise bu 3 sayfaya veri çekeceğim yahut değerler üretileceği zaman ihtiyaç duyulan ayar sayfası.
Şöyle resim olarak da ileteyim.

6cajn4q.jpg



=====



4begpr3.jpg



Renklendirmeleri olay karışmaması için yaptım. Normalde renkler yok.

Amacım; ayarlar sayfasında bulunan sayı aralığa göre "BT ID" sütununa rastgele sayı üretmek. Yani örneğin şuan ki değer 1 ile 33 arasında.
BT sütununa ait hücrelerde; 1 ile 33 arasında benzersiz değerler üretmek istiyorum.
Tabi sizlere sormak istediğim bu değil.

Grup ID ve MESAJ ID bölümleri, üretilecek olan değerlere bazı şartlar getiriyor.

Benim yapmak istediğim şey şu;
Sistem random sayı üretmek için sırasıyla satırları gezecek ve belirtilen aralıkta sayılar üretecek, fakat bunu yaparken,
EĞER aynı GRUP ID'sine sahip olan satırlar içersinde, MESAJ ID'si eşit olan hücreler varsa, bunlara tanımlanacak olan sayı aynı olsun.
Bunu da yaparken sadece aynı grupta olan hücrelerde bu durum geçerli olacak. Grup 1'de olan mesaj id'lerini eşit verecek, Grup 2 ye geçtiğinde yine aynı şey söz konusu ise onun ilk grup ile alakası olmayacak. Aynı şey o grup içinde bağımsız olarak yapılacak.

Görselden net örnek verecek olursak;

6cajn4q.jpg


Böyle bir tablomuz var. Amacımız BT ID sütununa ayarlarda belirtilen aralıkta(1-33) rastgele tam sayılar üretmek.

Ancak Grup ID'si 1 olan hücreler içerisinde; 2. ve 8. satırın mesaj id'leri birbirine eşit. Sayı üretirken 2. ve 8. satırların BT ID'leri de eşit olmalı. Diğer gruplarda EĞER MESAJ ID'leri aynı olan hücreler varsa, burayla hiç bir bağı yok. Onlarda kendi grubu içerisinde ki eşit olan mesaj id'lere göre BT ID'lerini ayarlayacak. Bu gruptakilerle eşit olmayacak.

Oluşturulan BT ID'lere karşılık gelen İsim/Soyisimler; "Ayarlar" sekmesinde belirtilmiş durumda. İsim/Soyisim sütünunu da buna göre otomatik dolduracak.

Devam ediyoruz;

Grup ID'si 2 olan satırlar içerisinde de MESAJ ID'leri eşit olan hücreler var. 11 ile 16. satırlar ve 13 ile 15. satırların MESAJ ID'leri eşit.
O zaman 11 ve 18. satırda ki BT ID hücrelerine üretilen sayılar eşit olmak durumunda. Aynı şekilde 13 ve 15. satırdaki BT ID hücreleri de eşit olmak durumunda.
Bu gruptaki BT ID leri ile grup 1'de ki veya diğer gruplardaki BT ID'lerin hiç bir bağlantısı bulunmuyor. Her grubun kendi içerisinde bu işlemi yapması gerekiyor.

Oluşturulan BT ID'lere karşılık gelen İsim/Soyisimler; "Ayarlar" sekmesinde belirtilmiş durumda. İsim/Soyisim sütünunu da buna göre otomatik dolduracak.

Bu işlemler yapıldıktan sonra ortaya çıkan sonuç şu şekilde olacak;

3wnlzsb.jpg



2. konu ise; mesaj id sütununda gördüğünüz gibi birde xx, yy, zz gibi harfler var. Bunların eşi yok. Bu harfleri kullanmaktaki amacım; aynı satırda bulunan mesajlar sütununa, bazen standart cevaplar verilebilecek içerikler gelebiliyor. Böyle klasik mesajlar olduğunda onun cevabı da klasik olacağı için otomatik olarak tabloya ekletmek istiyorum. Ben şuan tabloyu uzatmamak için çok fazla yazmadım ama bu tür değişkenlerden çok fazla var.

Yapmak istediğim şey şu;
Sistem, ayarlar sekmesindeki "ön tanımlı değerler" bölümünde belirtilen değişkenlerin hepsini tek tek kontrol edecek.
Bulduğu zaman o satırın altına bir SATIR daha ekleyecek.
Bu yeni satırın;
- GRUP ID'sini; üst satırdaki ile ile aynı yapacak,
- BT ID'sini; Ayarlarda bulunan aralık kısmına göre rastgele üretecek. Yani şuan ki örnekte, 1 ile 33 arasında.
- Ürettikten sonra İsim/Soyisim bölümünü BT ID'ye karşılık gelen değerle dolduracak,
- Mesaj bölümünü ise yine ayarlarda bulunan "Ön Tanımlı Değerler" bölümünde ona karşılık gelen değer neyse ona göre dolduracak.

Olay bu şekilde tamamlanıyor. Hatamız olduysa kusura bakmayın.
 
Çözüm
iki koldan bu konuya uğraşıyoruz abey.Ben yapamazsam bile üstad halleder :)
Sanıyorum şimdi sadece 3 satır arka arkaya gelmeme olayı kaldı doğru ise.

C#:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.
Durum
Konu Çözümlendiği İçin Kapatılmıştır.

Konuyu okuyanlar

Üst