• DİKKAT

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

A, B, C sütunlarındaki verileri sırası ile alt alta D sütununda toplamak

Katılım
23 Temmuz 2007
Mesajlar
52
Excel Vers. ve Dili
2007
Merhaba,
Bütün gün arama yapmama rağmen bir türlü cevabını bulamadım, yardımcı olacak arkadaşlara şimdiden teşekkür ederim.

Kısaca;
A, B, C sütunlarındaki verileri (aşağıya doğru 10 000 satır), başka bir excel dosyasına veya D sütununa aşağıdaki şekilde yazdırmak istiyorum (D sütununda sıralı şekilde 30 000 satır olmuş olacak):
A1
B1
C1
A2
B2
C2
A3
B3
C3
...
...

Bunu yapabilmek için bir formül var mıdır? Makro değil formül varmı acaba?
Not: Devrik_dönüşüm ve Kaydır formüllerini denedim ama ya formüller benim çözümüm için uygun değil veya yeterli bilgim olmadığından yapamadım.

Saygılarımla
 

Ekli dosyalar

  • excel.jpg
    excel.jpg
    87.9 KB · Görüntüleme: 62
Son düzenleme:
Merhaba,

D1 hücresine yazıp alt satırlara kopyalayın.

Kod:
=KAYDIR($A$1;YUKARIYUVARLA(SATIRSAY(D$1:D1)/3;0)-1;MOD(SATIRSAY(D$1:D1)-1;3))
.
 
Ömer Bey,
Büyük zahmetten kurtardınız beni. Elinize bilginize sağlık, çok teşekkür ederim.
 
Bu saatte uğraşıyorum halen :)
Ömer Bey, 1. ve 3. sütunları alt alta yazmak istersek formül nasıl olur acaba? Çünkü dosyamda mesela A ile H sütununu alt alta getirmem gereken aralıklar var. Sorunu çözdüğünüz halde uyarlayamadım bir türlü.
Siz A1, B1, C1 sütunlarını D1'de alt alta getiren formülü verdiniz zaten. Yine buradan gidersek B1 sütununu formüle almadan sadece A1 ve C1 sütununu D1'de nasıl alt alta yazabiliriz?
Şimdiden çok teşekkür ederim. İyi sabahlar diliyorum.
 
1. ve 3. sütunları alt alta yazmak istersek formül nasıl olur acaba?.Yine buradan gidersek B1 sütununu formüle almadan sadece A1 ve C1 sütununu D1'de nasıl alt alta yazabiliriz?

Bu şekilde deneyin.

Kod:
=KAYDIR($A$1;YUKARIYUVARLA(SATIRSAY(D$1:D1)/2;0)-1;MOD(SATIRSAY(D$1:D1)-1;2)*2)
.
 
Tekrar merhaba Ömer Bey,
Formülünüz çok işime yaradı, verdiğiniz formülden başka bir işlem yapmayı denedim. Birçok değişiklik yaptım çok uğraştım ama bir türlü yapamadım. Yardımınıza ihtiyacım var.

Her yüz satırda bir, veri başka hücreden gelsin.

B sütunun tümü A sütunundaki verileri alacak. Sadece B sütununda her 100 satırda bir kaydırarak başka bir hücreden veri alıp yine A'dan veri alarak aşağı doğru ilerleyecek.

B sütununa aşağı doğru B100. satıra kadar hep A'daki verilerin aynısı yazacak. B101. satırına geldiğinde örneğin $Z$1 deki veriyi yazacak. B102. satırı yine A101. satırını alarak devam edecek. B201.satıra geldiğinde yine $Z$1 deki veriyi yazacak ve B202.satır A'nın kalan satırından aşağı doğru devam edecek.

Böyle bir şey mümkünse yardım ederseniz çok sevinirim Ömer Bey.

İyi çalışmalar diliyorum.
Saygılarımla
 
