Çözüldü Kullanıcı Tanımlı Fonksiyon Yazmak

Gata

Altın Üye
Katılım
11 Ağustos 2018
Mesajlar
271
Excel Vers. ve Dili
Excelde 2016 Türkçe
Altın Üyelik Bitiş Tarihi
21-09-2027
Merhabalar arkadaşlar 365 versiyonlarında kullanılan satıra ve sütuna formülü için kullanıcı tanımlı fonksiyon yazabilirmisiniz selamlar
 

Gata

Altın Üye
Katılım
11 Ağustos 2018
Mesajlar
271
Excel Vers. ve Dili
Excelde 2016 Türkçe
Altın Üyelik Bitiş Tarihi
21-09-2027
Ekteki örnekte 365 versiyonlarında kullanılan satıra ve sütuna formülleri ile yapıldı bu formülleri eski versiyonlara göre kullanmak gerekiyor bu yüzden kullanıcı tanımlı fonksiyon yada makro kodları yazarmisiniz iyi akşamlar
 

Ekli dosyalar

ÖmerBey

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2012
Mesajlar
4,338
Excel Vers. ve Dili
2007 Türkçe
Merhaba,
Bu şekilde boşluksuz veriler için kullanılacaksa yerleşik fonksiyonlarla halledilebilir.
E3 için:
Kod:
=İNDİS($A$2:$C$11;BÖLÜM(SATIR(A1)-1;3)+1;MOD(SATIR(A1)-1;3)+1)
G3 için:
Kod:
=İNDİS($A$2:$C$11;BÖLÜM(SÜTUN(A1)-1;3)+1;MOD(SÜTUN(A1)-1;3)+1)
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
İkinci mesajınıza bakmadan yolluyorum.
Aşağıdaki UDF, SATIRA ve SÜTUNA (TOCOL -TOROW) fonksiyonlarını bir arada karşılar.

C++:
Function myToColumn(Rng As Range, Hedef As Integer, Tip As Integer, Ara As Byte)
    Dim i As Integer, j As Integer, Say As Long, a As Integer, b As Integer, Bak, Result()
    Dim Dizi
    Dizi = Rng.Value
    If Ara = 0 Then
        Dizi = Rng.Value 'Ara=0 ise önce satıra bak
    Else
        Dizi = Application.Transpose(Rng.Value) 'Ara=0 değilse önce sütuna bak
    End If
    
    'Hücre değerine göre uygun verileri listeye aktar
    For i = 1 To UBound(Dizi, 1)
        For j = 1 To UBound(Dizi, 2)
            Bak = Dizi(i, j)
            Select Case Tip
                Case Is <= 0
                Say = Say + 1: ReDim Preserve Result(1 To Say): Result(Say) = Bak
                Case 1
                If Not IsEmpty(Bak) Then Say = Say + 1: ReDim Preserve Result(1 To Say): Result(Say) = Bak
                Case 2
                If Not IsError(Bak) Then Say = Say + 1: ReDim Preserve Result(1 To Say): Result(Say) = Bak
                Case Else
                If Not (IsEmpty(Bak) Or IsError(Bak)) Then Say = Say + 1: ReDim Preserve Result(1 To Say): Result(Say) = Bak
            End Select

        Next j
    Next i
    
    If Hedef = 0 Then
        myToColumn = Application.Transpose(Result)  'Sonucu Tek Sütunda görmek
    Else
        myToColumn = Result                         'Sonucu Tek Satırda Görmek
    End If
End Function
 

Gata

Altın Üye
Katılım
11 Ağustos 2018
Mesajlar
271
Excel Vers. ve Dili
Excelde 2016 Türkçe
Altın Üyelik Bitiş Tarihi
21-09-2027
İkinci mesajınıza bakmadan yolluyorum.
Aşağıdaki UDF, SATIRA ve SÜTUNA (TOCOL -TOROW) fonksiyonlarını bir arada karşılar.

C++:
Function myToColumn(Rng As Range, Hedef As Integer, Tip As Integer, Ara As Byte)
    Dim i As Integer, j As Integer, Say As Long, a As Integer, b As Integer, Bak, Result()
    Dim Dizi
    Dizi = Rng.Value
    If Ara = 0 Then
        Dizi = Rng.Value 'Ara=0 ise önce satıra bak
    Else
        Dizi = Application.Transpose(Rng.Value) 'Ara=0 değilse önce sütuna bak
    End If
   
    'Hücre değerine göre uygun verileri listeye aktar
    For i = 1 To UBound(Dizi, 1)
        For j = 1 To UBound(Dizi, 2)
            Bak = Dizi(i, j)
            Select Case Tip
                Case Is <= 0
                Say = Say + 1: ReDim Preserve Result(1 To Say): Result(Say) = Bak
                Case 1
                If Not IsEmpty(Bak) Then Say = Say + 1: ReDim Preserve Result(1 To Say): Result(Say) = Bak
                Case 2
                If Not IsError(Bak) Then Say = Say + 1: ReDim Preserve Result(1 To Say): Result(Say) = Bak
                Case Else
                If Not (IsEmpty(Bak) Or IsError(Bak)) Then Say = Say + 1: ReDim Preserve Result(1 To Say): Result(Say) = Bak
            End Select

        Next j
    Next i
   
    If Hedef = 0 Then
        myToColumn = Application.Transpose(Result)  'Sonucu Tek Sütunda görmek
    Else
        myToColumn = Result                         'Sonucu Tek Satırda Görmek
    End If
