Çö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.

Refaz

Destek Ekibi
Kullanıcı Bilgileri
Katılım
11 Ağu 2021
Mesajlar
4,168
Çözümler
496
Aldığı beğeni
3,908
Excel Versiyonu
Office 2021 TR
Aslında kilitlenmemesi gerek.
Gifteki gibi ilgiliyere kırmızı işareti ekletip çalıştırın.
Oraya kadar hızlımı yavaşmı çalışacak.


eee.gif
 

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
Aslında kilitlenmemesi gerek.
Gifteki gibi ilgiliyere kırmızı işareti ekletip çalıştırın.
Oraya kadar hızlımı yavaşmı çalışacak.


Ekli dosyayı görüntüle 2784
Hızdan kasıt tam olarak ne bilmiyorum ama o satıra kırmızı işareti koyup oynattığımda tıklar tıklama o hücreyi direkt sarı olarak seçiyor.
 

Refaz

Destek Ekibi
Kullanıcı Bilgileri
Katılım
11 Ağu 2021
Mesajlar
4,168
Çözümler
496
Aldığı beğeni
3,908
Excel Versiyonu
Office 2021 TR
Sarıya hemen geçiyorsa sorun SATIR ekleme kodlarjna olabilir diye gif eklemiştim denemeniz için.
Donan şekilde eklerseniz bakabiliriz neden?
 

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
Sarıya hemen geçiyorsa sorun SATIR ekleme kodlarjna olabilir diye gif eklemiştim denemeniz için.
Donan şekilde eklerseniz bakabiliriz neden?
şöyle bende kayda aldım. donduktan sonra hiç bir şey yapamıyorum.
 

Ekli dosyalar

  • 2021-09-12 00-24-45.gif
    2021-09-12 00-24-45.gif
    823.8 KB · Gösterim: 4

Refaz

Destek Ekibi
Kullanıcı Bilgileri
Katılım
11 Ağu 2021
Mesajlar
4,168
Çözümler
496
Aldığı beğeni
3,908
Excel Versiyonu
Office 2021 TR
Abey C sütununa 1 den 33 e kadar tekrarsız veri geleceğinden donuyor.
Yani Arşiv satı 55 satırlık.33 adet nasıl tekrarsız olacak bundan dolayı kısır döngüye giriyor,33 yerine 100 yapıp deneyin birde.
 

Refaz

Destek Ekibi
Kullanıcı Bilgileri
Katılım
11 Ağu 2021
Mesajlar
4,168
Çözümler
496
Aldığı beğeni
3,908
Excel Versiyonu
Office 2021 TR
Kodu böyle kullanırsanız mesaj verir kısır döngüye girmez.

Kod:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.
 

Refaz

Destek Ekibi
Kullanıcı Bilgileri
Katılım
11 Ağu 2021
Mesajlar
4,168
Çözümler
496
Aldığı beğeni
3,908
Excel Versiyonu
Office 2021 TR
Kodu biraz daha ayarlayıp 2 seçenekli eklerim dosya.
 

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
Kodu biraz daha ayarlayıp 2 seçenekli eklerim dosya.
Abey C sütununa 1 den 33 e kadar tekrarsız veri geleceğinden donuyor.
Yani Arşiv satı 55 satırlık.33 adet nasıl tekrarsız olacak bundan dolayı kısır döngüye giriyor,33 yerine 100 yapıp deneyin birde.

Şimdi benim asıl dosyam 50.000 SATIR olacak. Ve ayarlardaki aralık daima bu SATIR sayısından düşük olacak.
O yüzden 1 kez değer ürettikten sonra diğer satırlarda da yeniden 1 le 33 arasında sayı üretmesi gerekiyor normalde.
Yani 50.000 SATIR bitene kadar 1 le 33 arasında veya kaç yazdıysak o aralıkta sürekli sayı üretecek.
 

Artemis

Destek Ekibi
Kullanıcı Bilgileri
Katılım
7 Mar 2021
Mesajlar
247
Çözümler
54
Aldığı beğeni
334
Excel Versiyonu
Office 2013 TR
Ekde ki dosyayı deneyin ben formülle yaptım vba tabanlı olarak da yapılabilir..
 

