Kesişen Tüm Kümeleri Bir Üst Kümede Birleştirmek

Katılım
27 Şubat 2020
Mesajlar
22
Excel Vers. ve Dili
2016 64 bit ve 2010 32 bit
Merhaba,

Benim ID ve Grup bilgilerinin olduğu bir datam var bu data içinde ID veya Grup bilgisi nedeniyle en ufak ilişkisi olan kayıtları belirlemem gerekiyor. Detayına aşağıda yer veriyorum.

Datam şu şekilde: Çok sayıda grup var ve bu grupların içinde ID’ler var. Bu grupların bazısında 1 bazısında 10 ya da daha fazla ID var. ID’ler sadece bir grup içinde olabildiği gibi başka gruplar içinde de yer alabiliyorlar.

Yapmak istediğim şey ise şu:  Aşağıdaki örnekten yola çıkarak;
  • bir ID’nin bağlı olduğu grubun içinde başka ID’ler var ise,
  • bu başka ID’lerin bağlı olduğu başka gruplar içinde de başka başka ID’ler var ise,
  • bu başka ID’lerin bağlı……….ise
bu ID'lere bir ÜST Grup atamak.

Birbiri ile bağlantılı ID ve gruplar bittiğinde “g2” ÜST Grubu ile devam ederek listede kayıt bitene kadar “g…n” kadar devam etmek.

Örnek olarak aşağıda küçük bir liste paylaşıyorum. İstediğim sonuca da onun bir altında yer veriyorum.

Umarım açık bir şekilde konuyu açıklayabilmişimdir. Vakit bulup yardım edebilirseniz çok memnun olurum.

Saygılar...

Örnek Data:

ID Grup
xxx11 5
xxx2 9
xxx4 10
xxx1 12
xxx2 12
xxx3 12
xxx5 12
xxx2 27
xxx3 27
xxx6 33
xxx7 33
xxx2 34
xxx4 34
xxx10 42
xxx7 42
xxx9 42
xxx1 59
xxx5 67
xxx8 67
xxx9 87

İstenen Sonuç:

ID Grup ÜST_Grup
xxx11 5 g5
xxx2 9 g1
xxx4 10 g1
xxx1 12 g1
xxx2 12 g1
xxx3 12 g1
xxx5 12 g1
xxx2 27 g1
xxx3 27 g1
xxx6 33 g2
xxx7 33 g2
xxx2 34 g1
xxx4 34 g1
xxx10 42 g4
xxx7 42 g2
xxx9 42 g4
xxx1 59 g1
xxx5 67 g1
xxx8 67 g3
xxx9 87 g4
 
Katılım
27 Şubat 2020
Mesajlar
22
Excel Vers. ve Dili
2016 64 bit ve 2010 32 bit

Dosyanız ektedir.
Çok teşekkürler, baya emek ve zaman harcamışsınız, doğru sonuca da ulaşmışsınız. Soruda bahsetmeliydim, üzeinde çalıştığım veriler milyon satırlık veriler olduğu için bunu kullanamıyorum.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,325
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Siz örnek dosya paylaşırsanız daha sağlıklı yardım alabilirsiniz.
 
Katılım
27 Şubat 2020
Mesajlar
22
Excel Vers. ve Dili
2016 64 bit ve 2010 32 bit
Merhabalar, veriyi paylaşamıyorum maalesef. Çok teşekkürler ilginize.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,325
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Gerçek verilerinizi istemedim. Örnek dosya yüklemenizi talep etmiştim.
 

hımmmmmmmm

Destek Ekibi
Destek Ekibi
Katılım
10 Temmuz 2011
Mesajlar
599
Excel Vers. ve Dili
2000-2007-2010-2016
215990

macro çalışmada bulduğum sonuç farklı oldu.. hangisi doğru...
 