End Function
Hem makro hem de formül ile teşekkür ederim hocam Allah razı olsun iyi akşamlar selamlar.Bir sorum olacak yazmış olduğunuz formülde boşluklar olursa formül nasıl olur yardımcı olurmusunuz.
 

Gata

Altın Üye
Katılım
11 Ağustos 2018
Mesajlar
271
Excel Vers. ve Dili
Excelde 2016 Türkçe
Altın Üyelik Bitiş Tarihi
21-09-2027
Ekte Göndermiş olduğum örnekte kullanıcı tanımlı fonksiyonda satıra çalışıyor sarı dolgulu olan yerde sütuna çalışmıyor değer hatası veriyor.Ayrıca formüller boşluklu olursa nasıl olur yardımcı olurmusunuz.
 

Ekli dosyalar

Gata

Altın Üye
Katılım
11 Ağustos 2018
Mesajlar
271
Excel Vers. ve Dili
Excelde 2016 Türkçe
Altın Üyelik Bitiş Tarihi
21-09-2027
Ekte Göndermiş olduğum örnekte kullanıcı tanımlı fonksiyonda satıra çalışıyor sarı dolgulu olan yerde sütuna çalışmıyor değer hatası veriyor.Ayrıca formüller boşluklu olursa nasıl olur yardımcı olurmusunuz.
 

Ekli dosyalar

Gata

Altın Üye
Katılım
11 Ağustos 2018
Mesajlar
271
Excel Vers. ve Dili
Excelde 2016 Türkçe
Altın Üyelik Bitiş Tarihi
21-09-2027
Ekte Göndermiş olduğum örnekte kullanıcı tanımlı fonksiyonda satıra çalışıyor sarı dolgulu olan yerde sütuna çalışmıyor değer hatası veriyor.Ayrıca formüller boşluklu olursa nasıl olur yardımcı olurmusunuz.
 

Ekli dosyalar

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Ben denyerek gönderdim sorun da göremiyorum halen.
=myToColumn(A2:C11;1;3;0)

4 değişken var.
1.si tek sütun ya da satır olarak oluşturacağınız sonucun alınacağı Kaynak Alan, Range
2.si Sonuc tek bir sütun olacaksa 0 yazılır, 0 yazılmasa satır olarak sonucu döndürür
3.sü Hangi verilerin alınacağıdır. 0:Tüm değerler / 1: boşluk olmayanlar / 2:Hata olmayanlar /3: Boş ya da hata olmayanlar
4.sü 0 olursa önce satırı tarar, değilse önce sütunu tarar.
 

Gata

Altın Üye
Katılım
11 Ağustos 2018
Mesajlar
271
Excel Vers. ve Dili
Excelde 2016 Türkçe
Altın Üyelik Bitiş Tarihi
21-09-2027
Pc ye geçince deneyim hocam İNDİS($A$2:$C$11;BÖLÜM(SATIR(A1)-1;3)+1;MOD(SATIR(A1)-1;3)+1) yazmış olduğunuz formülde boşluksuz boşluklu olursa formülü nasıl olur selamlar
 

Gata

Altın Üye
Katılım
11 Ağustos 2018
Mesajlar
271
Excel Vers. ve Dili
Excelde 2016 Türkçe
Altın Üyelik Bitiş Tarihi
21-09-2027
Ben denyerek gönderdim sorun da göremiyorum halen.
=myToColumn(A2:C11;1;3;0)

4 değişken var.
1.si tek sütun ya da satır olarak oluşturacağınız sonucun alınacağı Kaynak Alan, Range
2.si Sonuc tek bir sütun olacaksa 0 yazılır, 0 yazılmasa satır olarak sonucu döndürür
3.sü Hangi verilerin alınacağıdır. 0:Tüm değerler / 1: boşluk olmayanlar / 2:Hata olmayanlar /3: Boş ya da hata olmayanlar
4.sü 0 olursa önce satırı tarar, değilse önce sütunu tarar.
 

Gata

Altın Üye
Katılım
11 Ağustos 2018
Mesajlar
271
Excel Vers. ve Dili
Excelde 2016 Türkçe
Altın Üyelik Bitiş Tarihi
21-09-2027
Hocam Hakkınızı Helal edin Sizi Çok yordum sorun Çözüldü bir sorum daha olacak
=İNDİS($A$2:$C$11;BÖLÜM(SATIR(A1)-1;3)+1;MOD(SATIR(A1)-1;3)+1)
=İNDİS($A$2:$C$11;BÖLÜM(SÜTUN(A1)-1;3)+1;MOD(SÜTUN(A1)-1;3)+1)
Verilerde boşluk olursa formül nasıl olur
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Formülleri ben vermedim.
Ben KTF yazdım sadece.
SATIRA ve SÜTUNA 365 versiyonundaki formüllerin birleşmiş halidir.
 

Gata

Altın Üye
Katılım
11 Ağustos 2018
Mesajlar
271
Excel Vers. ve Dili
Excelde 2016 Türkçe
Altın Üyelik Bitiş Tarihi
21-09-2027
Formülleri ben vermedim.
Ben KTF yazdım sadece.
SATIRA ve SÜTUNA 365 versiyonundaki formüllerin birleşmiş halidir.
Teşekkür ederim hocam emeğinize sağlık iyi akşamlar
 
Üst