Çözüldü Boş satırlarda hücrelerde belirli verileri yazmak

sepulastura

Normal Üye
Excel Versiyonu
Excel 2016
Excel Sürümü
64 Bit
Excel Dili
Türkçe
Örnek excel dosyam aşağıdaki linktedir.

Bu dosya 5 sütunlu 30000 satırdan oluşan verilerden oluşmaktadır.
ilk satır başlık satırı olup bundan sonraki her 14 satırda bir boş satırlar vardır
bu boş satırlarda B sütununa denk gelen hücrelere "asp" verisini yazmalıdır.
C sütununa denk gelen satılarda ise ilk 14 satır hariç her hücrede formül düzeneği vardır bu formül düzeneğine göre aslında bir üstteki IP bilgisinin son oktetinin 1 artmış hali geliyor. bu formülün ingilizce haliyle yazılması gerekiyor (formül düzeneği zaten hazır sadece ilgili hücreye veriyi formül olarak yapıştıracağız)
D ve E sütunlarına gelecek verilerde yine sabit veri olup excel dosyasında bunu belirttim.

bilgi ve yardımlarınızı rica ederim
 

Ekli dosyalar

Merhaba @sepulastura .

Formüllerin var olmaya devam etmesini istemenizin sebebi nedir anlayamadım.
Kaldıki; formülde, =SOLDAN(C16;7)&PARÇAAL(C16;8;4) kısmını anlamadım bu kısım =SOLDAN(C16;11) ile aynı anlama geliyor.
Yani formülün =SOLDAN(C16;11)&TOPLA(SAĞDAN(C16;3)-32) olması da yeterli görünüyor.
Formül yerine buna göre bulunan verinin DEĞER olarak alana yazılması daha doğru değil mi?
Ayrıca 15 satır üstteki değerin son 3 karakteri -32 yerine 1 üstteki satırın son 3 hanesi +1 de aynı sonucu vermiyor mu?

İsterseniz; bir sayfasında bir miktar boş olan satırların da boş olduğu ham verilerin olduğu,
bir sayfasında da olması gereken sonuçların olması gereken yerlerine yazılmış haliyle tam dolu halinin olduğu
yeni bir örnek belge yükleyin.
Bu iki sayfa karşılaştırılarak sonuç aransın.

.
 
evet bir üstteki satırın +1 fazlası aynı sonucu veriyor fakat 30000 satır var ve aynı formülle olsa daha mı iyi olur bilemedim.

ama bir üstteki hücredeki değere göre +1 olma durumuda formülize edilebilir


doğru diyorsunuz =SOLDAN(C16;11)&TOPLA(SAĞDAN(C16;3)-32) formülüde yeterli aslında. ama 30000 satır var ve belirli bir noktadan sonra 100.23.255.91 gibi olan IP düzeneği (yani ilk oktet 3 haneli, ikinci oktet 2 haneli 3. oktet 3 haneli iken ) 100.23.98.28 gibi 3. oktetin 2 haneliye düşme durumu var o zaman bu formül sorun teşkil eder sanırım. bu sefer 4. oktette çok alakasız 3 haneli bir sayı oluşuyor.

o yüzden birebir =SOLDAN(C16;7)&PARÇAAL(C16;8;4)&TOPLA(SAĞDAN(C16;3)-32) formülü uygulanmalı. bu formülün makro hali vba düzeneğinde nasıl yazılabilir.
 
Şu kodu bir deneyin bakalım.
Şimdilik sonuçları K-O sütun aralığına yazdıralım bir kontrol edin.
İşlem doğruysa sonuçları doğru yere yazdırılacak şekilde kodu değiştiririz.

VBA:
You must log in to view content
(11 satır)
 
IP sütunu yazıyor

fakat asp verisi 2-3 atlamadan sonra her seferinde bir üst satıra çıkıyor
ve N ile O sütunlarına yazılacak veriler 2-3 atlamadan sonra yazmıyor artık boş bırakıyor
 
