• Bir süredir maillerde yaşanan sorunlar giderilmiştir. Şifremi unuttum yaparak şifrelerinizi mailinizden alabilirsiniz.

  • Foruma hoş geldin 👋 Ziyaretçi

    Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

Çözüldü Splittext formülünü excell 2016 versiyonunda kullanma

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.
Durum
Konu Çözümlendiği İçin Kapatılmıştır.

ceviq

Yeni Üye
Kullanıcı Bilgileri
Aktiflik
Çevrimdışı
Katılım
1 Eyl 2023
Mesajlar
4
Aldığı beğeni
1
Excel V
Office 2010 EN
Konuyu Başlatan
Merhabalar,

Elimde breakline(alt+enter) ile alt alta yazılmış 14 basamaklı verilerimin olduğu bir hücrem mevcut. Bu hücredeki 14'ün katı olan değişken uzunluktaki
değerimi 14'er karakterli gruba ayırıp bu her bir grubu Vlookup ile farklı bir tabloda aramak ve karşılığını getirmek istemekteyim. Bu durumu aşağıda paylaşmış olduğum kod ile office 365 sürümünde splittext ve xlookup formülü ile kendi şahsi bilgisayarımda çözebilmekteyim. Ancak şirkette kullanmış olduğum office 2016 sürümünde splittext ve xlookup formülü çalışmamakta.

Office 2010-2016 gibi sürümlerde splittext fonksiyonunu vba modülü olarak nasıl ekleyebilirim. Yada bahsetmiş olduğum bu durumu nasıl çözebilirim?

Kod:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.

Ekte paylaşmış olduğum dosyadaki; B2 ve B3 hücreleri benim manual olarak oluşturmuş olduğum verilerim. Bu hücrede yer alan 14 karakter uzunluğundaki değerleri tek tek alt+enter ile hücreye girişini yapıyorum. Bu hücredeki karakter uzunluğu 14'ün katı şeklinde oluyor ve ben bu hücredeki değeri her 14 karakterde bir bölerek bölünmüş değeri kaynak verilerim(F:F sütunu) arasında arayıp sonucunu(G:G sütunu) getirmekteyim.


Desteğinizi bekler iyi çalışmalar dilerim.
 

Ekli dosyalar

  • Book1.xlsx
    10.3 KB · Gösterim: 6
Çözüm
Cevabınıza karşılık olarak, bir önceki yazdığım mesajdan alıntılarla cevap vermeye çalışacağım.
Öncelikle, Profilinizde Excel2010 yazdığı için, cevabımı 2010 da da geçerli olacak şekilde vermiştim.
İşyerinde Office Standard 2019 sürümünde denediğimde
METİNBİRLEŞTİR (TEXTJOIN) işlevi ise Excel2019 ve sonrasında mevcut.

Bu durumda KTF kullanmaya gerek kalmadan, dosyayı .xlsm uzantılı yapmadan direkt olarak .xlsx uzantılı olarak ve formülle çözebilirsiniz. Çünkü METİNBİRLEŞTİR. (TEXTJOIN) işlevi sizde mevcut.

İşyerinde Office Standard 2019 sürümünde denediğimde bahsettiğiniz gibi sadece ilk değeri getiriyor, paylaşmış olduğunuz çözüm formülü ise hiçbir sonucu getirmemekte sdece - olarak değer...
Selamlar,
METİNBÖL (TEXTSPLIT) işlevi sadece 365 versiyonunda var.
METİNBİRLEŞTİR (TEXTJOIN) işlevi ise Excel2019 ve sonrasında mevcut. Siz Excel2010 - 2016 için istediğinizde (profilinizde de Excel2010 yazmakta) formüllerle çözüm ancak yardımcı sütun/sütunlar kullanmakla mümkün. Uygun Çözüm ise, ya direkt makro ile ya da makro ile yazılmış Kullanıcı Tanımlı Fonksiyon kullanmakla mümkün.

Burada, 2 adet KTF kullanımı ile sonuca gitmeye çalıştım. (Kısıtlı Makro bilgim ile)

