• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

düşeyarayla çözemediğim bir durum için yardım...

  • Konbuyu başlatan Konbuyu başlatan cem116
  • Başlangıç tarihi Başlangıç tarihi
Katılım
12 Kasım 2010
Mesajlar
195
Excel Vers. ve Dili
2007 türkçe
Herkese merhaba. Forumun değerli üstadlarının yardımına ihtiyacım var. Şöyle ki düşeyara ile çözemediğim bir sorunum var. Aslında düşeyara ile aynı mantıkta bir veri aramaya ihtiyacım var ancak verilerim maalesef tek bir tabloda soldan sağa dizili değil. Bir veriyi birden fazla tabloda arayıp hangi tabloda ise bulup ona göre veri getirmesi lazım. Anlatırken biraz karmaşık duran bu konu için örnek bir dosya hazırlayıp ekledim. Benim için karmaşık olan bu durumun üstadlardan biri tarafından kolayca çözülebileceğine itimadım tam :) Formülle çözülebilirse formülle ama son kullanıcıların formüllere zarar verebilme riskine karşılık mümkünse eğer makro ile çözebilirsek çok güzel olacak. Şimdiden teşekkürler.


http://www.dosya.tc/server13/pxrqk4/cem116yardim.xlsx.html
 
Sayfa 1 deki harfler benzersizmi yoksa yineleyen harf olacak mı?
Yineleyen varmış, özür.
 
Sayfa 1 deki harfler benzersizmi yoksa yineleyen harf olacak mı?
Yineleyen varmış, özür.

hocam sayfa1 de tabloda benzersiz, sayfa2 de tekrar ise tekrar edebilir. aslında tekrar etmemesi üzerine plan yapıyorum ama tekrar etmesi de gerekebilir, o yüzden örnek dosyada tekrar eden veriler kullandım sayfa2 de. Bir de fazla oluyorum belki ama rica etsem eğer makro ile çözüm üretiyorsanız ve karmaşık bir makro ise, yüklediğiniz dosyada kısa bir bilgilendirme ekler misiniz? Farklı sayfalarda tablo kullanmam ya da tabloların satır veya sütunları değiştiğinde nerelerde değişiklik yapmamız gerekecek gibi.
 
Son düzenleme:
.

E1, G1 ve K5 hücrelerinde bulunan D değerlerinin altına hangi veri grubundan gelecek? Keza E değeri için de aynı benzer şeyi söylemek mümkün.

Şimdi siz bu tekrar eden değerleri manuel yazıp, mantığını açıklarsanız belki bir çözüm bulunabilir

.
 
.

E1, G1 ve K5 hücrelerinde bulunan D değerlerinin altına hangi veri grubundan gelecek? Keza E değeri için de aynı benzer şeyi söylemek mümkün.

Şimdi siz bu tekrar eden değerleri manuel yazıp, mantığını açıklarsanız belki bir çözüm bulunabilir

.

Şöyle ki, sayfa1de tabloda D değerinin yanında yazan değer gelecek. Yani bu örnek tabloya göre D değerinin altına 6 gelecek.
 
hocam sayfa1 de tabloda benzersiz, sayfa2 de tekrar ise tekrar edebilir. aslında tekrar etmemesi üzerine plan yapıyorum ama tekrar etmesi de gerekebilir,

Sayın hocam, benzersiz diyorsunuz ama sayfa1 de "D" ve "E" ikişer adet.

1.VERİ GRUBU 2.VERİ GRUBU
A 1 D 6
B 2 E 7
C 3 F 8
D 4 G 9
E 5 H 10
 
Sayın hocam, benzersiz diyorsunuz ama sayfa1 de "D" ve "E" ikişer adet.

1.VERİ GRUBU 2.VERİ GRUBU
A 1 D 6
B 2 E 7
C 3 F 8
D 4 G 9
E 5 H 10