Ekli dosyalar

  • Örnek DB.xlsx
    17.6 KB · Gösterim: 3

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
Ekde ki dosyayı deneyin ben formülle yaptım vba tabanlı olarak da yapılabilir..
Hocam ilk kısım için ayarlamışsınız sanırım. Çok teşekkür ederim. O kısmı formülle halledebildik ama 2. kısım yani SATIR ekleme vs. kısmında ufak bir sorunumuz var şuan. İlgi ve desteğiniz için ayrıca teşekkür ederim.
 

Refaz

Destek Ekibi
Kullanıcı Bilgileri
Katılım
11 Ağu 2021
Mesajlar
4,168
Çözümler
496
Aldığı beğeni
3,908
Excel Versiyonu
Office 2021 TR
Abey 2 kısmıda hallettim sanırım.
Öncekilerinde SATIR ekleyince benzersiz olmuyordu bazıları onlar düzeltildi.
Dosyanın birinde Ayar sayfası B5 dinamik oldu yani son SATIR ne ise onu alıyor bu sayede küçük olmuyor ve hata olmuyor.
Diğeri ise normal Ayar B5 de ne varsa ona göre ve son SATIR nodan küçükse uyarı verip işlemi sonlandırıyor.
 

Ekli dosyalar

  • Örnek DB Test 2 Normal.7z
    30.4 KB · Gösterim: 3
  • Örnek DB Test1 Dinamik random.7z
    30.6 KB · Gösterim: 4

Refaz

Destek Ekibi
Kullanıcı Bilgileri
Katılım
11 Ağu 2021
Mesajlar
4,168
Çözümler
496
Aldığı beğeni
3,908
Excel Versiyonu
Office 2021 TR
Ekde ki dosyayı deneyin ben formülle yaptım vba tabanlı olarak da yapılabilir..
Merhaba.

Resimdeki her grup için mesela a olanlar 18 çıkmış.2.grup a olanla farklı olmayacakmıydı.
Benimki farklı.Gözüme çarptığı için yazayım dedim abey.
yani mesela 1.grup a lar 18 ise 2.grup a lar 20 gibi olacak sanıyordum.

Doğru ise sizinki kodu ona göre ayarlarım.

Unbenannt.PNG
 

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
Abey 2 kısmıda hallettim sanırım.
Öncekilerinde SATIR ekleyince benzersiz olmuyordu bazıları onlar düzeltildi.
Dosyanın birinde Ayar sayfası B5 dinamik oldu yani son SATIR ne ise onu alıyor bu sayede küçük olmuyor ve hata olmuyor.
Diğeri ise normal Ayar B5 de ne varsa ona göre ve son SATIR nodan küçükse uyarı verip işlemi sonlandırıyor.

Ben bu konuda biraz yanlış anlatım yaptım sanırım. Aslında benzersiz olmasına gerek yok.
Basit bir örnekle anlatayım;
Diyelim ki giriş sekmesinde 50.000 satırlık bir veri var.
Ayar bölümündeki aralıkta 1-20 yazıyor.
50.000 satırın tamamına 1 ile 20 arasında sayı üreteceğiz.
Yani benzersiz olması şart değil. Ardarda denk gelmesin, arasında birkaç SATIR olsun yeterli.

Merhaba.

Resimdeki her grup için mesela a olanlar 18 çıkmış.2.grup a olanla farklı olmayacakmıydı.
Benimki farklı.Gözüme çarptığı için yazayım dedim abey.
yani mesela 1.grup a lar 18 ise 2.grup a lar 20 gibi olacak sanıyordum.

Doğru ise sizinki kodu ona göre ayarlarım.

Bu konuda sizin yaptığınız doğru olanı. Herhangi bir değişiklik yapılmasına gerek yok.

Birde ufak bir konuyu atladık;
Şimdi örneğin yy'in karşılığı; kayıt başarılı Hilmi
Buradaki Hilmi kısmı şuan sabit.
Aslında bir önceki satırın isim bölümünde yazan ismi almamız gerekiyordu.

Şöyle resimle göstereyim;

