• DİKKAT

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

aramadaki "find all" komutunun formülü var mı

Katılım
1 Şubat 2008
Mesajlar
12
Excel Vers. ve Dili
2003 İNGİLİZCE
Oluşturduğum tabloda ilk sütunda proses numarası, yanındaki 9 satırda ise proseste kullanılan parça numaraları var. (her proses de 10 parça olmayabilir, 3 parça kullanılıyorsa diğer satırlar boş). Benim istediğim parça noya göre arama yapıp parçanın hangi proseste kullanıldığını bulmak. Düşeyara ile beceremedim çünkü bazı parçalar birden fazla proseste olabiliyor. Kısacası ctrl+f ile arama yaparken find all komutuna benzer bir komut arıyorum. yazdığım parça numarasını 9 sütun boyunca arayacak ve karşılıklarını yani proses numaralarını listeleyecek.
 
Sarı renkli hücreye parça no yazın yeşil hücrede proses no göreceksiniz.

Yeşil hücredeki formül dizi formülü olup direk enter tuşuna basılmadan CTRL+SHIFT+ENTER tuşlarına birlikte basılarak girilmelidir.

Örnek dosyanız ektedir.

.
 
Merhabalar

Aşağıdaki KTF'yi kullanabilirsiniz.

Kod:
Function Prosesler(ParcaNo As String, Optional rg As Range) As String
Dim hcr As Range
Dim arrProses()
Dim i%, y%, x%
Application.Volatile
If ParcaNo = Empty Then
   Prosesler = ""
   Exit Function
End If
If rg Is Nothing Then
   Set rg = Range("B2:K" & Cells(65536, 1).End(xlUp).Row)
End If
For Each hcr In rg
    If hcr = ParcaNo Then
       y = y + 1
       ReDim Preserve arrProses(1 To y)
       arrProses(y) = Cells(hcr.Row, 1)
    End If
Next
For i = 1 To UBound(arrProses)
    Prosesler = arrProses(i) & ", " & Prosesler
Next i
Prosesler = Left(Prosesler, Len(Prosesler) - 2)
End Function
 
Ali, tabloya iki farklı jhücreye aynı numarayı yazdığım zaman sadece 1 adet proses no gösteriyor. fpc, senin yolladığın dosyada aradığım parça no yu nereye yazmam gerekiyor anlamadım.Bahsettiğin ktf ne?
 
Örnek tablonuzda bunu neden yazmadınız? Hepsinden birer tane yazmışsınız. Dolayısıyla ona göre yazdım.
 
Örnek dosyadaki, formülleri incelediniz mi ?

1. Kullanım : =Prosesler(C9) C9 hücresinde gösterilen parça numarasının proseslerini verir. Veya bunun yerine =Prosesler("13396-10007K") de yazabilirsiniz, aynı şey ... Burada alan seçmenize gerek yok. Otomatikman bütün tabloda arar...

2. Kullanım (Alternatif) : Belirli bir alan seçerseniz, o alandaki parça nolara göre size prosesleri listeler =Prosesler(B8;B2:B9) B8 hücresinde yeralan parça numarasını, B2:B9 alanında arar ve prosesleri bulup getirir.
 
Son istediğinize göre örnek dosya ektedir. Sarı renkli hücreye parça no yazdığınızda yeşil alanda tüm değerler listelenir.
 
ikinize de çok teşekkürler. Ana tabloya uygulayacağım bugün.
 
Tablomu 1. sayfada oluşturdum.formülü 2. sayfaya yazdım ve verileri ona göre uyarladım ama value? hatası verdi. Dosyayı paylaşmaya iznim olmadığı için yollamadım tüm tabloyu. Nerde yanlış yapıyor olabilirim? ctrl+shift+enter yapmadığım için mi hata veriyor acaba.
 
Bir de şunu anlamadım.Ali senin gönderdiğin örnekte Yeşil alan için formül çubuğundaki formüle tıklıyorum, sonra hiçbir şey değiştirmeden tab tuşuna basıyorum ve yine value hatası veriyor.
 
Ali' nin son gönderdiği dosyayı kendi dosyama uyarladım. Ama hep aynı sonucu veriyor. 2 saattir inceliyorum ama bulamadım.
 
Daha önce yazdım ama okumamışsınız formül dizi formülüdür bu nedenle direk enter tuşuna basmadan CTRL+SHIFT+ENTER tuşlarına birlikte basılarak formül girilmelidir.
Formüllerin başına ve sonuna excel {formül} şeklinde ayıraç ekleyecektir.
 
Okudum da anlayamamıştım. Tamam deneyim hemen, teşekkürler. Gözlerim ağrıdı valla 2 saattir :)
 
Geri
Üst