OKTET dediğiniz bölümlerin alacağı farklı biçimler (karakter sayıları) için yeni bir örnek belge yükleyin.
Kullandığınız formül de sorunsuz değil gibi görünüyor çünkü.
Ayrıca TOPLAM KARAKTER SAYISI belli midir? xxx.xx.xxx.xxx dışında farklı seçenekler ne olabilir?
ÖRnek belgede, daha evvel de belirttiğim gibi 2 sayfa olsun, biri üzerinde işlem yapılmamış HAM VERİ, diğeri bu verilere göre olması gereken sonuç.

-- İlk hazır IP bilgisi C16'da ve 100.23.255.253 şeklinde,
-- İşlem C31 hücresinden başlayacak ve C16'daki değere göre 100.23.255.221 olacak (-32)
-- İkinci işlem C46'da yapılacak ve C31'e yazılan 100.23.255.221 üzerinden 100.23.255.189 olarak bulunacak,
-- İşlem bu şekilde 15 satırlık ritimle devam ettiğinde, en sağdaki sayı grubu her seferinde 32 azalarak gideceğine göre
bir süre sonra bu sayı grupunun 2 haneye düşmesi, hatta NEGATİF'e düşmesi sonucu ortaya çıkacak.
Şöyle açıklayayım; C16'da 100.23.255.253 verisi hazır, son üç hane bir sonrakinde 221, bir sonrakinde 189, 157, 125, 93, 61, 29 diye 32'şer azalarak gitmeyecek mi?

