Formüldeki Fonksiyonları Ayırma

  • Konuyu başlatan Konuyu başlatan selamt
  • Başlangıç tarihi Başlangıç tarihi
Excel Versiyonu
Excel 2016
Excel Sürümü
64 Bit
Excel Dili
Türkçe
Merhaba,

Herhangi bir hücrede yazılı olan formül içindeki Excel Fonksiyonlarını ayrı bir hücrede, aralarında boşluk bırakarak hemen yan hücresine makro ile yazdırma şansımız var mıdır?

Örneğin; A1 hücresinde aşağıdaki gibi bir formül olsun:
LET(y;A2:A15;m;B2:B15;v;C2:C15;u;SIRALA(BENZERSİZ(ELEMAN({1;2};y;m));{1;2});ELEMAN({1;1;2};u;ÇOKEĞERORTALAMA(v;y;İNDİS(u;0;1);m;İNDİS(u;0;2))))
B1 hücresine, "LET","SIRALA","BENZERSİZ","ELEMAN","ÇOKEĞERORTALAMA","İNDİS" yazdırmak istiyorum.

Teşekkürler
 
Şu KTF'yi kullanın.

KTF kullanımı, =FORMUL(A1;ayrac) şeklindedir.
Örneğin ben Türkçe kullanıyorum ve dolayısıyla formül ayracı ";" karakteri.
Formül ayracı ÇİFT TIRNAK arasında; =FORMUL(A1;";") veya =FORMUL(A1;",") gibi yazılmalıdır.
Farklı formül yazma teknikleriyle denersiniz.

[REPLY]
VBA:
İndirmek için giriş yapmanız gerekmektedir.
(16 satır)
[/REPLY]
 
Önceki cevapta verdiğim koddaki kriterlere
krt = Array(ayrac, "(", "*", "/", "+", "-", "&", "^")
şeklinde, bir de KUVVET anlamındaki "^" karakterini eklemek gerekiyor.
Verdiğim kodu buna göre güncelledim.

Bir de hatırlatma;
excel dili Türkçe olsa dahi ayraç olarak "," (virgül) kullanılırsa işlevlerin İngilizce karşılıkları listelenecektir.

.
 
@halily
Farklı formül yazma teknikleriyle test etmekte yarar var.
Kriter listesine, "=" karakterinin de eklenmesi gerektiğini gördüm ve önceki cevapta verdiğim kodda bir güncelleme daha yaptım.
krt = Array(ayrac, "(", "*", "/", "+", "-", "&", "^", "=")

Malum, Excel'de kullanılan işlevler gün geçtikçe yeni eklemelerle çoğalmakta.
Bir veri tabanından hareket ederek işlem yapılması halinde de veri tabanının sürekli güncellenmesi sorunu çıkacaktır.
Bir veri tabanı olmaksızın, mevcut bir formülde kullanılan işlevlerin listelenmesi isteniyorsa
verdiğim KTF kod her şartta istenileni yapacaktır diye düşünüyorum.

KTF'nin kullanıldığı formül;
-- =FORMUL(A1;",") şeklinde ayraç olarak "," (virgül) kullanıldığında işlevlerin İNGİLİZCE karşılıkları,
-- =FORMUL(A1;";") şeklinde ayraç olarak ";" (noktalı virgül) kullanıldığında ise TÜRKÇE karşılıkları
listelenecektir.

1655297905948.webp
 
Moderatörün son düzenlenenleri:
hocam ben RegExp ile ayırma yöntemini kullandım
izninizle alternatif olarak o da bulunsun
Not: referanslardan "Microsoft VBScript Regular Expressions 5.5" eklenmeli
eklenmek istenmiyorsa koddaki tanımlama kısmı olan
1
2
Dim regex as RegExp
Set regex = New RegExp

aşağıdaki kodla değiştirilebilir
1
2
Dim regex as Object
Set regex = CreateObject("VBScript.RegExp")

Kod:
İndirmek için giriş yapmanız gerekmektedir.
(23 satır)
 
Referanslarda değişiklik yapmama yöntemini seçtim.
Esas olarak önemli sorun yok ama, her işlevden sonra bir ( simgesi oluşuyor idi.
KTF'nin en sonunu FORMUL_RegExp = Replace(Mid(TmpD, 2), "(", "") olarak değiştirdim.

Formül çevirme değil, esas olarak işlev listeleme hedeflendiğinden, mükerrerlik kontrolü eklenirse iyi olur sanırım
Verdiğiniz KTF ile; ekran görüntüsünü verdiğim ilk formülün sonucu şöyle:
EĞERHATA, EĞER, TOPLA, UZUNLUK, UZUNLUK, YERİNEKOY, TOPLA.ÇARPIM, PARÇAAL, BÜYÜK, İNDİS, ESAYIYSA, PARÇAAL, SATIR, DOLAYLI, UZUNLUK, SATIR, DOLAYLI, UZUNLUK, SATIR, DOLAYLI, UZUNLUK, SATIR, DOLAYLI, UZUNLUK, TOPLA, TOPLA

Bunu aşağıdaki gibi, işlevleri birer kez yazdıracak hale getirmek lazım.
EĞERHATA, EĞER, YERİNEKOY, TOPLA.ÇARPIM, BÜYÜK, İNDİS, ESAYIYSA, PARÇAAL, SATIR, DOLAYLI, UZUNLUK, TOPLA
 
Benzer Konular Popüler İçerikler Daha Fazlası
Geri
Üst