• DİKKAT

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

Harfin türüne göre metine ilave yapma

Katılım
19 Eylül 2008
Mesajlar
2
Excel Vers. ve Dili
excel tr
Sevgili arkadaşlar eğer ile ilgili olarak sadece rakamsal değerler ile mi çalışabiliriz, Metin çalışması hakkında yardımcı olursanız sevinirim. Benim sorunum şöyle d10 hücresine yazılan metin, e10 hücresinde sonuna 'nde' yazılacak yanlış ise 'nda' yazılacak, Yani d10'a "Personel Şube Müdürlüğü" yazdığımda e10'a "Personel Şube Müdürlüğünde" yazmasını istiyorum. Tabi d10 değiştiğinde ise e10'da "..........Müdürlüğünde" olması, Müdürlüğü olmadığında da 'nda' yazması yani "..............nda' ihtimali varmı. (Yada sadece e10 hücresine 'nde' veya 'nda' olabilir). Bunu formulüze edebilirmiyiz. Şimdiden ilginiz için Teşekkürler
 

Ekli dosyalar

Son düzenleme:
merhaba
foruma hoşgeldiniz.
sorularınıza çabuk ve net cevap alabilmeniz için örnek dosya ile destekleyiniz.
 
a1 hücresine yazılan kelime a,ı,o,u ile bitiyorsa kelimenin sonuna "nda ekleyip e1 hücresine yazıyor, eğer e,i,ö,ü ile bitiyorsa "nde" ekleyip yazıyor. fakat sessiz harf ile biterse yine "nde"ekleyip yazacaktır. ama sanırım bu istediğiniz şeyi karşılar.
formul şöyle
Kod:
=EĞER(YADA(PARÇAAL(A1;UZUNLUK(A1);1)="ü";PARÇAAL(A1;UZUNLUK(A1);1)="ö";PARÇAAL(A1;UZUNLUK(A1);1)="i";PARÇAAL(A1;UZUNLUK(A1);1)="e");BİRLEŞTİR(A1;"nde");BİRLEŞTİR(A1;"nda"))

formule şöyle ekleme yaparsak sessiz harf ile biten kelimeleri olduğu gibi yazacaktır
Kod:
=EĞER(YADA(PARÇAAL(A1;UZUNLUK(A1);1)="ü";PARÇAAL(A1;UZUNLUK(A1);1)="ö";PARÇAAL(A1;UZUNLUK(A1);1)="i";PARÇAAL(A1;UZUNLUK(A1);1)="e");BİRLEŞTİR(A1;"nde");EĞER(YADA(PARÇAAL(A1;UZUNLUK(A1);1)="u";PARÇAAL(A1;UZUNLUK(A1);1)="o";PARÇAAL(A1;UZUNLUK(A1);1)="ı";PARÇAAL(A1;UZUNLUK(A1);1)="a");BİRLEŞTİR(A1;"nda");A1))

a1 e aşağıdakilerdeki gibi birini yazarsak formülün olduğu hücrede okla gösterilen gibi yazacaktır.

bürosu => bürosunda
evi => evinde
müdür => müdür
 

Ekli dosyalar

Son düzenleme:
Hızınıza Hayran Kaldım, elinize ve beyninize Sağlık , beni büyük bir dertten kurtardınız
 
ayısına devam

Aynı konu ile ilgili devam eden bir sorun olduğu için buraya eklemeyi uygun gördüm sorumu. konu fazlalığıda olmamış olur.

Bu formül bana otomatik dilekçe yazdırmak için gerekli sadece isim soyisim girilen bir yücreyi bazı yazılarla ekleyecek ve gerekli yerlerde iyelik eki ekleyecek. Misal : ben veri sayfasından "ismail topal" yazacağım yazıda " ismail topalın ekteki dilekçesi" gibi bir yazı olacak. bu kadar üşengeç olma ekiyle yazıver diyebilirsiniz. fakat aynı veriye yazının başka yerlerinde eksiz olarakta ihtiyacım var. bunu halledebilirsem birde yönelme eki yapacağım. ismail---->ismaile gibi.
ekteki dosyada bu işi yapan formüllü bir dosya var fakat çook uzun daha kısa bir yolu varmı acaba.
makrosuz bir yöntemi varsa tercihimdir. makro eklemeyi dahi bilmem çünki.
şimdiden teşekkürler.
 

Ekli dosyalar

