• DİKKAT

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

Satır içerisindeki belli verileri çekmek

Katılım
8 Eylül 2008
Mesajlar
950
Excel Vers. ve Dili
2016 İngilizce
Aşağıdaki konu hususunda engin bilgilerinizi rica ederim. Teşekkür ederim

Elimde B sütununda her satırda aşağıdaki gibi veriler mevcut olup. C,D,E sütunlarına dağıtmak istediğim aşağıdaki verilerin karşılık sayısal değerleri vardır.

Her satırda olan ve çekmek istediğim verile aşağıdaki gibi olup
(IMSI) = sayısal bir değer var veya yok
(IMEI) = sayısal bir değer var veya yok
(ICCID) = sayısal bir değer var veya yok

C sütununda IMSI karşısında sayısal değer varsa o sayıyı yazsın yoksa boş geçsin
D sütununda ilgili sattırdaki IMEI karşısındaki sayısal değeri varsa yazsın yoksa boş geçsin
E sütununda ise ICCID karşısı karşısındaki sayısal değeri varsa yazsın yoksa boş geçsin

Örnek Dosya aşağıdaki linkte olup verilerin hangi sütunda nasıl gelmesi gerektiğini örnek olarak gösterdim.
http://s5.dosya.tc/server3/ewa705/veri_getir.rar.html

Kod:
show cellular 0/0/0 all | i WCDMA|RSSI|IMSI|IMEI|ICCIDInternational Mobile Subscriber Identity (IMSI) = International Mobile Equipment Identity (IMEI) = 357115040867397Integrated Circuit Card ID (ICCID) = 8990010907190687325Current Band = WCDMA 2100, Channel Number = 10637Current RSSI = -54 dBm
show cellular 0/0/0 all | i WCDMA|RSSI|IMSI|IMEI|ICCIDInternational Mobile Subscriber Identity (IMSI) = 286015004811509International Mobile Equipment Identity (IMEI) = 012073005083376Integrated Circuit Card ID (ICCID) = 8990011201050115091Current Band = WCDMA 2100, Channel Number = 10612Current RSSI = -64 dBm
Subscriber Identity (IMSI) = 00000International Mobile Equipment Identity (IMEI) = Current RSSI = -0 dBm
 
LİNK'teki dosyanızı inceleyiniz.
Formülle oluşturulmuştur.
 
Üstadım emeğine bilgine sağlık çok teşekkür ederim.

bunu formül olarak kullanacağım

acaba bunun makro kod halini yapmamız mümkünmü yani ben sürekli böyle liste çektiğimde A,B,C sütunlarına verileri getireyim diğer sütunlara makroyla o verileri çekip getireyim istiyorum. tabi olabiliyorsa yormakta istemem sizleri
 
LİNK teki dosyayı inceleyiniz.
 
Üstadım emeğinize bilginize sağlık süper olmuş fakat şöyle bir sorun var

gelen veriler şu şekilde geliyor. excel hücresinde bu tırnak işaretleri görünmüyor. fakat kopyala yapıp başka yere aldığımda bu tırnak işaretleri geliyor ve her sayının sonundada bir boşluk var

"286016830126957 " "357115042267364 " "8990011503160018572 "
 
Ben böyle bir durum göremedim, tabii sizin dosyanızda, kopyaladığınız yerdeki, biçim vb. durumlara göre değişkenlik olabilir.
Herşeye rağmen, yeni dosyayı LİNK'ten indirip, inceleyin.Farklı bir sonuç olursa bilgi verin lütfen.
İyi çalışmalar...
 
Üstadım günaydın

bu linkte benim çalıştığım dosyayı gönderiyorum. bu dosyada makro düzenlenmiş halde var ve çalıştırıp ekledim. verilerin geldiği hücreleri incelerseniz. bir hücreyi kopyala yapıp örneğin find satırına bile yapıştır deseniz yada bir note pad e aşağıdaki gibi bir görüntü ile karşılaşacaksınız.
Bilgi ve yardımlarınızı rica ederim

http://s5.dosya.tc/server3/e01p1y/Calisma.rar.html


A3BEb0.png
 