Belirtmeliyim ki, ben 365 kullanmakta olduğum için diziler ile çalışmada hiç bir problemle karşılaşılmıyor. Ve sonuçları da diğer versiyonlarda deneme şansım maalesef yok. Çalışmıyor, hata veriyor gibi geri bildirimlerde deneme şansım olmadığından çözüme gidemiyorum...

Çözümüm resimdeki gibidir.. Denersiniz....
Not : Özellikle, örneğinizdeki ilk satırın 2. verisi 16 karakterden oluşmakta olduğu için çözümü o yönde vermeye çalıştım.

Makro üstatlarının çok daha pratik çok daha güzel çözümler vereceğini düşünüyorum...

R346.png

D2 hücresindeki formül (2 KTF in ortaklaşa kullanımı)
Kod:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.

Dosyanız ektedir.... incelersiniz..

Bazı eklemelerde bulunmak isterim.
Evet deneme şansım yok, ama, yine de daha önce karşılaştığım bir olay ve çözümünü de yazmak istedim...
KTF BolMetin dizi olarak sonuç döndürür. Excel2109 ve öncesinde bu dizi sonuçtan dizi olarak değer elde etmek gerekebilir. İşte bu durumda formül, tüm sonuçlardan ziyade ilk sonucu döndürür.
Eğer bu olayla ilgili bir durum oluşursa, bu olaya dair çözüm aşağıdaki gibi olabilir. (Ya da her halikarda bu formülü kullanmak olası durumlara çözüm olması açısından daha uygun olacaktır.)

D2 hücresine DİZİ Formül olarak (DİZİ Formülün hücreye girişi sadece ENTER ile değil CTRL + SHIFT + ENTER tuşlarının 3 üne aynı anda basarak yapılmalıdır. Formül doğru şekilde girildiğinde otomatik olarak { } parantezleri içerisine alınır.)
Kod:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.

Eğer Excel2013 ve üzeri için kullanacaksanız BolMetin işlevi yerine XMLFİLTRELE işlevi de kullanılabilir.
Bu durumda D2 hücresine DİZİ Formül olarak
Kod:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.
 

Ekli dosyalar

  • Book1_01.xlsm
    20 KB · Gösterim: 4
Selamlar,
METİNBÖL (TEXTSPLIT) işlevi sadece 365 versiyonunda var.
METİNBİRLEŞTİR (TEXTJOIN) işlevi ise Excel2019 ve sonrasında mevcut. Siz Excel2010 - 2016 için istediğinizde (profilinizde de Excel2010 yazmakta) formüllerle çözüm ancak yardımcı sütun/sütunlar kullanmakla mümkün. Uygun Çözüm ise, ya direkt makro ile ya da makro ile yazılmış Kullanıcı Tanımlı Fonksiyon kullanmakla mümkün.

Burada, 2 adet KTF kullanımı ile sonuca gitmeye çalıştım. (Kısıtlı Makro bilgim ile)

Belirtmeliyim ki, ben 365 kullanmakta olduğum için diziler ile çalışmada hiç bir problemle karşılaşılmıyor. Ve sonuçları da diğer versiyonlarda deneme şansım maalesef yok. Çalışmıyor, hata veriyor gibi geri bildirimlerde deneme şansım olmadığından çözüme gidemiyorum...

Çözümüm resimdeki gibidir.. Denersiniz....
Not : Özellikle, örneğinizdeki ilk satırın 2. verisi 16 karakterden oluşmakta olduğu için çözümü o yönde vermeye çalıştım.

Makro üstatlarının çok daha pratik çok daha güzel çözümler vereceğini düşünüyorum...

Ekli dosyayı görüntüle 19942

D2 hücresindeki formül (2 KTF in ortaklaşa kullanımı)
Kod:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.

Dosyanız ektedir.... incelersiniz..