sanırım sorunun yapılandan daha kısa bir cevabı yok
en azından eğer koşullarında hücrenin değerinin sesli harf olup olmadığını anlamak için sesli harf kümesine eşit olup olmadığını kısaltamazmıyız. her harf için ayrı karşılaştırmamı yapmak lazım?

yada(a1="a"; a1="e"; a1="ı"; a1="i"; a1="o"; a1="ö"; a1="u"; a1="ü")
bu kontrolü daha kısa yapmanın bir yolu yokmu?
 
sanırım sorunun yapılandan daha kısa bir cevabı yok
en azından eğer koşullarında hücrenin değerinin sesli harf olup olmadığını anlamak için sesli harf kümesine eşit olup olmadığını kısaltamazmıyız. her harf için ayrı karşılaştırmamı yapmak lazım?

yada(a1="a"; a1="e"; a1="ı"; a1="i"; a1="o"; a1="ö"; a1="u"; a1="ü")
bu kontrolü daha kısa yapmanın bir yolu yokmu?

Merhaba,

Bir data oluşturup Düşeyara fonskiyonunu kullanabilirsiniz..

.
 
self service

ancak böyle bir çözüm buldum.tablodan arama yapmayı istemememiştim çünkü onu formülün içine gömme şansım hiç yok. tabloyu var ara formülleri ayrı bir sayfaya atarsam daha sade olabilir aslında. en azından artık daha hatasız şekilde uygun ekleri ekleyebiliyor. kendi işimi görecek birşey yapabildim.
 

Ekli dosyalar

Herkese Merhabalar;

Söz konusu işlemin makrolarla yapılabilmesine ihtiyaç duyduğumdan bu konuda araştırma yaparken aşağıdaki PHP kodlarını buldum.Makrolara uyarlanırsa bir çok kişi için çok işlevsel olacağını düşünüyorum.Artık acaba makrolara uyarlanabilir mi diye sormuyorum çünkü bu sitede gerçekten olmaz sandığım herşey olabiliyor:)

Hocalarımız ilgilenmeye değer görürlerse kodları aşağıda veriyorum.