Son düzenleme:
Katılım
27 Şubat 2020
Mesajlar
22
Excel Vers. ve Dili
2016 64 bit ve 2010 32 bit
Merhaba, çalışmanız çok güzel olmuş, elinize/emeğinize sağlık. Sadece benim sorumdaki eksiklikten kaynaklı bir sorum olacak.

Tabi excel paylaşamadığım için örneğim metin olarak yer aldı sorumda ve çalışmanızda tek excel hücresinde birleşik durumda ID ve GK başlıkları. Bunlar çalışmalarımda normalde ayrı sütunlar, şu bölüm üzerinde değişiklik yapmaya çalışırsam nasıl bir şey önerirsiniz.

'ID-GK ayrılsın--------------------------------
For I = 2 To X
BD = Cells(I, 5).Value 'Aranan
B = Split(BD, " ")
Cells(I, 3).Value = Mid(B(0), 1, 3) & Format(Mid(B(0), 4, 2), "00")
'Cells(I, 3).Value = B(0)
Cells(I, 4).Value = B(1)
Next

Bir de ev bilgisayarımda office 2016 kurulu ve çalışıyor ancak iş bilgisayarlarımda da office 2016 kurulu olmasına rağmen çok enteresan run-time error 438 hatası veriyor şu kodda :