Bazı eklemelerde bulunmak isterim.
Evet deneme şansım yok, ama, yine de daha önce karşılaştığım bir olay ve çözümünü de yazmak istedim...
KTF BolMetin dizi olarak sonuç döndürür. Excel2109 ve öncesinde bu dizi sonuçtan dizi olarak değer elde etmek gerekebilir. İşte bu durumda formül, tüm sonuçlardan ziyade ilk sonucu döndürür.
Eğer bu olayla ilgili bir durum oluşursa, bu olaya dair çözüm aşağıdaki gibi olabilir. (Ya da her halikarda bu formülü kullanmak olası durumlara çözüm olması açısından daha uygun olacaktır.)

D2 hücresine DİZİ Formül olarak (DİZİ Formülün hücreye girişi sadece ENTER ile değil CTRL + SHIFT + ENTER tuşlarının 3 üne aynı anda basarak yapılmalıdır. Formül doğru şekilde girildiğinde otomatik olarak { } parantezleri içerisine alınır.)
Kod:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.

Eğer Excel2013 ve üzeri için kullanacaksanız BolMetin işlevi yerine XMLFİLTRELE işlevi de kullanılabilir.
Bu durumda D2 hücresine DİZİ Formül olarak
Kod:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.

Hocam çok teşekkür ederim kod Excell 365 sürümünde gayet başarılı bir şekilde çalışmakta hiçbir problem yok.
İşyerinde Office Standard 2019 sürümünde denediğimde bahsettiğiniz gibi sadece ilk değeri getiriyor, paylaşmış olduğunuz çözüm formülü ise hiçbir sonucu getirmemekte sdece - olarak değer döndürmekte.
 
Sn ceviq #2 nolu msjdaki Dosya xlsm uzantısında yani makrolu dosya olduğu için dosyayı açmadan önce ;
1- Dosyaya Sağ tıklayıp özelliklerden engellemeyi kaldır daki tiki tıklayıp kaldırmak gerekiyor.
2- Engellemeyi kaldırıp dosyayı açtığında şayet çıkıyorsa üst taraftaki içeriği etkinleştiri tıklayıp ondan sonra denemek lazım.

 
Sn ceviq #2 nolu msjdaki Dosya xlsm uzantısında yani makrolu dosya olduğu için dosyayı açmadan önce ;
1- Dosyaya Sağ tıklayıp özelliklerden engellemeyi kaldır daki tiki tıklayıp kaldırmak gerekiyor.
2- Engellemeyi kaldırıp dosyayı açtığında şayet çıkıyorsa üst taraftaki içeriği etkinleştiri tıklayıp ondan sonra denemek lazım.


Merhaba,
Dosyayı bu şekilde açtım ancak dediğim gibi 2019 sürümünde denediğimde çalıştıramadım.
 
Cevabınıza karşılık olarak, bir önceki yazdığım mesajdan alıntılarla cevap vermeye çalışacağım.
Öncelikle, Profilinizde Excel2010 yazdığı için, cevabımı 2010 da da geçerli olacak şekilde vermiştim.
İşyerinde Office Standard 2019 sürümünde denediğimde
METİNBİRLEŞTİR (TEXTJOIN) işlevi ise Excel2019 ve sonrasında mevcut.

Bu durumda KTF kullanmaya gerek kalmadan, dosyayı .xlsm uzantılı yapmadan direkt olarak .xlsx uzantılı olarak ve formülle çözebilirsiniz. Çünkü METİNBİRLEŞTİR. (TEXTJOIN) işlevi sizde mevcut.