/*ismin nikneymin sonuna gereken eki ekler */
function isimeki($ad, $ektipi= "in")
{

$sertsessizler = array("ç", "f", "h", "k", "p","s", "ş", "t");

/// türkçe sesli ve sert sessiz karakterler
$buyuk = array("A", "I", "E", "İ", "U","O", "Ü", "Ö", "Ç", "F", "H", "K", "P","S", "Ş", "T");
$kucuk = array("a", "ı", "e", "i", "u","o", "ü", "ö", "ç", "f", "h", "k", "p","s", "ş", "t");
$kucultulmus = str_replace($buyuk, $kucuk, $ad);
$isim=trim($kucultulmus);
$sonharf = substr($isim, -1); // isimdeki son karakteri bulduk

/// aşağıdaki kısım regexp ile son sesli harfi buluyor.
/// bugcheck şeysi regexp özürlü turkce harfleri adam etmek için.
$bugcheckkaynak = array("ı", "ö", "ü");
$bugcheckhedef = array("a", "`", "`");
$bugfixed=str_replace($bugcheckkaynak, $bugcheckhedef, $isim);
preg_match_all('/[aeiou`]/', $bugfixed, $bulunanlar);
$sesliler=$bulunanlar[0];
$sonsesli=end($sesliler); //isimdeki son sesli harfi bulduk



switch ($ektipi) {
case "in": //iyelik eki -> Ahmet'in
if ($sonharf=="a" or $sonharf=="ı") {$eki="'nın";}
elseif ($sonharf=="e" or $sonharf=="i") {$eki="'nin";}
elseif ($sonharf=="u" or $sonharf=="o") {$eki="'nun";}
elseif ($sonharf=="ü" or $sonharf=="ö") {$eki="'nün";}

elseif ($sonsesli=="a" or $sonsesli=="ı") {$eki="'ın";}
elseif ($sonsesli=="e" or $sonsesli=="i") {$eki="'in";}
elseif ($sonsesli=="u" or $sonsesli=="o") {$eki="'un";}
elseif ($sonsesli=="`" ) {$eki="'ün";}
else {$eki="'ın";}
break;

case "e": // ismin e hali -> Ahmet'e
if ($sonharf=="a" or $sonharf=="ı" or $sonharf=="u" or $sonharf=="o") {$eki="'ya";}
elseif ($sonharf=="e" or $sonharf=="i" or $sonharf=="ü" or $sonharf=="ö") {$eki="'ye";}

elseif ($sonsesli=="a" or $sonsesli=="ı" or $sonsesli=="u" or $sonsesli=="o") {$eki="'a";}
elseif ($sonsesli=="e" or $sonsesli=="i" or $sonsesli=="ö" or $sonsesli=="ü") {$eki="'e";}
else {$eki="'a";}
break;

case "i": // ismin i hali -> Ahmet'i
if ($sonharf=="a" or $sonharf=="ı") {$eki="'yı";}
elseif ($sonharf=="e" or $sonharf=="i") {$eki="'yi";}
elseif ($sonharf=="u" or $sonharf=="o") {$eki="'yu";}
elseif ($sonharf=="ü" or $sonharf=="ö") {$eki="'yü";}

elseif ($sonsesli=="a" or $sonsesli=="ı") {$eki="'ı";}
elseif ($sonsesli=="e" or $sonsesli=="i") {$eki="'i";}
elseif ($sonsesli=="u" or $sonsesli=="o") {$eki="'u";}
elseif ($sonsesli=="`" ) {$eki="'ü";}
break;


case "de": // ismin de hali -> Ahmet'te / Ayşe'de
if ($sonharf=="a" or $sonharf=="ı" or $sonharf=="u" or $sonharf=="o") {$eki="'da";}
elseif ($sonharf=="e" or $sonharf=="i" or $sonharf=="ü" or $sonharf=="ö") {$eki="'de";}
elseif (in_array($sonharf, $sertsessizler) and ($sonsesli=="a" or $sonsesli=="ı" or $sonsesli=="u" or $sonsesli=="o") ) {$eki="'ta";}
elseif (in_array($sonharf, $sertsessizler) and ($sonsesli=="e" or $sonsesli=="i" or $sonsesli=="ü" or $sonsesli=="ö") ) {$eki="'te";}
elseif ($sonsesli=="a" or $sonsesli=="ı" or $sonsesli=="u" or $sonsesli=="o") {$eki="'da";}
elseif ($sonsesli=="e" or $sonsesli=="i" or $sonsesli=="ü" or $sonsesli=="ö") {$eki="'da";}
elseif (in_array($sonharf, $sertsessizler)) {$eki="'ta";}

else {$eki="'da";}
break;

case "den": // ismin de hali -> Ahmet'ten / Ayşe'den
if ($sonharf=="a" or $sonharf=="ı" or $sonharf=="u" or $sonharf=="o") {$eki="'dan";}
elseif ($sonharf=="e" or $sonharf=="i" or $sonharf=="ü" or $sonharf=="ö") {$eki="'den";}
elseif (in_array($sonharf, $sertsessizler) and ($sonsesli=="a" or $sonsesli=="ı" or $sonsesli=="u" or $sonsesli=="o") ) {$eki="'tan";}
elseif (in_array($sonharf, $sertsessizler) and ($sonsesli=="e" or $sonsesli=="i" or $sonsesli=="ü" or $sonsesli=="ö") ) {$eki="'ten";}
elseif ($sonsesli=="a" or $sonsesli=="ı" or $sonsesli=="u" or $sonsesli=="o") {$eki="'dan";}
elseif ($sonsesli=="e" or $sonsesli=="i" or $sonsesli=="ü" or $sonsesli=="ö") {$eki="'dan";}
elseif (in_array($sonharf, $sertsessizler)) {$eki="'tan";}

else {$eki="'dan";}
break;

case "ile": // beraberlik hali -> Ayşeyle / Ahmetle
if ($sonharf=="a" or $sonharf=="ı" or $sonharf=="u" or $sonharf=="o") {$eki="yla";}
elseif ($sonharf=="e" or $sonharf=="i" or $sonharf=="ü" or $sonharf=="ö") {$eki="yle";}

elseif ($sonsesli=="a" or $sonsesli=="ı" or $sonsesli=="u" or $sonsesli=="o") {$eki="la";}
elseif ($sonsesli=="e" or $sonsesli=="i" or $sonsesli=="ö" or $sonsesli=="ü") {$eki="le";}
else {$eki="'la";}
break;
}
$sonuc= $ad.$eki;
return $sonuc;
}
 
şöyle bir örnek yaptım bir tablodan arama yaparak ekleri hesaplıyor ve başka bir sayfaya aktarıyor. bu tabloda arama işi formüllerle yapılıyor. makro sadece formülle hesaplanan listeyi temiz metin olarak kopyalamak için var.
 

Ekli dosyalar

Geri
Üst