Şimdi Ara

excelde koşula göre sütundaki numaraları ayırma

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
12
Cevap
0
Favori
12.842
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • 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.
  • quote:

    Orijinalden alıntı: Öner

    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



    < Bu mesaj bu kişi tarafından değiştirildi akcan -- 19 Şubat 2014; 15:11:18 >
  • quote:

    Orijinalden alıntı: Öner

    ö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...




  • quote:

    Orijinalden alıntı: akcan

    şö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...




  • Yapay Zeka’dan İlgili Konular
    excelde metin rakam ayırma
    4 yıl önce açıldı
    Daha Fazla Göster
  • ax kullanıcısına yanıt
    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 :)




  • quote:

    Orijinalden alıntı: akcan

    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...




  • A sutunundaki sayilardan tek olanlari b cift olanlari buyukten kucuge siralauacak maktoya ihtiyacim var tesekkurler

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • A sutunundaki sayilardan tek olanlari b cift olanlari c ye buyukten kucuge siralauacak maktoya ihtiyacim var tesekkurler

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • 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.
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.