Üstad çok çok özür dilerim, şimdi siz tekrar yazınca fark ettim durumu. Bi hastane işi vardı da biraz acil hazırlamıştım dosyayı, kafamda sayfa1 de tekrar eden veri yoktu normalde oraya doğru şekilde yazdım sanıyordum. Dosyayı düzenledim tekrar yüklüyorum.

http://www.dosya.tc/server13/s4n3k5/cem116yardimson.xlsx.html
 
.

Anlaşılan siz soruyu benzersiz sormak isterken, benzerler olmuş.

Neyse, benim verdiğim çözüm benzersiz olursa yada ilk görülen değeri alan bir çözüm.

Dosya ekte.

.
 

Ekli dosyalar

.

Yukarıda verdiğim dosyayı inceleyin.

.

Üstad çok teşekkür ederim, ellerinize sağlık. Her tabloya farklı bir ad tanımlamak benim de aklıma gelmişti ancak iç içe yazmak konusunda hata yapma ihtimalim yüksekti. Bu açıdan çok faydalı olmuş çalışmanız benim için. Tekrar teşekkür ederim. Ancak bir sorum olacak, sayfa1 deki tabloların sayısının artma ihtimali yüksek, üstelik tabloda bulunan verilerde artabilir. Bu durumda her defasında o tablo için yeniden ad tanımlayıp formüle ilave yapmamız gerekecek. Bu da formüllerin epeyce uzaması demek sanırım ve her hücreye formülü tek tek girdiğimizde de yanlış yapma ihtimalimiz aynı oranda artacak. Üstelik arama sayfa2 nin benzeri olan tabloların 7-8 sayfa boyunca devam edeceği de düşünülürse dosyanın hazırlanması bile epey zaman alır gibi geliyor bana. Acaba bu işlemin daha kısa bir formülle çözülme ihtimali ya da kısa bir makro ile çözülme olasılığı var mıdır sizce?
 
Deneyiniz.

B2;

Kod:
=EĞERHATA(DOLAYLI("Sayfa1!"&ADRES(TOPLA.ÇARPIM((Sayfa1!$A$1:$K$7=B1)*SATIR(Sayfa1!$A$1:$K$7));TOPLA.ÇARPIM((Sayfa1!$A$1:$K$7=B1)*SÜTUN(Sayfa1!$A$1:$K$7))+1));"")
 
Deneyiniz.

B2;

Kod:
=EĞERHATA(DOLAYLI("Sayfa1!"&ADRES(TOPLA.ÇARPIM((Sayfa1!$A$1:$K$7=B1)*SATIR(Sayfa1!$A$1:$K$7));TOPLA.ÇARPIM((Sayfa1!$A$1:$K$7=B1)*SÜTUN(Sayfa1!$A$1:$K$7))+1));"")

Hocam elinize sağlık.Çok teşekkürler.. Diğer arkadaşların verdiği yanıtlar da çözüm olmuştu ancak uzun bir yoldu maalesef. Sizin yazdığınz formül tüm sayfada çalışıyor ve tablolar için ad tanıtmamız gerekmiyor. Çok çok teşekkürler. Excelde çalışma mantığını bir türlü çözemediğim ama nedense hep hayat kurtardığını düşündüğüm topla.çarpım formülünün işin içine girmiş olması ise bir kez daha bu formülün gözümdeki gizemine gizem kattı :)
Son bir ricam var sizden, tabi eğer mümkünse. Diyelim ki Sayfa1 deki veriler de tekrar ediyor olsa, yani mesela 4 tane D olsa sayfa1 de ve herbirinde D nin yanında farklı bir değer olsa, Sayfa2 de ilk D gördüğü yere sayfa1 de ilk D nın sağındaki değeri ; Sayfa2 de ikinci D değeri için de sayfa1 de 2. D değerini yazabilir miyiz? ( Not: Sayfa2 deki değerlerin soldan sağa doğru gittiğini kabul edeceğiz. Yani E1 deki "D" birinci, G1 deki "D" ikinci, H3 teki "D" üçüncü ve K5 teki "D" dördüncü d değeri olacak. )
 
