• DİKKAT

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

Tablodaki değere karşılık gelen A sütunu değeri

umitumit

Altın Üye
Katılım
5 Eylül 2006
Mesajlar
364
Excel Vers. ve Dili
Excel 2016
Türkçe
Selamlar,

B3:S24 arası (daha fazlasıda olabilir) rakamlardan oluşan bir tablom var.

ARA formulü ile tablonun herhangi bir değerinin A sütunundaki karşılığını bulmak istiyorum.

Ekli dosyada da göreceğiniz gibi, 39 a kadar olan sayılarda doğru cevap alıyorken, 40 ve üzeri rakamlar için yanlış cevap alıyorum.

Sebebi nedir?
Doğru cevap almak için farklı formül veya yöntemler var mı?

Teşekkürler
 

Ekli dosyalar

Anladığım kadarıyla o formül sadece tek sütundaki değerleri arıyor ya da düzgün çalışması için verilerinizin sütun sütun küçükten büyüğe sıralanmış olması gerekiyor. Verileriniz satırda yana gittikçe arttığı için sıralama bozuluyor ve formül doğru çalışmıyor.

Aşağıdaki kodları ilgili sayfanın kod bölümüne yapıştırıp denerseniz V3 hücresi her değiştiğinde W3 hücresine istediğiniz sonucu yazar:

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("V3")) Is Nothing Then Exit Sub
For i = 3 To 24
    For j = 2 To 19
        If Cells(i, j) = Target Then
            Target.Offset(0, 1) = Cells(i, "A")
            i = 24
            j = 19
        End If
    Next
Next
End Sub
 
Sayın YUSUF bey,

Çözüm öneriniz için teşekkürler ama benim 1 den 200 e kadar aşağı doğru sıralanan bir listeye, tüm değerler için tablodan cevap bulmam gerekiyor.

Yani W3 e yazılacak formulü aşağı doğru çekip W203 e kadar uzatacaktım.

Anladığım kadarıyla V3:V203 arası her hücre için ayrı makro yazmam gerekecek.

veya daha pratik bir yöntem var mı?
 
Merhaba.
Sanırım YUSUF Bey şu an yok, müsadesiyle öneride bulunayım dedim.

KOD'a ilişkin açıklama;
For i = 3 To 24 kısmındaki 3 ve 24 veri tablonuzun satır numaraları (3-24'üncü satırlar),
For j = 2 To 19 kısmındaki 2 ve 19 'da veri tablonuzun sütun numaralarıdır (yani B-S sütun aralığı).

Kod'daki ikinci satırı aşağıdaki ile değiştirin.
V sütununda bir hücrede değişiklik yapıldığında otomatik olarak sonuç alırsınız.
V3'ten V sütunundaki son dolu satıra kadar işlem yapılır.
Kod:
If Intersect(Target, Range("V3[B][COLOR="Blue"]:V" & [V65536].End(3).Row[/COLOR][/B])) Is Nothing Then Exit Sub
 
Teşekkürler sayın Ömer Baran.

Ömer Bey doğru önermiş. Verdiği şekliyle yaparsanız son dolu hücreye kadar işler. Aşağıdaki gibi yaparsanız son dolu hücreden sonrakihücre için de çalışır:

Kod:
 If Intersect(Target, Range("V3:V" & [V65536].End(3).Row+1)) Is Nothing Then Exit sub

Ya da kodda ki v3 yerine çalışmasını istediğiniz aralığı belirtebilirsiniz:

Kod:
If Intersect(Target, Range("V3:V203"))  Is Nothing Then Exit sub
Yaparsanız V3:V203 aralığında çalışır.
 
Son düzenleme:
Teşekkür etmeyi unuttuğum bir konumu buldum.
Biraz gecikmelide olsa; "TEŞEKKÜRLER"
 
Geri
Üst