İşyerinde Office Standard 2019 sürümünde denediğimde bahsettiğiniz gibi sadece ilk değeri getiriyor, paylaşmış olduğunuz çözüm formülü ise hiçbir sonucu getirmemekte sdece - olarak değer döndürmekte.
Evet... Buna yanıtım iki alıntı ile olacak.
Belirtmeliyim ki, ben 365 kullanmakta olduğum için diziler ile çalışmada hiç bir problemle karşılaşılmıyor. Ve sonuçları da diğer versiyonlarda deneme şansım maalesef yok. Çalışmıyor, hata veriyor gibi geri bildirimlerde deneme şansım olmadığından çözüme gidemiyorum...
Excel2109 ve öncesinde bu dizi sonuçtan dizi olarak değer elde etmek gerekebilir. İşte bu durumda formül, tüm sonuçlardan ziyade ilk sonucu döndürür.
EĞER bu olayla ilgili bir durum oluşursa, bu olaya dair çözüm aşağıdaki gibi olabilir. (Ya da her halikarda bu formülü kullanmak olası durumlara çözüm olması açısından daha uygun olacaktır.)

Yani, ilk dizi ile ID Numaraları bulunuyor. İkinci dizi ise, bulunan ID numaralarından hareketle ilk 14 karakter alınıyor ve buna göre de İsimler bulunuyor.
Bu durumda, Excel365 / 2021 haricindeki versiyonlarda dizilerin dökülme özelliği yok. Dizilerden hareketle tek tek (formülü aşağıya doğru çoğaltarak) değerler hesaplanmalıdır. Diğer bir ifadeyle, bu durumda dizinin Excel tarafından işlenebilmesi gerekmektedir.
O nedenle de formüle
S(EĞER(1;SATIR(DOLAYLI("1:"&UZUNLUK(B2)-UZUNLUK(YERİNEKOY(B2;DAMGA(10);""))+1))))
eklemesi yapılmalıdır ki, Excel dizi olarak çalıştırabilsin.

Şimdi özellikle bir alıntıyı daha eklemek istiyorum.
D2 hücresine DİZİ Formül olarak (DİZİ Formülün hücreye girişi sadece ENTER ile değil CTRL + SHIFT + ENTER tuşlarının 3 üne aynı anda basarak yapılmalıdır. Formül doğru şekilde girildiğinde otomatik olarak { } parantezleri içerisine alınır.)

Muhtemelen, sanıyorum sizin hatanız burada...
Formülü DİZİ Formül olarak girmek gerekecektir.
Formülü hücreye yazıp ENTER yaparsanız formül Normal formül gibi girilir.
Oysa ki, DİZİ Formüller için, formülü hücreye yazdıktan sonra, formülün hücreye girişi sadece ENTER ile değil CTRL + SHIFT + ENTER tuşlarının 3üne AYNI anda basılarak yapılmalıdır.
CTRL+SHIFT+ENTER ile formül doğru şekilde girildiğinde, Excel otomatik olarak formülü { } parantezleri içerisine alacaktır. Ve Dizi formül olarak görecek ve o şekilde çalışmasını sağlayacaktır.
1 - Formül doğru şekilde girilmediğinde, ya da
2 - { } parantezleri formüle MANUEL olarak eklenildiğinde
formül düzgün çalışmayacaktır. Muhtemelen ilk değeri döndürecektir. Ya da Yanlış bir sonuç üretecektir.

Şimdi, Excel 2019 için, KTF kullanılmadan (makrosuz), formülle çözüm.
(2 nolu mesajımdaki en son formülde, BirlestirMetin KTF yerine 2019 daki TEXTJOIN işlevinin kullanılması ile)
Formül DİZİ formüldür. CTRL+SHIFT+ENTER ile girilmelidir.
Kod:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.

Çözüm resimdeki gibidir. Dikkat ederseniz, dizi formül doğru şekilde girilmiş ve Excel, formülü otomatik olarak {...} parantezleri içerisine almıştır.
R347.png
Dosya ektedir... İncelersiniz....
Önemli Not : Yine de istenilen sonuçlar elde edilemiyorsa, başka versiyonda deneme şansım maalesef ki YOK.... Kendi açımdan, Başka yapabileceğim bir şey olmadığını şimdiden belirteyim.
 

Ekli dosyalar

  • Book1_01.xlsx
    11 KB · Gösterim: 4
Çözüm
Cevabınıza karşılık olarak, bir önceki yazdığım mesajdan alıntılarla cevap vermeye çalışacağım.
Öncelikle, Profilinizde Excel2010 yazdığı için, cevabımı 2010 da da geçerli olacak şekilde vermiştim.