5zpu6jk.jpg


Burada yeni eklenen satırda, "kayıt başarılı hilmi" değil de; kayıt başarılı Mehmet6 şeklinde çıkartmam gerekiyor.
Sanırım bunun için ayar bölümünde tanımlama yaparken isim kısmına bir değer atamamız gerekecek.
 

Refaz

Destek Ekibi
Kullanıcı Bilgileri
Katılım
11 Ağu 2021
Mesajlar
4,168
Çözümler
496
Aldığı beğeni
3,908
Excel Versiyonu
Office 2021 TR
Ben yy için aratmıştım o kısım kolay değişir.Benzersiz yapacağım diye canım çıkmıştı hele SATIR ekleme için.Hatta bugün collection içine alıp remove ile azaltmayı düşünüyordum :)En son kullanmak istediğim countif olayını kullanmak zorunda kalmıştım :)
Neyse benzersiz olmayacaksa kodlar kısalır ve daha kolay olur.
Resimdeki yyve mehmet olayları sorun değil zaten kodda find var.Orda ufak değişiklik olacak yy yerine mehmetin olduğu SATIR aranacak o kadar.Ayar sayfası ve dosyanın son halini yükleyin bugün çözülür konu abey.
 
Son düzenleme:

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
Ben yy için aratmıştım o kıdım kolay değişir.Benzersiz yapacağım diye canım çıkmıştı hele SATIR ekleme için.Hatta bugün collectioniçne alıp remove ile azaltmayı düşünüyordum :)
Neyse benzersiz olmayacaksa kodlar kısalır ve daha kolay olur.
Resimdeki yyve mehmet olayları sorun değil zaten kodda find var.Orda ufak değişiklik olacak yy yerine mehmetin olduğu SATIR aranacak o kadar.
Kardeş bu benim eksik yada hatalı anlatımımdan oldu sanırım. Zaten çokça uğraştırmıştım birde ekstradan boşa uğraş verdim sana kusura bakma. :oops:
Orada her SATIR rastgele üretilecek.
İsim konusunda da sadece yy için değil de ayarlarda ki Ön Tanımlı Değerler bölümüne yazılan tüm isimler için durum yukarıda ki şekilde olacak.
 

Refaz

Destek Ekibi
Kullanıcı Bilgileri
Katılım
11 Ağu 2021
Mesajlar
4,168
Çözümler
496
Aldığı beğeni
3,908
Excel Versiyonu
Office 2021 TR
Kardeş bu benim eksik yada hatalı anlatımımdan oldu sanırım. Zaten çokça uğraştırmıştım birde ekstradan boşa uğraş verdim sana kusura bakma. :oops:
Orada her SATIR rastgele üretilecek.
İsim konusunda da sadece yy için değil de ayarlarda ki Ön Tanımlı Değerler bölümüne yazılan tüm isimler için durum yukarıda ki şekilde olacak.
İlk mesajınızda benzersiz yazmıştınız abey.Uğraşa uğraşa öğreniyoruz exceli.Zaten kod bitti sayılır.Dosya eklerseniz ayar sayfayı felan ayarlayıp ona göre bulup getirelim.
 

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
İlk mesajınızda benzersiz yazmıştınız abey.Uğraşa uğraşa öğreniyoruz exceli.Zaten kod bitti sayılır.Dosya eklerseniz ayar sayfayı felan ayarlayıp ona göre bulup getirelim.
Doğru diyorsun. Ben orada hata yapmışım. Tekrardan kusura bakma.
Dosyadaki ayar bölümünde ki isimlere bir değişken tanımladık mı olay tamam olur gibi aslında.
Hasan, Hilmi yerine #isim# yazdım ben şimdi. Bunu gördüğü zaman bir üst satırdaki ismi alması sağlanabilirse tamamdır.

Bu arada bu makroyu 3 sayfada da ayrı ayrı çalıştırmam gerekiyor.
 

Ekli dosyalar

  • Örnek DB.xlsx
    16.9 KB · Gösterim: 4
Durum
Konu Çözümlendiği İçin Kapatılmıştır.

Konuyu okuyanlar

Üst