Belki de doğru işlem 15 satır önceki değer üzerinden değil, 1 üstteki değer+1 diye
(C31 için, C30'daki 100.23.255.220 üzerinden 100.23.255.221 bulmak şeklinde) devam etmektir.

.
 
Üstadım bu formül düzeneği bizi hatalı sonuçlar üretecek.
zira ekte bu postta yolladığım dosyada bakarsanız yeşil renkli satırda farklı bir formül kullanmışım
bu formül " SOLDAN(C29;MBUL(".";C29;9)-1)&"."&PARÇAAL(C29;MBUL(".";C29;9)+1;3)+1 " şeklinde
ben bunu yazarken bir üsttekine göre son oktetin +1 olarak fazlasını yazmıştım. zaten bize sarı renkli olan aslında ilk etapta boş olan satırlara gelecek formül önemli
bu formülde yine bu yeşil renkli satırdaki formül düzeneğindeki formül gelirse olacaktır diye düşünüyorum
SOLDAN(C30;MBUL(".";C30;9)-1)&"."&PARÇAAL(C30;MBUL(".";C30;9)+1;3)+1
 

Ekli dosyalar

İki kez yazmama rağmen HAM (üzerinde hiçbir işlem yapılmamış) veri olan bir sayfa ve
bu verilere göre olması gereken sonucu gösteren bir sayfa içeren örnek belge hala eklememiş durumdasınız.

Zaten belgeye formül uygulatacak değilim. Formüllerin işlevini, hangi işlemi yaptığını anlarsak ona göre kodlama yapıp
alana tüm verileri değer olarak yazdıracağız.

Belgedeki formülleri inceleyeyim bakalım.
 
@sepulastura .

Önce bundan önceki cevabıma bakınız.
Son örnek belgede, D ve E sütununa ilişkin açıklama/formül yok ama yine de o kısma ilişkin kod da mevcut.
Şöyle deneyin bakalım. Sonuçlar K-O sütununa yazdırılır. Her yönüyle tamam dediğinizde yazma yeri değiştirilir.

VBA:
You must log in to view content
(17 satır)
 
Gönderdiğiniz son makro ile sorunsuz veriler boş satırlara geliyor
Fakat C sütunu 17. satırdan itibaren formüllü halleri gidiyor. formülsüz hali ile IP bilgilerini getiriyor.
bu formüllerin kaybolmaması gerekiyor. zira dosyada yapılacak bir IP değişikliğine göre bu formüllere göre veriler yineleniyor.
eklediğim dosya zaten örnek ham dosya idi. bu dosyada istediğim gayet açık aslında. sarı renkli boyadığım satırlara "SOLDAN(C30;MBUL(".";C30;9)-1)&"."&PARÇAAL(C30;MBUL(".";C30;9)+1;3)+1" bu formülü getirmem gerekiyor. makro kod içerisinde bu formülün aynısı yazılamaz mı. formül olarak boş satırdaki C hücrelerine formül yerleşse formüle göre IP sonucu yansıyamaz mı?

31. satırda C hücresindeki formül "SOLDAN(C30;MBUL(".";C30;9)-1)&"."&PARÇAAL(C30;MBUL(".";C30;9)+1;3)+1" olmalı
46. satırda bir sonraki boş satırda C hücresindeki formül "=SOLDAN(C45;MBUL(".";C45;9)-1)&"."&PARÇAAL(C45;MBUL(".";C45;9)+1;3)+1" olmalı
61. Satırda C hücresinde "=SOLDAN(C60;MBUL(".";C60;9)-1)&"."&PARÇAAL(C60;MBUL(".";C60;9)+1;3)+1" formülü olmalı
76. Satıda C hücresinde "=SOLDAN(C75;MBUL(".";C75;9)-1)&"."&PARÇAAL(C75;MBUL(".";C75;9)+1;3)+1" formülü olmalı

yani bu formül düzeneğine bakıldığında 30,45,60,75,90,105,120.... 15 erli şekilde formül artıyor
 
Elbette makroyla formül yazdırılabilir.
Örnek belgenin HAM VERİ olduğunu yazmışsınız ancak, D ve E sütunundaki boş alanlar ne olacak o belli değil.
D ve E sütununda formül oluşturmamışsınız.

Yoksa istediğiniz işlem basitçe; C30:C44 aralığını (formüllü alan) kopyala, 15 satırlık ritimle aşağı doğru yapıştır şeklinde.
Ben makro ile sonuç almak istediğiniz için sonuçlara odalandığınızı düşünmüştüm.
Kaldıki A2:E16 aralığındaki bilgiler değiştiğinde, verdiğim kodu çalıştırmanız yeterli olurdu.

.
 
Üstadım D ve E sütunlarında boş satırlarda gelmesi gereken veriler 28 ve 255.255.255.240 dır.

Çok teşekkür ediyorum ilginiz ve desteğiniz için ben de biraz karışık anlattım mazur görün beni.

Evet C sütununda boş satırlara belirttiğim formüller getirilirse süper olacak.
 
Yeşil ve sarı renklendirdiğiniz satırlar için aşağıdaki kod gerekli kopyalamayı yapar.
C30 ve C31'deki formüller aşağı doğru 45 ve devamındaki renklendirilmiş satırlara kopyalanır.
Neden renklendirilmemiş satırları dikkate almadım?
Çünkü kullanılan =SOLDAN(C2;7)&PARÇAAL(C2;8;4)&TOPLA(SAĞDAN(C2;3)-32) formülü alt satırlara inildikçe HATAlı sonuç veriyor.
Son üç hane denilen kısım, alta doğru gittikçe azalacağından (-32 nedeniyle) NOKTA karakterini de içerecektir.
NOKTA karakteri yok sayılsa bile bu kez de biraz daha aşağı inildiğinde NEGATİFe dönecektir.

Ben hala örnek belgenin, ham belge olduğunu düşünmüyorum. Ham belgede formül yoktur bence. Neyse artık.

VBA:
You must log in to view content
(5 satır)
 
Konuyu başlatan
Normal Üye
Katılım
Konu Bilgi
Durum
Çözüldü 
Forum
Excel Makro Soruları
Başlangıç tarihi
Son yanıt tarihi
Cevaplar
14
Üst