Bahsettiğiniz şekilde bir örnek dosya ekleyiniz.
 
Düşeyara yerine neden loop kullanmayı denemedin. Yinelenen değer olsa da senin için önemli olmaz. İstediğin tabloları da belirleyip datayı çekebilirsin.
 
Tekrarlayan veriler için formül kullanmak pek uygun görünmüyor. En azından ben kurgulayamadım.

Aşağıdaki kod işinizi görecektir.

Kod:
Sub AKTAR()
    Dim S1 As Worksheet, S2 As Worksheet
    Dim BUL As Range, ADRES As String
    Dim X As Long, Y As Byte
    
    Set S1 = Sheets("Sayfa1")
    Set S2 = Sheets("Sayfa2")
    
    S1.Range("A1:K7").Interior.ColorIndex = xlNone
    
    For X = 1 To 5 Step 2
        For Y = 2 To 12
            S2.Cells(X + 1, Y).ClearContents
            Set BUL = S1.Cells.Find(S2.Cells(X, Y), , , xlWhole, xlByColumns, xlNext)
            If Not BUL Is Nothing Then
                ADRES = BUL.Address
                Do
                    If BUL.Interior.ColorIndex <> 6 Then
                        S2.Cells(X + 1, Y) = BUL.Offset(0, 1)
                        BUL.Interior.ColorIndex = 6
                        Set BUL = Nothing
                        Exit Do
                    End If
                    Set BUL = S1.Cells.FindNext(BUL)
                Loop While Not BUL Is Nothing And BUL.Address <> ADRES
            End If
        Next
    Next
End Sub
 
Merhaba.

Aşağıdaki formülü (dizi formülü) kullanabilirsiniz.

-- Formülü Sayfa2 B2 hücresine dizi formülü olarak uygulayın (CTRL ve SHIFT tuşları basılı durumda iken ENTER tuşuna basarak işlemi tamamlayın)
-- Sayfa 2 B2 hücresini sağa doğru L2 hücresine kadar kopyalayın,
-- Sayfa2 B2:L2 hücre aralığını kopyalayın ve B4:L4 ve B6:L6 hücre aralıklarına ÖZEL YAPIŞTIR=>FORMÜLLERİ şeklinde yapıştırın.

Formül sonuçları:
-- Sayfa1'de 1 adet olan harfler için, Sayfa2'deki tüm aynı harflere aynı değer,
-- Sayfa1'de 1'den fazla olan harfler için sırayla ilgili değer (en fazla Sayfa1'deki aynı harf sayısı kadar harf yazılı olmalıdır)

Örneğin Sayfa1'de 3 adet A var ve Sayfa2'ye 4 ve daha fazla adette A yazılırsa formül, "HATA" sonucu döndürür (Mevcut verilere göre böyle bir durum yok)
.
Kod:
=[COLOR="red"]DOLAYLI[/COLOR]("Sayfa1!"&[COLOR="red"]ADRES[/COLOR]([COLOR="red"]KÜÇÜK[/COLOR]([COLOR="red"]EĞER[/COLOR](Sayfa1!$A$3:$K$7=B1;[COLOR="red"]SATIR[/COLOR](Sayfa1!$A$3:$K$7));[COLOR="red"]EĞER[/COLOR]([COLOR="red"]EĞERSAY[/COLOR](Sayfa1!$A$3:$K$7;B1)=1;1;[COLOR="red"]EĞERSAY[/COLOR]($B$1:B1;B1)));[COLOR="red"]KÜÇÜK[/COLOR]([COLOR="red"]EĞER[/COLOR](Sayfa1!$A$3:$K$7=B1;[COLOR="red"]SÜTUN[/COLOR](Sayfa1!$A$3:$K$7));[COLOR="red"]EĞER[/COLOR]([COLOR="red"]EĞERSAY[/COLOR](Sayfa1!$A$3:$K$7;B1)=1;1;[COLOR="red"]EĞERSAY[/COLOR]($B$1:B1;B1)))+1))
 
Geri
Üst