Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

Excel'de veri derleme


Öne çıkan mesajlar

Mesaj tarihi:
Şimdi benim elimde

asdfghj
asdfghj
asdfghj
asdfghj

şeklinde 4x5x6 hücrelik bir veri seti var diyelim (bayağı büyük orjinali, 20X4X185 hücrelik falan)

ben bu veri setini

a
a
a
a
s
s
s
s
d
d
d
d
.
.
.

şekline sokmak istiyorum.

Normalde elle C/P yapıyorum ama illallah dedim artık, her allahın günü 10 tane excel dosyasıyla uğraşıyorum. Bunun bir kısa yolu, macro'su falan var mıdır? Nasıl yaparım?
Mesaj tarihi:
Excel başlıklarını görünce hep bi yardım etmek istiyorum. Sonra yazılanlardan hiç bişey anlamayıp kendimi kötü hissediyorum =((

Oğlum düzgü yazın la ne istiyonuz. Hatta daha iyisi bi ham dosyayı, bi de istediğin sonucu al koy öyle yol gösterelim.
Mesaj tarihi:
deadwoll said:

Şimdi benim elimde

asdfghj
asdfghj
asdfghj
asdfghj

şeklinde 4x5x6 hücrelik bir veri seti var diyelim (bayağı büyük orjinali, 20X4X185 hücrelik falan)

ben bu veri setini

a
a
a
a
s
s
s
s
d
d
d
d
.
.
.

şekline sokmak istiyorum.

Normalde elle C/P yapıyorum ama illallah dedim artık, her allahın günü 10 tane excel dosyasıyla uğraşıyorum. Bunun bir kısa yolu, macro'su falan var mıdır? Nasıl yaparım?


şu data seti hiç 4*5*6 değil oda ayrı bi sorun
Mesaj tarihi:
A1 hücresinden başlamak üzere dizili

asdfghj
asdfghj
asdfghj
asdfghj


veri seti için;



Sub illallah()

Dim i As Variant

For i = 2 To 7

Dim k As Variant
k = (4 * (i - 1)) + 1

Range("A1").Select
ActiveCell.Offset(0, i - 1).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Range("A" & k).Select
Selection.PasteSpecial


Next

Range("B:G").Delete


End Sub




buna benzetirsin artık elindekini.
Mesaj tarihi:
Aman 7 fazla basmışım sdfklj.

Tab delimited yapıp kopyaladım veriyi. Excel'de sorunsuz açılır herhalde.

http://pastebin.com/8JkLgW9A

Orda state 1 ve state 3 var (1111 ve 3333 diye giden sütunlar) onlar ve onlara ait tüm veriler altalta gelecek işte. Bildiğiniz panel veriseti.


1
1
1
1
3
3
3
3

gibi.
Mesaj tarihi:
ginaly said:

A1 hücresinden başlamak üzere dizili

asdfghj
asdfghj
asdfghj
asdfghj


veri seti için;



Sub illallah()

Dim i As Variant

For i = 2 To 7

Dim k As Variant
k = (4 * (i - 1)) + 1

Range("A1").Select
ActiveCell.Offset(0, i - 1).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Range("A" & k).Select
Selection.PasteSpecial


Next

Range("B:G").Delete


End Sub




buna benzetirsin artık elindekini.


Eline sağlık bu oldu da, sütun setleri şeklinde yapmak istesem nereyi düzelticem, beceremedim.

Yani ne bileyim ilk 6 sütun yerinde dursun, sonraki 6 sütun aşağı insin gibi gibi.
Mesaj tarihi:
Sub illallah()

Dim i As Variant

For i = 2 To 7 (For döngüsü. For ile next operatörleri arasında belirlenen sayıları i'ye verir. İlk başka i=2 için yapacak, next'e geldiğinde tekrar buraya dönüp i=3 için yapacak falan. Burada asdfghj dizimizde 7 sütun olduğundan 7'de bıraktık. 2'den başlama sebebi ise ilk sütunu kopyalamaya gerek olmaması)

Dim k As Variant (dim variable tanımlar. bir k variable'ım olsun ve bu her şey olsun (variant) ya da sadece tam sayı olsun (integer). hayvani kodlar yazmadıkça hepsine variant de geç)
k = (4 * (i - 1)) + 1 (tanımladığımız k'nın formülü. Bu formülün kaynağı da şu; asdfghj dizisinde 4 satır var. her kopyalamayı 4x+1'inci hücreye yapmak istiyoruz. Yani B sütununu alınca, 4*1+1, C sütununu alınca 4*2+1'inci satıra kopyalayalım diye)

Range("A1").Select (A1 hücresini seç. Örneğin burada ilk 6 sütuna ellemeyeceksek A1'i değil de G1'i seçeriz)
ActiveCell.Offset(0, i - 1).Select (seçtiğin hücreden i-1 kadar sağa git)
Range(Selection, Selection.End(xlDown)).Select (şimdi bunu aşağı doğru komple seç)
Selection.Copy (seçtiğini kopyala)
Range("A" & k).Select (yukarıdaki k'yı burada kullanıyoruz, i=2 için k=5 çıkar, A5 hücresini seçer. i=3 için A9 hücresini seçer. Burayı yapıştırma için kullanacaz, eğer ilk 6 sütunu boş bıraktıysak muhtemelen G'nin altına yapıştırmak isteyecez, o zaman A'yı G yaparız.)
Selection.PasteSpecial (buraya yabıştır)


Next

Range("B:G").Delete (hepsini A sütununa kopyaladık diye diğer sütunları siler. Burada örneğin ilk 6 sütunu kullanmazsak, B'den değil, 6 sütun sonradan başlatırız)


End Sub
Mesaj tarihi:
Ben anlatamadım derdimi bir türlü QQ

Ginaly'nin yazdığı kod benim verdiğim basit örnek için işe yaradı ama bloklar halinde c/p yapmak pek mümkün değil. Ben de visual basic hiç bilmiyorum, hayatımda ilk kez karşılaştım ginaly yazınca, o yüzden pek uyduramadım.

https://www.youtube.com/watch?v=1YAZj_0DHuM

Şöyle dönüştürmem gerekiyor tabloyu.

Bu arada ben bi çıkış yolu buldum ekstra program kullanarak. Önce verilerin i ve j indislerini ayarlıyorum excel'de (sort'la kolay oluyor bu kısım). STATA'da istediğim şekle sokuyorum 2 satırlık bir kodla; son olarak da excel'e geri export ediyorum...

Excel'de Tableau diye bir add-in varmış bu arada ama onun da macOs versiyonu yok + paralı.
×
×
  • Yeni Oluştur...