Son düzenleme:
LİNK'ten dosyanızı indirebilirsiniz.
Not:
Tırnak içine alma nedeni, C sütunundaki bilgiler Satır satır (Alt ) tuşuna basılarak yazılı olduğu için , veriler D,E,F sütunlarına yazılırken bu satırı da ilave ediyordu.
Kodlarda bu durum düzeltildi. Şimdi Kopyalayıp kontrol edebilirsiniz.
 
Üstadım ellerine sağlık çok güzel olmuş.
Çok ufak bir sorum daha var. şimdi biz bu sayısal verileri çektiğimizde sayı hane olarak uzun olduğu için Format olarak General modda getiriyoruz.

Bu halde sayısal veriler geldiğinde görüntü aşağıdaki gibi olmakta
yVBqZL.png


Bu sol üst köşedeki yeşil renk text modunda verilerin geldiğini gösteriyor.
ben bunu düzeltmek için aşağıdaki görüntüdeki gibi convert number yapıyorum tüm hücre içeriklerini.
G3dDM2.png


Convert number sonrası görüntü şu şekilde oluyor
zn6MoY.png


Buradaki sayıları görünür hale getirmek içinse aşağıdaki görüntüdeki gibi yaparak Custom ı seçerek 1 tane Sıfır yazıyorum
OEGD4Z.png


En son bu haliyle istediğim şekle gelmiş oluyor.
J30DbY.png


Ben bunu yine bir makro ile yapamazmıyım. yani ya bu varolan makroda bu şekilde gelsin sayılar. yada ayrı bir makro ile çağırayım ben bu düzeltme işlemini

çünkü gelen verileri ben ilk haliyle bırakırsam başka bir sheetten vlookup yaparak bazı verileri sıralatmam gerekiyor ama text modunda olduğu için tabi birbiri ile match yapamıyor. mecbur yukarıdaki adımları her seferinde izlemem gerekiyor.
 
Sayfa Kodunu aşağıdaki gibi kullanın.(Eskisini tamamen silin)
Kod:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim sonsatır As Long
sonsatır = Cells(Rows.Count, "C").End(xlUp).Row
Application.ScreenUpdating = False
Columns("D:F").NumberFormat = "General"
Range("D1").Value = "IMSI"
Range("D2").Select
ActiveCell.Formula = "=IFERROR(SUBSTITUTE(TRIM(MID($C2,FIND(""(IMSI) ="",$C2)+8,FIND(""International Mobile Equipment Identity"",$C2)-(FIND(""(IMSI) ="",$C2)+8))),CHAR(10),"""")*1,"""")"
Range("D2").AutoFill Destination:=Range("D2:D" & sonsatır), Type:=xlFillDefault

Range("E1").Value = "IMEI"
Range("E2").Select
ActiveCell.Formula = "=IFERROR(SUBSTITUTE(TRIM(MID($C2,FIND(""(IMEI) ="",$C2)+8,FIND(""Integrated Circuit Card ID"",$C2)-(FIND(""(IMEI) ="",$C2)+8))),CHAR(10),"""")*1,"""")"
Range("E2").AutoFill Destination:=Range("E2:E" & sonsatır), Type:=xlFillDefault

Range("F1").Value = "ICCID"
Range("F2").Select
ActiveCell.Formula = "=IFERROR(SUBSTITUTE(TRIM(MID($C2,FIND(""(ICCID) ="",$C2)+9,FIND(""Current Band"",$C2)-(FIND(""(ICCID) ="",$C2)+9))),CHAR(10),"""")*1,"""")"
Range("F2").AutoFill Destination:=Range("F2:F" & sonsatır), Type:=xlFillDefault
Range("D2:F" & sonsatır).Select
With Selection
.Value = .Value
.NumberFormat = "0"
.EntireColumn.AutoFit
End With
Application.ScreenUpdating = True
Target.Select
Application.SendKeys "{ESC}"
End Sub
 
Üstadım harika oldu. emeğine ellerine bilgine sağlık.çok ufak bir ayrıntı var