Bu durumda KTF kullanmaya gerek kalmadan, dosyayı .xlsm uzantılı yapmadan direkt olarak .xlsx uzantılı olarak ve formülle çözebilirsiniz. Çünkü METİNBİRLEŞTİR. (TEXTJOIN) işlevi sizde mevcut.


Evet... Buna yanıtım iki alıntı ile olacak.



Yani, ilk dizi ile ID Numaraları bulunuyor. İkinci dizi ise, bulunan ID numaralarından hareketle ilk 14 karakter alınıyor ve buna göre de İsimler bulunuyor.
Bu durumda, Excel365 / 2021 haricindeki versiyonlarda dizilerin dökülme özelliği yok. Dizilerden hareketle tek tek (formülü aşağıya doğru çoğaltarak) değerler hesaplanmalıdır. Diğer bir ifadeyle, bu durumda dizinin Excel tarafından işlenebilmesi gerekmektedir.
O nedenle de formüle
S(EĞER(1;SATIR(DOLAYLI("1:"&UZUNLUK(B2)-UZUNLUK(YERİNEKOY(B2;DAMGA(10);""))+1))))
eklemesi yapılmalıdır ki, Excel dizi olarak çalıştırabilsin.

Şimdi özellikle bir alıntıyı daha eklemek istiyorum.


Muhtemelen, sanıyorum sizin hatanız burada...
Formülü DİZİ Formül olarak girmek gerekecektir.
Formülü hücreye yazıp ENTER yaparsanız formül Normal formül gibi girilir.
Oysa ki, DİZİ Formüller için, formülü hücreye yazdıktan sonra, formülün hücreye girişi sadece ENTER ile değil CTRL + SHIFT + ENTER tuşlarının 3üne AYNI anda basılarak yapılmalıdır.
CTRL+SHIFT+ENTER ile formül doğru şekilde girildiğinde, Excel otomatik olarak formülü { } parantezleri içerisine alacaktır. Ve Dizi formül olarak görecek ve o şekilde çalışmasını sağlayacaktır.
1 - Formül doğru şekilde girilmediğinde, ya da
2 - { } parantezleri formüle MANUEL olarak eklenildiğinde
formül düzgün çalışmayacaktır. Muhtemelen ilk değeri döndürecektir. Ya da Yanlış bir sonuç üretecektir.

Şimdi, Excel 2019 için, KTF kullanılmadan (makrosuz), formülle çözüm.
(2 nolu mesajımdaki en son formülde, BirlestirMetin KTF yerine 2019 daki TEXTJOIN işlevinin kullanılması ile)
Formül DİZİ formüldür. CTRL+SHIFT+ENTER ile girilmelidir.
Kod:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.

Çözüm resimdeki gibidir. Dikkat ederseniz, dizi formül doğru şekilde girilmiş ve Excel, formülü otomatik olarak {...} parantezleri içerisine almıştır.
Ekli dosyayı görüntüle 19974
Dosya ektedir... İncelersiniz....
Önemli Not : Yine de istenilen sonuçlar elde edilemiyorsa, başka versiyonda deneme şansım maalesef ki YOK.... Kendi açımdan, Başka yapabileceğim bir şey olmadığını şimdiden belirteyim.
Hocam merhaba,

öncelikle ilginiz alakanız emeğiniz için minnettarım. Değerli vaktinizi ayırıp ilgilenmeniz emin olun kodun herhangi bir versiyonda çalışmasından daha önemli ve değerli benim için. Şirkette internete kısıtlı erişimim olması sebebiyle denemeleri yapmada biraz yavaş kalıyorum. Tavsiyelerinizi ve yönlendirmelerinizi deneyip olumlu olumsuz geri dönüş sağlayacağım.

Tekrardan ilginiz için çok teşekkür ederim.
 
Durum
Konu Çözümlendiği İçin Kapatılmıştır.
Geri
Üst