Kolonları Karışık Gelen Data

Katılım
12 Ekim 2009
Mesajlar
4
Excel Vers. ve Dili
excel 2007
Merhaba, sistemden bir data tablosu çekiyorum, tablo ekteki şekilde geliyor.

Bu tabloda sorun yok istediğimi sağ tarafta formüllü bir şekilde yapabiliyorum zaten.

Sorun şurada başlıyor, bu tablonun kolonları her gün karışık geliyor, yani mesela bugün A, B, C olarak gelirken yarın C, B, A olarak geliyor, bir sonraki gün apayrı bir sırayla geliyor. (Tablonun kendisinde 15 20 tane kolon var.) Ben de her gün bu kolonları doğru şekilde sıraya koymak zorunda kalıyorum.

Bu şekilde gelen bir tabloda vlookup gibi bir formül kullanarak ya da tabloyu düzenleyecek bir macro kullanarak bu işlemi otomatik hale getirebilir miyim? İlgilenen arkadaşlara teşekkürler.
 

Ekli dosyalar

Katılım
12 Ekim 2009
Mesajlar
4
Excel Vers. ve Dili
excel 2007
Ekteki excel dosyasına örnek olması açısından 3 günlük tablo ekledim.

Örnekte de görüldüğü gibi, her gün müşterilerin bakiyeleri aynı, fakat müşteri tipi kolonları farklı sırayla geldiği için rapor sayfasında toplamları yanlış geliyor.

Sumif formülüyle toplama yaparken bir sütun tanımlamak gerektiği için benim hergün ya formülü değiştirmem gerekiyor, ya da müşteri tipi kolonlarının sırasını ayarlamam gerekiyor.
 

Ekli dosyalar

İ

İhsan Tank

Misafir
Ekteki excel dosyasına örnek olması açısından 3 günlük tablo ekledim.

Örnekte de görüldüğü gibi, her gün müşterilerin bakiyeleri aynı, fakat müşteri tipi kolonları farklı sırayla geldiği için rapor sayfasında toplamları yanlış geliyor.

Sumif formülüyle toplama yaparken bir sütun tanımlamak gerektiği için benim hergün ya formülü değiştirmem gerekiyor, ya da müşteri tipi kolonlarının sırasını ayarlamam gerekiyor.
merhaba
F5 hücresine
Kod:
=TOPLA.ÇARPIM((DOLAYLI("'"&METNEÇEVİR($D4;"gg.aa.yyyy")&"'!B3:B1000")=$E5)*
(İNDİS(DOLAYLI("'"&METNEÇEVİR($D4;"gg.aa.yyyy")&"'!C3:E1000");0;KAÇINCI(F$4;
DOLAYLI("'"&METNEÇEVİR($D4;"gg.aa.yyyy")&"'!C2:E2");0))))
F6 hücresine
Kod:
=TOPLA.ÇARPIM((DOLAYLI("'"&METNEÇEVİR($D4;"gg.aa.yyyy")&"'!B3:B1000")=$E6)*
(İNDİS(DOLAYLI("'"&METNEÇEVİR($D4;"gg.aa.yyyy")&"'!C3:E1000");0;KAÇINCI(F$4;
DOLAYLI("'"&METNEÇEVİR($D4;"gg.aa.yyyy")&"'!C2:E2");0))))
F7 hücresine
Kod:
=TOPLA.ÇARPIM((DOLAYLI("'"&METNEÇEVİR($D4;"gg.aa.yyyy")&"'!B3:B1000")=$E7)*
(İNDİS(DOLAYLI("'"&METNEÇEVİR($D4;"gg.aa.yyyy")&"'!C3:E1000");0;KAÇINCI(F$4;
DOLAYLI("'"&METNEÇEVİR($D4;"gg.aa.yyyy")&"'!C2:E2");0))))
bu formülleri yazın sağ'a doğru çoğaltın.
Not : Sekme Adını Hücreden Almakta siz yazmıyorsunuz.
formüllerde 1000 satır baz alınmıştır.
diğer yerleri siz ayarlayın.
Not : En kısa Yol Kopyala Yapıştırdır. :)
 
Katılım
24 Haziran 2011
Mesajlar
23
Excel Vers. ve Dili
Excel 2007-Türkçe
merhaba
ben de benzer bir sorunu yaşamıştım. söyle bir makro yazmıstım. umarım işine yarar. aşağıdaki italik yazılarla makroyu açıklamaya çalıştım. kolay gelsin.

Sub sutun_kontrol()
'
' Makro2 Makro
'

'



son = [A1048576].End(3).Row
For n = 1 To 30


(30 SÜTUN OLDUĞUNU SÖYLEMİŞTİN SANIRIM, DURUMA GÖRE BU RAKAMI DEĞİŞTİREBİLİRSİN)


c = 0
For i = 1 To 30

If Cells(1, i) = Cells(n, 32) Then


(BU 32 NİN ANLAMI ŞU, EXCELDE SUTUNLAR KARIŞIK ŞEKİLDE 30 SÜTUN GELDİ DİYELİM. SEN HANGİ SIRADA GELMESİNİ İSTİYORSAN O SIRADA, 32. SÜTUNDA YUKARIDAN AŞAĞI DOĞRU YAZ SÜTUN İSİMLERİNİ. MAKRO 32. SÜTUNUN 1. ELEMANINI SEÇECEK VE İLK 30 SÜTUNUN İLK HÜCRELERİNE TEK TEK BAKACAK. BULDUĞUNDA, O SÜTUNU AYNI SAYFADA BİR YERE KOPYALAYACAK. BEN 51. SÜTUNA KOPYALATTIM İLK OLARAK)

Cells(1, i).Select
Range(Selection, Cells(son, i)).Select
Selection.Copy
Cells(1, n + 50).Select
ActiveSheet.Paste
c = c + 1
End If

Next i

If c = 0 Then
MsgBox Cells(n, 32) & " faktörü bulunamamıştır!"
Cells(n, 32).Select: Selection.Copy
Cells(1, n + 50).Select: ActiveSheet.Paste
End If


(BURADA DA BU SEÇİP KOPYALADIKLARIMIZIN HEPSİNİ, DÜZENLENMİŞ TABLO DİYE YENİ BİR SAYFA AÇIP ORAYA KOPYALIYOR.)
Next n


Range("ay1:bo" & son).Select
Selection.Copy
Sheets.Add After:=Sheets(Sheets.Count)
ActiveSheet.Paste
Cells.EntireColumn.AutoFit
Range("A1").Select
Sheets(Sheets.Count).Name = "Düzenlenmiş Tablo"







End Sub
 
Üst