Örneğin veri getirilen C sütunundaki hücredeki örnek veri aşağıdaki gibi
Kod:
show cellular 0/0/0 all | i WCDMA|RSSI|IMSI|IMEI|ICCID
International Mobile Subscriber Identity (IMSI) = 
International Mobile Equipment Identity (IMEI) = 357115040800968
Integrated Circuit Card ID (ICCID) = 8990010907110504675
Current Band = WCDMA 2100, Channel Number = 10838
Current RSSI = -86 dBm

burada Integrated Circuit Card ID (ICCID) = 8990010907110504675 verisi içerisindeki sayısal bilgiyi. 8990010907110500000 şeklinde getiriyor.

Yani yuvarlayarak getiriyor bu sayıları. IMSI ve IMEI de sorun yok ama ICCID karşsıındaki sayıusal değerler yuvarlanıyor
 
Son düzenleme:
Sayın u.L.a.s
Öncelikle belirtmek gerekirse ;8990010907110504675 sayısal değeri Excel'de herhangibir hücrede Sayı Biçiminde yazılamaz.Excel 15basamaklı sayılardan fazlasını yazmaya izin vermez 15'ten fazla basamaklar 0(sıfır) olarak değerlendirilir. Bunu herhangibir hücrede yazmayı deneyin, göreceksiniz.
Diğer taraftan, D ve E sütunlarındaki sonuçlarda bu sorun olmadığı için Makro kodları işini yapıyor ve sayısal değer olarak yerine getiriyor.
F sütunundaki ICCID değerleri içinse çözüm bu sütundaki verilerin "METİN" biçiminde olmasıdır.Bunun dışında sorunu çözmek mümkün gözükmüyor.
Aşağıdaki kodu kullanabilirsiniz.(Eskisini tamamen siliniz).
Kolay gelsin.
Kod:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim sonsatır As Long
sonsatır = Cells(Rows.Count, "C").End(xlUp).Row
Application.ScreenUpdating = False
Columns("D:F").NumberFormat = "General"
Range("D1").Value = "IMSI"
Range("D2").Select
ActiveCell.Formula = "=IFERROR(SUBSTITUTE(TRIM(MID($C2,FIND(""(IMSI) ="",$C2)+8,FIND(""International Mobile Equipment Identity"",$C2)-(FIND(""(IMSI) ="",$C2)+8))),CHAR(10),""""),"""")"
Range("D2").AutoFill Destination:=Range("D2:D" & sonsatır), Type:=xlFillDefault

Range("E1").Value = "IMEI"
Range("E2").Select
ActiveCell.Formula = "=IFERROR(SUBSTITUTE(TRIM(MID($C2,FIND(""(IMEI) ="",$C2)+8,FIND(""Integrated Circuit Card ID"",$C2)-(FIND(""(IMEI) ="",$C2)+8))),CHAR(10),""""),"""")"
Range("E2").AutoFill Destination:=Range("E2:E" & sonsatır), Type:=xlFillDefault

Range("F1").Value = "ICCID"
Range("F2").Select
ActiveCell.Formula = "=IFERROR(SUBSTITUTE(TRIM(MID($C2,FIND(""(ICCID) ="",$C2)+9,FIND(""Current Band"",$C2)-(FIND(""(ICCID) ="",$C2)+9))),CHAR(10),""""),"""")"
Range("F2").AutoFill Destination:=Range("F2:F" & sonsatır), Type:=xlFillDefault
Range("D2:E" & sonsatır).Select
With Selection
.Value = .Value
.NumberFormat = "0"
.EntireColumn.AutoFit
End With
Range("F2:F" & sonsatır).Select
With Selection
.NumberFormat = "@"
.Copy
.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
Application.CutCopyMode = False
.EntireColumn.AutoFit
End With
Application.ScreenUpdating = True
Target.Select
Application.SendKeys "{ESC}"
End Sub
 
Üstadım emeğine bilgine sağlık tamam bu son haliyle süper oldu. çok çok teşekkür ederim tüm yardımlarınız için
 
Üstadım Merhaba

Bu konuyla alakalı olduğu için tekrar burdan sormak istedim