Yukarıdaki formüle ihtiyaç duymamın sebebi:
Excelde oluşturduğum veriyi mysql'e table olarak phpmyadminden içe aktarmak istiyorum. Fakat mysql'deki verilerde her yüz satırda bir aşağıdaki satırı ekliyor:
INSERT INTO `ps_product_lang` (`id_product`, `id_lang`, `description`, `description_short`, `link_rewrite`, `meta_description`, `meta_keywords`, `meta_title`, `name`, `available_now`, `available_later`) VALUES

80 bin satırım var. parçalara böldüğümde bile hata veriyor. Bunu aşmam için 99. 199. 299. vb satırlarımın sonundaki virgülü "," noktalı virgüle ";" çevirip altına da yukarıdaki satırı ekleyip aşağı doğru devam etmek.

80 bin satıra elle her yüz satırda bir yukarıdaki insert into satırını girmem mümkün değil :(
 
Konu üzerinden zaman geçtiği için hatırlayamadım. Sorunuzu küçük bir örnek dosya ile destekleyip detaylı açıklayınız.
 
Bir sütundaki satır aralarına başka bir sütundaki hücreden veri eklemek

Dosyaya örneklendirdim. sayfaya sığması açısından aşağı doğru sıralı 100 satır yerine 5 satırda bir J1 satırındaki bilgi eklenecek.
Örnek dosyayı ekledim Ömer Bey

Not: Konuyla ilgili değil ama bir bilginiz varsa yol gösterirseniz sevinirim.
Hücrede şu bilgi var. Kod 113 090
Bu bilgiyi bir txt dosyasına kopyala yapıştır yaptığımda başına çift tırnak ekliyor ve Kod ile 113 arasındaki boşluğa bir de tab kadar boşluk ekliyor: "Kod 113 090
Diğer hücreler göründüğü gibi kopyala-yapıştır olurken bu hücre anlamadığım bir şekilde değişiyor.

Bir önceki mesajdaki smiley için kusura bakmayın. Forum kurallarını okudum. Teşekkür ederim.
Excel 2010 - Türkçe
 

Ekli dosyalar

Son düzenleme:
B1 hücresine yazıp alt satırlara kopyalayın.

Kod:
=EĞER(MOD(SATIRSAY(B$1:B1);6)=0;Sayfa1!$J$1;KAYDIR(Sayfa1!$A$1
 ;(YUKARIYUVARLA(SATIRSAY(B$1:B1)/6;0)-1)*-1+SATIRSAY(B$1:B1)-1;0))

Ayrıca, text yapıştırma olayını denedim bende herhangi bir değişim olmadı.

.
 
Ömer Bey, diyecek birşey yok, tekrar tekrar teşekkürler.

Not: Text yapıştırmada benzer sorunu yaşayan arkadaşlar olursa, evdeki excelde Kod 113 095 olarak gösteriyor. Fakat ofise gelip aynı dosyayı excelde açtığımda 11'in solunda yazdırılamaz karakter gösterdi ve düzelttim bu sayede. Aşağıdaki resimde görebilirsiniz. İki excel de 2010 Türkçe.
4vx5b.jpg
 
BU işlemin tersi, yanı alt alta olanları yan yana yapabilmemiz mümkün müdür?
 
Lüütfen yardım...

İkinci mesajda yazılan
=KAYDIR($A$1;YUKARIYUVARLA(SATIRSAY(D$1:D1)/3;0)-1;MOD(SATIRSAY(D$1:D1)-1;3)) formülü boş olan hücreleri yazmayacak şekilde uyarlanabilirmi örneğin B1 hücresinde değer yoksa bu hücreyi yok sayıp C1 hücresindeki değer yazdırılabilirmi.
 
Son düzenleme:
sorun maalesef halen tarafımca çözülememiştir ve halen ihtiyaç duyulmaktadır. Yardımcı olabilecek varsa inanın çok makbule geçecek......
 
İkinci mesajda yazılan
=KAYDIR($A$1;YUKARIYUVARLA(SATIRSAY(D$1:D1)/3;0)-1;MOD(SATIRSAY(D$1:D1)-1;3)) formülü boş olan hücreleri yazmayacak şekilde uyarlanabilirmi örneğin B1 hücresinde değer yoksa bu hücreyi yok sayıp C1 hücresindeki değer yazdırılabilirmi.
Bunun çözümünün formülle olması çok zor (imkansız diyemiyorum çünkü bu forumda imkansız olduğunu düşündüğüm bir çok şeyin çözümü bulundu).

Makro ile çözüm olabilir. Bunun için aşağıdaki kodları bir modüle kopyalayıp deneyiniz:

Kod:
Sub değiştir()
son = WorksheetFunction.Max(Cells(Rows.Count, "A").End(3).Row, _
Cells(Rows.Count, "B").End(3).Row, Cells(Rows.Count, "C").End(3).Row)
For i = 1 To son
    For j = 1 To 3
        yeni = Cells(Rows.Count, "D").End(3).Row + 1
        If [d1] = "" Then yeni = 1
        Cells(yeni, "D") = Cells(i, j)
    Next
Next
End Sub
 
Merhabalar,
Ne yapmak istendiğini pek okumadım Yusuf Bey'in 16. mesajına göre formül ile alternatif olsun.

  • A1:C6 aralığına veriler,
  • D1 hücresine,
formül girişlerini yaparak deneyiniz.
Kod:
=KAYDIR(A$1;
  MOD(KÜÇÜK(EĞER(A$1:C$6;SATIR(A$1:C$6)+1000*
    SÜTUN(A$1:C$6));SATIR());1000)-1;
    TAMSAYI(KÜÇÜK(EĞER(A$1:C$6;
  SATIR(A$1:C$6)+1000*SÜTUN(A$1:C$6));
SATIR())/1000)-1)
[COLOR="Blue"]Formül dizi formülüdür.CTRL+SHIFT+ENTER ile tamamlayınız.[/COLOR]

Not: Yusuf Bey, affınıza sığınarak kodun başına D sütununu temizlemesi için bir ilave yaparsanız daha iyi olacağını düşünüyorum.
Kodun birden fazla çalıştırıldığında doğru sonucu vermesi için.

Saygılar,
Hay marja!
 
Son düzenleme:
Sayın Bzace'nin önerisiyle aşağıdaki kodu kullanırsanız önce D sütunundaki verileri silmek isteyip istemediğinizi sorar, Evet derseniz eski verileri siler ve yenileri aktarır, Hayır derseniz eski verilerin altına ekler:

Kod:
Sub değiştir()
uyarı = MsgBox("D sütunundaki eski verilerin silinmesini ister misiniz?", vbYesNo)
If uyarı = vbYes Then
Range("D1:D" & Cells(Rows.Count, "D").End(3).Row).ClearContents
End If
son = WorksheetFunction.Max(Cells(Rows.Count, "A").End(3).Row, _
Cells(Rows.Count, "B").End(3).Row, Cells(Rows.Count, "C").End(3).Row)
For i = 1 To son
    For j = 1 To 3
        yeni = Cells(Rows.Count, "D").End(3).Row + 1
        If [d1] = "" Then yeni = 1
        Cells(yeni, "D") = Cells(i, j)
    Next
Next
End Sub

Bu arada Sayın Bzace, (öncelikle estağfurullah, ne affı ne sığınması :) ) : formülünüzü Dizi formülü olarak uyguladığımda #DEĞER hatası verdi.
 
Yusuf Bey,
A1:C6 aralığına sayı girişlerini yaparak deneyiniz.
Metinsel değerlerde hata veriyor. Şimdi yatmam lazım İstanbul trafiği işe gitmek için haddinden fazla erken kalkmak gerekiyor. :)

Müsait zamanda metinler için bir şeyler yapmak için uğraşırız.
 
Allah kolaylık versin. İyi geceler, iyi çalışmalar.
 
Geri
Üst