Arkadaşlar excelde bir hücrede telefon numaraları var.ev ve cep telefonları yazılı bu hücrelerde.kişiye ait o hücrede tek cep numarası veya ev numarası yer alabiliyor.ayrıca - işareti ile ev ve cep numarası birleştirilip tek hücrede yazılmış.yani benim bu numaraları 2 farklı sütun yapıp ayırmam lazım.biri cep numarası diğeri ev numarası sütunu olacak.5 ile başlayanları cep numarası sütununa 3 ile başlayanları ise ev numarası sütununa atmam lazım.aynı hücrede 2 numarada varsada bu işlem yapılacak.bunu nasıl yapabilirim...
Eğer bir sütunda 2 numara var ve numaralar birbirinden "-" ile ayrılıyorsa "Metni Sütunlara Dönüştür" ile yapabilirsin.
Eğer - ile ayrılmıyorsa formül kullanmak gerekiyor ama bunun için de hücre içini görmem gerek telefon numaraları nasıl yazılmış diye.
hücrelerin bazılarında çift numara var 536......-344...... gibi.bazılarında ise sadece tek numara var 3 veya 5 ile başlayan.ben her 3 duruma göre bir çözüm arıyorum.bitişikse ayırıp 5'le başlayanı cep numarası sütununa 3' le başlayanı ev telefonu sütununa yazacak eğer tek numara varsa yine aynı işlemi ayırma olmadan yapacak...
öncelikle hücrede 1 ya da 2 numara olup olmadığını sorgulatmak için =uzunluk() formülünü kullanabilirsin. =eğer(uzunluk(a1)>7;soldan(7);a1) formülü ile Eğer A1 hücresindeki değer uzunluk 7 den büyük ise (bir numara 7 rakamdan oluşuyor, büyükse demek ki 2 numara var) soldan 7 karakter al. Eğer 7 rakamdan küçükse o zaman A1 deki tüm içeriği al
şeklinde bir formül ile işe başlanabilir.
listeyi tam göremediğim için tam bir çözüm veremiyorum.
şöyle basit bir makro yazdım ancak geliştirilebilir
Function telefon(metin, ilknumara) As String Dim telefonlar() As String ilknumara = Trim(ilknumara) telefonlar = Split(metin, "-") If Left(telefonlar(0), 1) = ilknumara Then telefon = telefonlar(0) Exit Function End If If UBound(telefonlar) = 1 Then If Left(telefonlar(1), 1) = ilknumara Then telefon = telefonlar(1) Exit Function End If End If telefon = "" End Function
makroyu yapıştırmak için ALT+F11 e basın menüden inserrt / module tıklayın açılan pencereye yapıştırın
a1 hücresinde telefon numaraları varsa b1 de cep tlf için =telefon(A1;5) yazın c1 e ev tlf için =telefon(A1;3) yazın
öncelikle hücrede 1 ya da 2 numara olup olmadığını sorgulatmak için =uzunluk() formülünü kullanabilirsin. =eğer(uzunluk(a1)>7;soldan(7);a1) formülü ile Eğer A1 hücresindeki değer uzunluk 7 den büyük ise (bir numara 7 rakamdan oluşuyor, büyükse demek ki 2 numara var) soldan 7 karakter al. Eğer 7 rakamdan küçükse o zaman A1 deki tüm içeriği al
şeklinde bir formül ile işe başlanabilir.
listeyi tam göremediğim için tam bir çözüm veremiyorum.
Hocam hücrelerde kişi adı ve ona ait telefon numarası veya numaraları var.mesela a kişisinin 536..... gibi sadece 1 cep numarası var.b kişisinin ise 344.... gibi bir ev numarası var.c kişisinin ise tek hücrede 535.....-344..... gibi 2 numarasıda var.yani 3 durumda mevcut hücrelerde.ben cep ve ev numarası sütunlarına bu sütundan aldığım değerleri atayacağım.5 ile bşlayanlar cep 3 ile başlayanlar ev numarası olacak.sizin yöntem başlangıç için düşünülebilir ama orda 5 ve 3 rakamlarıyla bir EĞER ifadesi yazmalıyım sanırım.excel bilgim olmadığı için yapamıyorum...
şöyle basit bir makro yazdım ancak geliştirilebilir
Function telefon(metin, ilknumara) As String Dim telefonlar() As String ilknumara = Trim(ilknumara) telefonlar = Split(metin, "-") If Left(telefonlar(0), 1) = ilknumara Then telefon = telefonlar(0) Exit Function End If If UBound(telefonlar) = 1 Then If Left(telefonlar(1), 1) = ilknumara Then telefon = telefonlar(1) Exit Function End If End If telefon = "" End Function
makroyu yapıştırmak için ALT+F11 e basın menüden inserrt / module tıklayın açılan pencereye yapıştırın
a1 hücresinde telefon numaraları varsa b1 de cep tlf için =telefon(A1;5) yazın c1 e ev tlf için =telefon(A1;3) yazın
hocam öncelikle teşekkürler.sizin makronuz işimi görüyor rica etsem bana kodu açıklayabilirmisiniz.ben öğrenmek istiyorum mantığını.saygılar...
visual basic hiç bilmiyorsanız. anlaşılmadığı için kodları açıklamam hiç işinize yaramayacaktır. ama yinede açıklamaya çalışayım
Function telefon(metin, ilknumara) As String ' Function komutu ile telefon adında bir excel formülü icat ediyoruz. ' formülün 2 parametresi var bunlar excelde hücrede parantez içinde girdiklerimiz oluyor ' ilki metin adında yani telefon numaralarını alan parametre ' 2.si ilk numarayı belirlemek için ilknumara
Dim telefonlar() As String 'bellekte(RAM) telefonlar adında dizi değişkeni oluşturuluyor
ilknumara = Trim(ilknumara) 'ilknumara parametresine girdiğimiz rakam önünde bir boşluk ile geliyor yani " 5" şeklinde 'TRIM komutu öndeki ve sondaki boşlukları siler LTRIM de yeterdi aslında
telefonlar = Split(metin, "-") 'metin ile gelen veriyi "-" karakterinden ayırarak telefonlar dizi değişklenine aktarır 'telefonlar(0) "-"nin solunu, telefonlar(1) sağını ' dizi değişkenleri belirtilmezse 0'dan başlar
If Left(telefonlar(0), 1) = ilknumara Then 'IF ile burada mantıksal sınama yapılır. exceldeki EĞER gibi ' eğer telefonlar(0) daki telefon verisinin ilk rakamı 2. parametre ile gelen rakam ile eşitse aşağıdaki 2 satırı yap telefon = telefonlar(0) 'telefon değişkenine telefonlar(0)'ın değerini aktar. telefon değişkeni fonksiyon adı olduğu için bu excele formül sonucu olarak döner Exit Function 'fonsiyondan çık. bundan sonrası işlemez (eğer şartı uyarsa tabii) End If
If UBound(telefonlar) = 1 Then 'eğer telefonlar dizisinin toplam dizi sayısı 1 ise yani 2 tane dizi oluşturduysa. rakamlarda - varsa 2 tane oluşur zaten If Left(telefonlar(1), 1) = ilknumara Then ' eğer telefonlar(1)'in ilk rakamı ilknumraya eşitse alttaki 2 satırı işlet telefon = telefonlar(1) 'telefon değişkenine telefonlar(0)'ın değerini aktar. telefon değişkeni fonksiyon adı olduğu için bu excele formül sonucu olarak döner Exit Function End If End If telefon = "" 'yukardaki IF yani eğer şartlarından hiç biri uymadıysa formül dönüşü olarak boş yani hiçbirşey olarak excele gönder End Function
visual basic hiç bilmiyorsanız. anlaşılmadığı için kodları açıklamam hiç işinize yaramayacaktır. ama yinede açıklamaya çalışayım
Function telefon(metin, ilknumara) As String ' Function komutu ile telefon adında bir excel formülü icat ediyoruz. ' formülün 2 parametresi var bunlar excelde hücrede parantez içinde girdiklerimiz oluyor ' ilki metin adında yani telefon numaralarını alan parametre ' 2.si ilk numarayı belirlemek için ilknumara
Dim telefonlar() As String 'bellekte(RAM) telefonlar adında dizi değişkeni oluşturuluyor
ilknumara = Trim(ilknumara) 'ilknumara parametresine girdiğimiz rakam önünde bir boşluk ile geliyor yani " 5" şeklinde 'TRIM komutu öndeki ve sondaki boşlukları siler LTRIM de yeterdi aslında
telefonlar = Split(metin, "-") 'metin ile gelen veriyi "-" karakterinden ayırarak telefonlar dizi değişklenine aktarır 'telefonlar(0) "-"nin solunu, telefonlar(1) sağını ' dizi değişkenleri belirtilmezse 0'dan başlar
If Left(telefonlar(0), 1) = ilknumara Then 'IF ile burada mantıksal sınama yapılır. exceldeki EĞER gibi ' eğer telefonlar(0) daki telefon verisinin ilk rakamı 2. parametre ile gelen rakam ile eşitse aşağıdaki 2 satırı yap telefon = telefonlar(0) 'telefon değişkenine telefonlar(0)'ın değerini aktar. telefon değişkeni fonksiyon adı olduğu için bu excele formül sonucu olarak döner Exit Function 'fonsiyondan çık. bundan sonrası işlemez (eğer şartı uyarsa tabii) End If
If UBound(telefonlar) = 1 Then 'eğer telefonlar dizisinin toplam dizi sayısı 1 ise yani 2 tane dizi oluşturduysa. rakamlarda - varsa 2 tane oluşur zaten If Left(telefonlar(1), 1) = ilknumara Then ' eğer telefonlar(1)'in ilk rakamı ilknumraya eşitse alttaki 2 satırı işlet telefon = telefonlar(1) 'telefon değişkenine telefonlar(0)'ın değerini aktar. telefon değişkeni fonksiyon adı olduğu için bu excele formül sonucu olarak döner Exit Function End If End If telefon = "" 'yukardaki IF yani eğer şartlarından hiç biri uymadıysa formül dönüşü olarak boş yani hiçbirşey olarak excele gönder End Function
inşallah anlatabilmişimdir :)
hocam yazılım bilgim var ama vb ile ilgili değildim.açıkladığın için teşekkür ederim...
arkadaşlar, excelim iki sheetten oluşuyor. 1.sheet deki A12 hücresi ve 2.sheet deki B4 ve 1.sheet deki I10 ve 2.sheet deki N2 hücreleri eşitse; 1.sheet deki I12(hücres içindeki sayının üstüne) + 2.sheet deki N4 (bu hücredeki değeri ) eklesin istiyorum. eğer eşit değilse de 1.sheet deki I12 yazılı kalsın, bi değişiklik olmasın. bu sadece bir döngü. bu diğer hücreler içinde devam etsin istiyorum. bunu nasıl yapabilirim? yardımcı olursanız çok sevinirim.
Eğer - ile ayrılmıyorsa formül kullanmak gerekiyor ama bunun için de hücre içini görmem gerek telefon numaraları nasıl yazılmış diye.
Bu mesaja 1 cevap geldi. Cevapları Gizle
hücrelerin bazılarında çift numara var 536......-344...... gibi.bazılarında ise sadece tek numara var 3 veya 5 ile başlayan.ben her 3 duruma göre bir çözüm arıyorum.bitişikse ayırıp 5'le başlayanı cep numarası sütununa 3' le başlayanı ev telefonu sütununa yazacak eğer tek numara varsa yine aynı işlemi ayırma olmadan yapacak...
Bu mesaja 2 cevap geldi. Cevapları Gizle
=eğer(uzunluk(a1)>7;soldan(7);a1)
formülü ile Eğer A1 hücresindeki değer uzunluk 7 den büyük ise (bir numara 7 rakamdan oluşuyor, büyükse demek ki 2 numara var) soldan 7 karakter al.
Eğer 7 rakamdan küçükse o zaman A1 deki tüm içeriği al
şeklinde bir formül ile işe başlanabilir.
listeyi tam göremediğim için tam bir çözüm veremiyorum.
Bu mesaja 1 cevap geldi. Cevapları Gizle
makroyu yapıştırmak için
ALT+F11 e basın
menüden inserrt / module tıklayın
açılan pencereye yapıştırın
a1 hücresinde telefon numaraları varsa b1 de cep tlf için
=telefon(A1;5)
yazın
c1 e ev tlf için
=telefon(A1;3)
yazın
< Bu mesaj bu kişi tarafından değiştirildi akcan -- 19 Şubat 2014; 15:11:18 >
Bu mesaja 1 cevap geldi. Cevapları Gizle
Hocam hücrelerde kişi adı ve ona ait telefon numarası veya numaraları var.mesela a kişisinin 536..... gibi sadece 1 cep numarası var.b kişisinin ise 344.... gibi bir ev numarası var.c kişisinin ise tek hücrede
535.....-344..... gibi 2 numarasıda var.yani 3 durumda mevcut hücrelerde.ben cep ve ev numarası sütunlarına bu sütundan aldığım değerleri atayacağım.5 ile bşlayanlar cep 3 ile başlayanlar ev numarası olacak.sizin yöntem başlangıç için düşünülebilir ama orda 5 ve 3 rakamlarıyla bir EĞER ifadesi yazmalıyım sanırım.excel bilgim olmadığı için yapamıyorum...
hocam öncelikle teşekkürler.sizin makronuz işimi görüyor rica etsem bana kodu açıklayabilirmisiniz.ben öğrenmek istiyorum mantığını.saygılar...
Bu mesaja 1 cevap geldi. Cevapları Gizle
ama yinede açıklamaya çalışayım
inşallah anlatabilmişimdir :)
Bu mesaja 1 cevap geldi. Cevapları Gizle
Bu mesajda bahsedilenler: @ax
hocam yazılım bilgim var ama vb ile ilgili değildim.açıkladığın için teşekkür ederim...
< Bu ileti mobil sürüm kullanılarak atıldı >
< Bu ileti mobil sürüm kullanılarak atıldı >
excelim iki sheetten oluşuyor. 1.sheet deki A12 hücresi ve 2.sheet deki B4 ve 1.sheet deki I10 ve 2.sheet deki N2 hücreleri eşitse;
1.sheet deki I12(hücres içindeki sayının üstüne) + 2.sheet deki N4 (bu hücredeki değeri ) eklesin istiyorum. eğer eşit değilse de 1.sheet deki I12 yazılı kalsın, bi değişiklik olmasın. bu sadece bir döngü. bu diğer hücreler içinde devam etsin istiyorum. bunu nasıl yapabilirim? yardımcı olursanız çok sevinirim.