[q]
(2) 

Excel uzmanlık sorusu

cukur #1578924
Merhaba arkadaşlar,

Excelde 2 değerli ( sütun ) 65.000 farklı veri satırı var.

Ben bu satırları , 12'li olacak şekilde yatay yapmak istiyorum.
Yani 12 sütun olacak.
Altalta da sallıyorum 5.000 satır olacak.

Lütfen kısa yolunu bilenler yardimci olabilir mi ?

"Kopyala Özel yapıştır" diyip işlemi "tersine çevir" dediğimde 65.000 satırı yatay cevirmiyor. Yapistiramazsin diye hata veriyor.
Ama 100 tanesini yapıştırıyor.

 

excel bilmiyorum ama piton (tıss) üzerinden yardımcı olabilirim.

google colab'e gir, solda dosya yüklemeden excelini yükle, sonra şu kodu çalıştır. yeni dosyanı eline verecektir. yine soldan indirebilirsin;


-- kod başlangıcı ---

import pandas as pd

veri = pd.read_excel("veri.xlsx") #veri.xlsx yerine solda dosyadaki üç noktaya tıkla yolu kopyalaıyp tatar ramazan gibi yapıştır

yatay_veri = veri.groupby(veri.index // 12).apply(lambda x: pd.Series(x.values.ravel('F')))

yatay_veri.to_excel("yatay_veri.xlsx", index=False, header=False) #yatay_veri.xlsx yeni dosyan sola eklenecektir oradan indirebilirsin

--- kod bitişi ---

eğer çalışmaz ise chatgpt'ye git selamımı söyle, bu kodu benim yazdığımı ama hata verdiğini söyle o düzeltir

avatar is back

aşağıdaki kodu ALT + F11 ile açıp kopyala yapıştır yaptıktan sonra çalıştırabilirsiniz

bölmek istediğiniz verilerin A ve B sütunlarında olduğunu varsaydım. sizde farklıysa A1:B65000 yazan yeri revize edebilirsiniz ya da oraya taşıyıp çalıştırın



Sub esdfgdg()
Dim ws As Worksheet
Dim veri As Range
Dim bolumSayisi As Integer
Dim bolumUzunlugu As Long
Dim i As Integer
Dim baslangicSatiri As Long
Dim bitisSatiri As Long
Dim bolum As Integer

Set ws = ThisWorkbook.Sheets("Sayfa1") 'sendeki sayfanın adı farklıysa buraya onu yaz tırnak içine
Set veri = ws.Range("A1:B65000")
bolumSayisi = 12
bolumUzunlugu = WorksheetFunction.RoundUp(veri.Rows.Count / bolumSayisi, 0)
baslangicSatiri = 1
bitisSatiri = bolumUzunlugu
For bolum = 1 To bolumSayisi
veri.Columns(1).Copy ws.Cells(1, bolum + 2)
veri.Columns(2).Copy ws.Cells(1, bolum + 2 + bolumSayisi)
baslangicSatiri = baslangicSatiri + bolumUzunlugu
bitisSatiri = bitisSatiri + bolumUzunlugu
Set veri = ws.Range("A" & baslangicSatiri & ":B" & bitisSatiri)
Next bolum
End Sub

pislick0
1

mobil görünümden çık