Skip to main content

AccessTr.neT


Vlookup İle Hücre Grubunu Sonuç Olarak Döndürme

Vlookup İle Hücre Grubunu Sonuç Olarak Döndürme

#7
(04/05/2021, 15:56)MURTAZAAF yazdı: @feraz Hocam size de teşekkür ederim. Çok çok özür diliyorum ben size hep Firuz diye hitap ediyordum, ne büyük dikkatsizlik.
Hocam Dizi formülleri hangileri acaba ben senelerdir İngilizce Excel kullandığım için Türkçe karşılıklarını pek bilmiyorum.

Saygılarımla

Murtaza AF
Img-grin firuz yazdığınızın farkındaydım ama belli etmedim Img-grin
Dizi formüller karışık abet ctrl+enter ile yapılıp başına ve sonuna { bu işaret gelir.Office 365 kullanıyorsanız bunada gerek yok.çaprazara yada filtrele gibi süper formüller var.
Sizin içn office 365 dediğse ya indis kaçıncı yada dolaylı kaçıncı uygun olur.ingilizcelerinde tam bilmiyorum aklımda kaldığı kadar yazayım.
Kaçıncı=match
İndis= index
Dolaylı= indirect
Dolaylı heralde tam olmadı ingilizcesi bulunca yazrım.

Dolaylının ingilizcesini doğru yazmışım bu arada baktım internete.
Cevapla
#8
Dosyanız hazır aslında dün ekleyecektim sitede problem vardı galiba.

[Resim: aaacb4871762aa658f7.gif]

Arama_MakroVeFormullu adında sayfa ekledim makro için.

Dikkat edilmesi gerekenler B sütununda Analizin Adı olmalı.Ve Analizin Adı altındaki B sütunda satırlar boş olmamalı diğr kalıpa kadar.

Dosyada kalıplar aynı olmadığı için formül tam olmuyor oluyor lakin kalıp aynı değil o  yüzden kod ile yaptım dediğim sayfada.
Formülün biriside alttaki gibi.

Kod:
=EĞERHATA(DOLAYLI("IVL!"&ADRES(KAÇINCI($B$2;IVL!$A:$A;0);2));"")
.rar soru.rar (Dosya Boyutu: 54,52 KB | İndirme Sayısı: 8)
Cevapla
#9
@feraz hocam kendimce aşağıdakine benzer bir formül kullandım, amacım offset fonksiyonunu kullanarak sütunları 2 kaydırıp satırları da satır numarasına göre yukarı kaydırmaktı ama sütun eklemede hata veriyor, nerede hata yapıyorum?
Not: offset yerine cell() kullanınca adresler doğru ama offsette neden hata veriyor onu anlamadım
Cll.Offset((3 - RngBul.Row), 2).Address buradaki ofset koduyla sütunu 2 sağa kaydırmam gerekiyor A için C yapıyor ama B için M yapıyor
[Resim: do.php?img=10985]https://resim.accesstr.net/do.php?img=10985
Sub FormatliAra(ByVal txtAranan As String)
Dim RngAra As Range
Dim RngSonuc As Range
Dim RngBul As Range
Dim RngBul2 As Range
Dim Cll As Range
Set RngAra = ThisWorkbook.Worksheets("IVL").Range("A:A")
   
    ' Clear previous formats and set new format
    Application.FindFormat.Clear
    Application.FindFormat.Font.Bold = True 'formatlı arama için gerekli kod

    Set RngBul = RngAra.Find(txtAranan, SearchFormat:=True)
    ThisWorkbook.Worksheets("Arama").Range("C2:L100").ClearContents 'Arama Sayfasını boşaltan kod
    If RngBul Is Nothing Then Exit Sub 'veri yoksa işlemi iptal etme
   
    Set RngAra = ThisWorkbook.Worksheets("IVL").Range("A" & RngBul.Row & ":A" & RngBul.Row + 100)
    Set RngBul2 = RngAra.Find("IVL No", SearchFormat:=True)
   
    Set RngSonuc = ThisWorkbook.Worksheets("IVL").Range("A" & RngBul.Row - 1 & ":L" & RngBul2.Row - 1)
    Debug.Print "RngBul2", RngBul2.Address(0, 0), RngSonuc.Address(0, 0)
    For Each Cll In RngSonuc
    Debug.Print Cll.Address(0, 0), ThisWorkbook.Worksheets("Arama").Range(Cll.Offset((3 - RngBul.Row), 2).Address(0, 0)).Address(0, 0), Cll.Value
    Next Cll
    Application.FindFormat.Clear
End Sub
Cevapla
#10
bu da alternatif bir yöntem dilerim işinize yarar
Sub FormatliAra(ByVal txtAranan As String)
Dim RngAra As Range
Dim RngSonuc As Range
Dim RngBul As Range
Dim RngBul2 As Range
Dim Cll As Range
Dim Sht As Worksheet
Dim Sht2 As Worksheet

Set Sht = ThisWorkbook.Worksheets("Arama")
Set Sht2 = ThisWorkbook.Worksheets("IVL")
Set RngAra = Sht2.Range("A:A")

    ' Clear previous formats and set new format
    Application.FindFormat.Clear
    Application.FindFormat.Font.Bold = True 'formatlı arama için gerekli kod
With Sht
    Set RngBul = RngAra.Find(txtAranan, SearchFormat:=True)
    SonStr = .Cells(.Rows.Count, "c").End(xlUp).Row
    .Range("C2:x" & SonStr).ClearContents 'Arama Sayfasını boşaltan kod
    If RngBul Is Nothing Then Exit Sub 'veri yoksa işlemi iptal etme
   
    Set RngAra = Sht2.Range("A" & RngBul.Row & ":A" & RngBul.Row + 100)
    Set RngBul2 = RngAra.Find("IVL No", SearchFormat:=True)
   
    Set RngSonuc = Sht2.Range("A" & RngBul.Row - 1 & ":L" & RngBul2.Row - 1)
    Debug.Print "RngBul2", RngBul2.Address(0, 0), RngSonuc.Address(0, 0)
    For Each Cll In RngSonuc
    If Cll.Value <> "" Then .Cells(Cll.Row + 3 - RngBul.Row, Cll.Column + 2).Value = Cll.Value
    Next Cll
     SonStr = .Cells(.Rows.Count, "c").End(xlUp).Row
     .Range("C" & SonStr & ":N" & SonStr).Merge
     .Range("C2:N" & SonStr).BorderAround Weight:=xlThin
End With
    Application.FindFormat.Clear
End Sub
.rar BulFormatlı_hy2.rar (Dosya Boyutu: 34,85 KB | İndirme Sayısı: 4)
Cevapla
#11
(06/05/2021, 02:15)berduş yazdı: Cll.Offset((3 - RngBul.Row), 2).Address buradaki ofset koduyla sütunu 2 sağa kaydırmam gerekiyor A için C yapıyor ama B için M yapıyor
Merhaba abey.
sanıyorum satır birleştirmesinden dolayı oluyor.
Cevapla
#12
IVL sayfasındaki veriler standart değil ve merged cell dolu. Beynim yandı bir ara uğraşırken kenara koydum salim kafayla bakayım diye ama sizler hızlı çıktınız +rep
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da