ActiveWorkbook.ActiveSheet.Sort.SortFields.Add2 Key:=Range("C2"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal

Verdiğim zahmetten ötürü kusuruma bakmayın ve çok teşekkür ederim.
 
Katılım
27 Şubat 2020
Mesajlar
22
Excel Vers. ve Dili
2016 64 bit ve 2010 32 bit
Merhaba, çalışmama sorunu çözdüm,

ActiveWorkbook.ActiveSheet.Sort.SortFields.Add2 Key:=Range("C2"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal

Kodda ilk satırda Add2 yerine Add yazında sorgu çalışıyor.

Sadece ID ve GK değerleri ayrı sütunlarda olduğunda kodda nasıl bir düzenleme yapmam gerekir, ya da bu şekilde olması mı gerekir yardımcı olabilirseniz sevinirim..

Teşekkürler.
 

hımmmmmmmm

Destek Ekibi
Destek Ekibi
Katılım
10 Temmuz 2011
Mesajlar
599
Excel Vers. ve Dili
2000-2007-2010-2016
Tabiki gerekmiyor... sizdeki tasarıma ve görmek istediğiniz sonuca göre yeniden şekil alabilir...
ıd ve gk nın hangi sütunlarda olduklarını belirtmemişsiniz... A ve B sütunlu olarak yapılan yeni çalışma...

 

Ekli dosyalar

Katılım
27 Şubat 2020
Mesajlar
22
Excel Vers. ve Dili
2016 64 bit ve 2010 32 bit
Tabiki gerekmiyor... sizdeki tasarıma ve görmek istediğiniz sonuca göre yeniden şekil alabilir...
ıd ve gk nın hangi sütunlarda olduklarını belirtmemişsiniz... A ve B sütunlu olarak yapılan yeni çalışma...

Çok teşekkürler, on numara olmuş, elinize ve emeğinize sağlık.

Son bir şey sormak istiyorum. Çalıştığım ID satır sayısı kimi zaman milyon satıra ulaşıyor. Şu an 10 bin satırlık veride denedim ama 16GB ramli, i5-7500 makinem kaldırmadı. Sorguyu hafifletecek bir şey önerebiliyor musunuz acaba, manuel ön bir çalışma, sıralatma vb. gibi?
 

hımmmmmmmm

Destek Ekibi
Destek Ekibi
Katılım
10 Temmuz 2011
Mesajlar
599
Excel Vers. ve Dili
2000-2007-2010-2016
o zaman durum değişir..
bu macro iç içe döngüsel işlem yapmakta... çok yoğun satırlı sayfalarda döngüsel çalışmalarda problem yapabilir... donabilir...
excelin kendisi zaten bu kadar yoğunluğu kaldıramayıp kaydetme ve açılma sırasında gecikmeler yapar... adamı bıktırır...

hızlandırma ve kotlarda farklı uygulamalar denerim... ama garanti veremiyorum...
size toplu işlem kotlamaları ile yapılacak uygulamaları bilen bir arkadaş yardımcı olabilir...
 
Son düzenleme:
Katılım
27 Şubat 2020
Mesajlar
22
Excel Vers. ve Dili
2016 64 bit ve 2010 32 bit
o zaman durum değişir..
bu macro iç içe döngüsel işlem yapmakta... çok yoğun satırlı sayfalarda döngüsel çalışmalarda problem yapabilir... donabilir...
excelin kendisi zaten bu kadar yoğunluğu kaldıramayıp kaydetme ve açılma sırasında gecikmeler yapar... adamı bıktırır...

hızlandırma ve kotlarda farklı uygulamalar denerim... ama garanti veremiyorum...
size toplu işlem kotlamaları ile yapılacak uygulamaları bilen bir arkadaş yardımcı olabilir...
Teşekkür ediyorum, müsait olduğunuzda mümkün olduğunca hızlandırmayı denerseniz sevinirim.

Toplu dediğiniz ne olabilir acaba, ACCESS ya da yeni kullanmaya ve öğrenmeye başladığım IBM SPSS programları gibi mi?
 

hımmmmmmmm

Destek Ekibi
Destek Ekibi
Katılım
10 Temmuz 2011
Mesajlar
599
Excel Vers. ve Dili
2000-2007-2010-2016
toplu dediğim, veri tabanına uygulanacak sorgulamalarla yapılan kotlamalardır (toplu işlem komutları)... mysql, access, ıbmdb, vb...
spss nin esnekliğini bilmiyorum...
 
Katılım
27 Şubat 2020
Mesajlar
22
Excel Vers. ve Dili
2016 64 bit ve 2010 32 bit
SPSS'i veri madenciliği için kullanıyorum ve ID ve GK'ları aşağıdaki kodla çekiyorum. Bu koda bir ekleme ile istediğimi gerçekleştirebilir miyim acaba? Ya da access de işimi fazlasıyla görür. Diğerleri, mysql ve ıbmdb yok maalesef. Tabi sanırım sizin uzmanlığınız değil, kim yardımcı olabilir acaba?

Teşekkürler.

Kod:
select
 ID,
 GK,
 GK_KOD,
 KESIT_TARIHI
from
 xxx.IDGK_MSTR
where
 GK_KOD = 'A'
 and
 KESIT_TARIHI = TRUNC(SYSDATE -1)
 

hımmmmmmmm

Destek Ekibi
Destek Ekibi
Katılım
10 Temmuz 2011
Mesajlar
599
Excel Vers. ve Dili
2000-2007-2010-2016
access olarak yeni bir konu açın... yardımcı olunur diye düşünüyorum... access veya spss forumlarıda bakılabilir...
 

hımmmmmmmm

Destek Ekibi
Destek Ekibi
Katılım
10 Temmuz 2011
Mesajlar
599
Excel Vers. ve Dili
2000-2007-2010-2016
hızlandırılmış çalışma... umarım işine yarar

 
Katılım
27 Şubat 2020
Mesajlar
22
Excel Vers. ve Dili
2016 64 bit ve 2010 32 bit
hızlandırılmış çalışma... umarım işine yarar

Tekrar merhabalar, üzerinde baya uğraştım, sonra da gerekli iş pandemi nedeniyle ertelendiği için bugüne kadar ihtiyaç olmadı. Tekrar geri dönüp baktığımda ise like yapmayıp teşekkür etmediğimi fark ettim. Teşekkür ederim.

Bu arada, dediğiniz gibi oldu ve yüklü veride sorgu çalışmadı. Önerdiğiniz gibi konuyu access, mysql gibi konulara taşıyacağım.
 
Üst