Şimdi ilettiğiniz kod içeriğine aşağıdaki gibi bir kaç kod daha ekledim.
Kod:
Range("J1").Value = "GSM NO"
Range("J2").Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-3],Source!C[-9]:C[-8],2,FALSE)"
Range("J2").AutoFill Destination:=Range("J2:J" & sonsatır), Type:=xlFillDefault
Range("J2:J" & sonsatır).Select
With Selection
.Value = .Value
.NumberFormat = "0"
.Font.ColorIndex = 3
End With

Bu kodda şunu yapıyor. J sütununa Source Sheetinden Vlookup yaparak veri getiriyor. Bu vlookup sorgusunu sizin gönderdiğiniz kod ile G sütununda IMSI numarasına göre yapıyor. ve karşılığını J sütununa yazıyor.

Fakat veri yoksa tabi vlook sonucu #N/A oluyor.

İşte burda 2. bir sorgu yaptırmak istiyorum. İlk sorgu sonrası #N/A sonucu gelen satırlarda Bu sefer yine Vlookup yapsın ama G sütunu ile işimiz bittiği için bu sorguyu sizin kodla I sütununa getirdiğimiz ICCID sayısına göre yapsın istiyorum. bu ICCID ye göre Source sheetinde vlookup yaparak #N/A olan hücrelerde ilgili veriyle eşlenip getirilsin.

Ha bunun sonunda gelen veriler yine gelecek olup sonucu eşleşmeyen olursa yine #N/A olacaktır. artık orda sorgu sonlanmış olacak. tekrar kısır döngü olmaması adına söylüyorum.

Böyle bir şey yapabilir miyiz bilgilerinizi rica ederim.
 
Örnek dosyanızı ekleyip, bahsettiğiniz durumu dosya üzerinde örneklerle açıklayınız.
 
Anasayfa Kod kısmına aşağıdaki gibi uygulayınız.
Kod:
Range("J1").Value = "GSM NO"
Range("J2").Select
ActiveCell.Formula = "=IFERROR(IFERROR(VLOOKUP($G2,Source!$A$2:$B$10000,2,0),VLOOKUP($I2,Source!$A$1:$B$10000,2,0)),VLOOKUP($A2,IP!$A$1:$D$10000,4,0))"
Range("J2").AutoFill Destination:=Range("J2:J" & sonsatır), Type:=xlFillDefault

Formül bölümündeki 10000 sayısını dosya yapınıza uygun bir sayı olarak düzeltebilirsiniz.
 
Üstadım emeğine bilgine sağlık tamamdır süper oldu çok çok teşekkür ederim
 
Üstadım merhaba

yine benzer bir satır var ama senin gönderdiğin kodlar üstünde ne kadar değişiklik yaptıysamda bir türlü verileri getiremedim

satırda bulunan veriler şu şekilde oluyor ve bunun benzeri bir çok satır var aşağıya doğru

Kod:
show cellular 0/0/0 all | i PDP|Access|CHAP|Username|Password
PDP Type = IPv4
PDP address = 10.10.10.10
Access Point Name (APN) = xxxatm
Authentication = CHAP
Username: vpn_ATM685, Password: scsdcsd
PDP Type = IPv4
Access Point Name (APN) = 
Username: , Password: 
PDP Type = IPv4
Access Point Name (APN) = 3gnet
Username: , Password:

Ben bu satır içerisinden PDP address = 10.10.10.10 verisindeki 10.10.10.10 verisi ve benzer değerleri
bir sütuna G sütununa örneğin satır satır getirmek istiyorum
H sütununa ise
"Username: vpn_ATM685" verisindeki "vpn_ATM685" verisini yazdırmak istiyorum

senin göndermiş olduğun kod düzeneğinde şu düzenlemeyi yaptım ama bu verileri bir türlü getirtemiyorum boş geliyor hep

Kod:
Range("G1").Value = "PDP address"
Range("G2").Select
ActiveCell.Formula = "=IFERROR(SUBSTITUTE(TRIM(MID($C2,FIND(""address ="",$C2)+7,FIND(""PDP "",$C2)-(FIND(""address ="",$C2)+7))),CHAR(10),""""),"""")"
Range("G2").AutoFill Destination:=Range("G2:G" & sonsatır), Type:=xlFillDefault
 
Geri
Üst