• DİKKAT

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

sıralama yapma konusunda

Katılım
5 Ağustos 2010
Mesajlar
126
Excel Vers. ve Dili
office excel 2003/2007
arkadaşlar herkese merhaba öncelikle sorumun cevabı için şimdiden teşekkür ederim hepinize. benim yapmaya çalıştığım şey ekteki dosyada gördüğünüz gibi tablolarım var ve ben bu tabloların girdiler kısmındaki alt kalemleri kendi içinde küçükten büyüğe sıralamak istiyorum. (bu ürün tablolarından 200 üzerinde var bi dosyada ve hepsinin alt kalem sayıları farklı) ayrıca bunları elimdeki ürün koduna göre sıralamakta istiyorum.yani kısaca alt kalemleri kendi içinde sıraladıktan sonra tabloları da başka bir excell sayfasında yer alan ürün kodu sırasına göre sıralamak istiyorum. konuyla ilgili yardımcı olacak arkadaşlara şimdiden tşk ederim.
 

Ekli dosyalar

kmisenin bi fikri yok anlaşılan. ben basit birşey sordum die düşünüyordum anlaşılan epey karışık bi soru sormuşum. buna cevap verecek kadar excel bilgisi olan arkadaş yok mu bu forumda.
 
Cevap alamamanızın nedeni, sorunuzun net olarak anlaşılamamasıdır büyük ihtimalle.
Şahsen ben ne yapmak istediğinizi, bahsettiğiniz tablonun gerçeğinin tam olarak neye benzediğini, sıralamayı yapınca nereye aktarım olacağını anlayamadım. Verdiğiniz örnekte de tablolar birbirinin tıpatıp aynısı.
Hücre adresleri vererek sorunuzu sorarsanız belki ne yapmak istediğinizi anlayabiliriz.
İyi günler.
 
aslında ben İnşaat mühendisiyim benzer bir tablo vermek istedim kafanız karışmasın diye ama daha çok karıştı anlaşılan orjinal bir dosya göndererek tekrar soruyorum. yapmak istediğim şu;sayfa 1 deki listeyi tutarına göre büyükten küçüğe sıralayacam.(sayfa 3 e sıralı halini ekledim) listede yer alan işlerin alt analizi olan sayfa ikideki tablolarıda buna göre sıralamam gerekiyor. gönderdiğim dosyada ilk sırada yer alan 14.012/2 Pozlu iş tutarına göre hangi sıraya giderse sayfa 2 deki bu poza ait analiz tablosu da o sıraya gitmeli.
birde sayfa 2 de tablo içerisinde G sutununda yer alan Tutarı altındaki değerleri karsız toplama kadar küçükten büyüğe sıralamak istiyorum ve bazı hücreler göreceğiniz üzere boş bu hücrelerinde silinmesi gerekecek. umarım açıklayıcı olmuştur. anlamadığınız yeri sorarsanız hemen cevaplarım çünkü buna gerçekten ihtiyacım var şimdiden tşk ederim
 

Ekli dosyalar

  • son.XLS
    son.XLS
    49.5 KB · Görüntüleme: 13
Son düzenleme:
merhaba
syn alfaoz, istediğiniz çalışmayı önümüzdeki günlerde vakit bulursam paylaşmayı düşünüyordum.
bilemiyorum, 10-15 gün sonra ancak vakit bulabilirim.
yalnız analizlerin önce sıraya konulması sonra kendi içinde tutarlara göre sıralanması biraz meşekkatli. bunun yerine her analizi tek tek tutarlara göre sıralatmanız daha pratik olacaktır.
sizin dosyanız oska veya amp den excele aktarılmış, 5-10 gün beklerseniz üretici firma bununla ilgili güncelleme yapacaktır.

benden önce vakit bulup yardımcı olacak arkadaşlar için durumu biraz daha basitleştirmekte fayda var.

keşif sayfanızı 5-6 poz olacak şekilde tutarlar dahil ekleyin.
sonra bu sayfayı tutarlara göre sıralayın. bu şekilde yardımcı olacak arkadaşlar ne yapmaları gerektiğini bilecektir.
analiz sayfaları içinde 5-6 analiz hazırlayın. ancak bu analizler farklı sayfalarda olsunki yine tutarlara göre sıralatmak kolay olsun.
bundan sonrasını siz halledebilirsiniz.
 
acil lazım

sayın uzmanamele haklısınız ve verdiğiniz bilgi ve gösterdiğiniz ilgiye tşk ederim. ama 10-15 gün bekleyecek durumda değilim elimde bekleyen işlerim var.işin ehli olan excelden iyi anlayan arkadaşlar için o kadar da zor olmayacağını düşünüyorum kalıp belli çünkü. komutları tam bilsem ben bile yapmaya uraşacam.

Bu arada dosyayı yeniledim ve "yapılacak haliyle yapmak istediğim hali" koydum. gayet açık olduğunu ve işin ehli arkadaşların kısa sürede soruma cevap vereceğini düşünüyorum.
şimdiden teşekkür ederim, herkese iyi çalışmalar
 

Ekli dosyalar

  • son.XLS
    son.XLS
    49.5 KB · Görüntüleme: 14
Merhaba.

anlaşılması amacıyla yazıyorum...

elimizdeki "son.xls" isimli bir dosuya ve bu dosyada "Mevcut sıra" ve "Mevcut analiz" isimli içinde veri bulunan sayfalar var. ayrıca içi boş olan "tutara göre sıralı" ve "yapılacak analiz sonrası" isimli sayfalar var.


1- "Mevcut sıra" sayfasındaki veriler "tutara göre sıralı" sayfasına kopyalanacak.

2- "tutara göre sıralı" sayfasındaki tablo G sütunundaki "tutarı" başlığına göre büyükten küçüğe sıralanacak.

3- "Mevcut analiz" sayfasındaki farklı büyüklüklerdeki tablolar, (tutara göre sıralı sayfasındaki yeni sıraya göre) C sütunundaki Poz.No bazında "yapılacak analiz sonrası" sayfasına kopyalanacak.

4- bunlar yapılırken "Mevcut analiz" sayfasındaki tablo dipnotları kopyalanmayacak, tablo içindeki tutarı sütunundaki değeri 0 olan (veya boş olan) satırlar silinecek.

benim üstesinden gelebileceğim bir konu değil ama durum bu mudur?
 
merhaba

syn alfaoz, kısa pratik bir çözüm önereyim. bir kısmını siz manuel tamamlayabilirsiniz. gereksiz yerleri elle silmek gibi.

keşif listenizin en soluna (A sütununda) A8 hücreye =G8 yazıp tablo boyunca formülü kopyalayın.
A8:G13 alanını seçip Z-A (büyükten küçüğe) sıralayın.

benzer şekilde Analiz sayfasında da yapın ve A-Z (küçükten büyüğe) sıralayın ve gereksiz satırları silin.

bu sizin acil işinizi görür. kapsamlı bir dosya için maalesef benim vaktim yok, arkadaşlarımız yardım edebilir.
 
öncelikle ilginize teşekkür ederim. bazı düzeltmeler yapayım.

1- "mevcut sıra" isimli sayfa sadece analiz formatını sıralamak için gerekli olan bi sayfa

2- bu sayfanın sıralamasını kendim elle yapabilirim o konuda sıkıntı yok.

3- "tutara göre sıralı" sayfasında C sütunundaki verilerin sırasına göre "yapılacak analiz sıralaması" sayfasında (B sutunu hizasında her analiz formatı tablosu içinde tablonun hangi poza ait olduğu yazılı ilk örnek için B& sutununu işaretlemiştim zaten) bu tablolar sıralanacaktır.

4- "yapılacak analiz sıralaması" sayfasında sadece "İş Kalemi / İş Grubu No :" yazılı hücrenin bi altındaki poz noyu sıralamada veri olarak kullanacağız.

5-"yapılacak analiz sıralaması" sayfasında B sutununda yer alan "Poz No:" altındaki pozlar zaten biz "Tutar"a göre (G sutunundaki) sıraladığımızda sıraya girecektir. onlarla bir işimiz yok

6- 4. maddeniz aynen doğrudur. açıklamalarınız için teşekkür ederim.

bunu yapabilecek bir arkadaş vardır umarım.

şimdiden teşekkür ederim, herkese iyi çalışmalar.
 
SYN UZMAN AMELE VERDİĞİNİZ BİLGİLER İÇİN TEŞEKKÜR EDERİM. ancak ben zaten bu şekilde yapıyorum ve bunu makrolarla yapmaya çalışıyorum. aslında işin başka bi kısmını ben kendim yaptım sadece kod bilmediğim için bu kısmını yapamıyorum. if döngüsünden öteye gidemedim henüz anlıyacağınız ;)
ilerde belki öğrenmeye vaktim olur ancak şuanda acil işimi kolaylaştıracak bir makroya ihtiyacım var.
yine de ilginize teşekkür ederim, çalışmalarınızda başarılar dilerim.
 
Merhaba.
benim mesajımdaki madde 4 için aşağıdaki kodu kullanabilirsiniz.
Kod aktif olunan sayfada çalıştırılmalıdır.
Çalıştırmadan önce dosyalarınızın yedeğini mutlaka alınız.
Diğer konular için yardımcı olamıyorum maalesef.


Kod:
Sub DeleteRows()
    
Dim iRow As Long

With ActiveSheet

    For iRow = .Cells(.Rows.Count, "B").End(xlUp).Row To 1 Step -1
        If .Cells(iRow, "G").Value = 0 And _
           Len(Cells(iRow, "C")) > 0 Then
            .Rows(iRow).Delete
        End If
    Next iRow

    For iRow = .Cells(.Rows.Count, "B").End(xlUp).Row To 1 Step -1
        If InStr(1, .Cells(iRow, "B").Value, "1 İş kalemi", vbTextCompare) Or _
        InStr(1, .Cells(iRow, "B").Value, "2 İş kalemi", vbTextCompare) Then
            .Rows(iRow).Delete
        End If
    Next iRow

End With

End Sub
 
merhaba

ek dosya işinizi görür umuyorum.

Kod:
Sub analiz_düzenle()
Application.ScreenUpdating = False

ss = Sheets("sıralı_analiz").Range("g65536").End(3).Row
Sheets("sıralı_analiz").Range("B2" & ":G" & ss).EntireRow.Delete
   
    Call temizle
    
Dim ilksat As Double, sonsat As Double
Set s1 = Sheets("Mevcut analiz")
Set s2 = Sheets("keşif")
Set s3 = Sheets("sıralı_analiz")
For i = 8 To s2.Range("c65536").End(3).Row
poz_no = s2.Cells(i, 3).Text
ilksat = WorksheetFunction.Match(poz_no, s1.[b:b], 0)
sonsat = WorksheetFunction.Match("Toplam Tutar", s1.Range("B" & ilksat & ":B65536"), 0) + ilksat - 1

ss = s3.Range("b65536").End(3).Row
s1.Range("B" & ilksat - 2 & ":G" & sonsat).Copy
s3.Cells(ss + 1, 2).PasteSpecial
Application.CutCopyMode = False
Next i

    Call analiz_sırala
Application.ScreenUpdating = True
End Sub
Kod:
Sub tutara_göre_sırala()
    Application.ScreenUpdating = False
    ss = Sheets("keşif").Range("g65536").End(3).Row
    Range("C8" & ":G" & ss - 1).Select
    Selection.Sort Key1:=Range("G8"), Order1:=xlDescending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
Range("B6").Select
End Sub
Kod:
Sub poza_göre_sırala()
    Application.ScreenUpdating = False
    ss = Sheets("keşif").Range("g65536").End(3).Row
    Range("C8" & ":G" & ss - 1).Select
    Selection.Sort Key1:=Range("C8"), Order1:=xlDescending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
Range("B6").Select
End Sub
Kod:
Sub analiz_sırala()
Set s4 = Sheets("sıralı_analiz")
Set s5 = Sheets("keşif")
s4.Range("b1") = "İNŞAAT İŞ KALEMLERİ BİRİM FİYAT ANALİZLERİ"
For i = 8 To s5.Range("c65536").End(3).Row
poz_no = s5.Cells(i, 3).Text
ilksat = WorksheetFunction.Match(poz_no, s4.[b:b], 0)
sonsat = WorksheetFunction.Match("Toplam Tutar", s4.Range("B" & ilksat & ":B65536"), 0) + ilksat - 1
    
    s4.Range("B" & ilksat + 2 & ":G" & sonsat - 3).Select
    Selection.Sort Key1:=Range("G" & ilksat + 2), Order1:=xlDescending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
Next
Range("B2").Select
End Sub
 

Ekli dosyalar

sayın uzmanamele ilkginize tekrar teşekkür ederim tüm samimiyetimle söylüyorum 2 gündür onca uğraşımı çok kolaylaştırdınız bende devamlı takip ediyordum bu linki tekrar tekrar teşekkürler
 
çok teşekkür ederim ellerinize sağlık sayın ameleuzman. yanlız küçük bi detay var "sıralı_analiz" sayfasındaki tablo içindeki değerlerin küçükten büyüğe sıralı olması gerekiyor. sizinkinde büyükten küçüğe olmuş. bir de her tablo arasında iki satır boşluk olması gerekiyordu. bunlarıda eklerseniz çok memnun olurum.
ama eklemesenizde teşekkür ederim. ciddi emek göstermişsiniz.
emeğinize sağlık.


sn mancubus size de teşekkür ederim. vakit ayırıp ilgilendiğiniz için. sizin de emek harcadığınız aşikar.
emeğinize sağlık
 
merhaba

sıralı analiz sayfasında araya satır eklemek ve küçükden-büyüğe sıralamak için aşağıdaki kodu kullanabilirsiniz.

Kod:
Sub analiz_sırala()
Set s4 = Sheets("sıralı_analiz")
Set s5 = Sheets("keşif")
s4.Range("b1") = "İNŞAAT İŞ KALEMLERİ BİRİM FİYAT ANALİZLERİ"
For i = 8 To s5.Range("c65536").End(3).Row
poz_no = s5.Cells(i, 3).Text
ilksat = WorksheetFunction.Match(poz_no, s4.[b:b], 0)
sonsat = WorksheetFunction.Match("Toplam Tutar", s4.Range("B" & ilksat & ":B65536"), 0) + ilksat - 1
    
    s4.Range("B" & ilksat + 2 & ":G" & sonsat - 3).Select
    Selection.Sort Key1:=Range("G" & ilksat + 2), Order1:=[COLOR="red"]xlAscending[/COLOR], Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
               [COLOR="Red"] s4.Cells(sonsat + 1, 1).EntireRow.Insert[/COLOR]

Next
Range("B2").Select
End Sub
 
ellerinize sağlık tam istediğim gibi olmuş.
son iki şey daha isteyebilir miyim .gerçi en baştada söylemiştim ama tabloları düzenlediğimiz "sıralı_analiz" sayfasında sıralama yapıldıktan sonra tutarı olmayan kalemlerin silinmesi lazımdı. bunlar genelde B sutununda malzeme işçilik gibi terimlerdir ama ben "Tutarı altındaki her türlü boş hücrenin silinmesini istiyorum.
ikincisi sıralama yapmak için "sıralı_analiz" sayfasına bir buton koyabilir misiniz ben oldukça acemiymişim bunu bile beceremedim :)
şimdiden teşekkür ederim. emeğinize sağlık
 
merhaba

analiz sayfasında B sütununda boş hücrenin olduğu bütün satırlar silinmiyor mu?
 
MALESEF TEKRAR BAKTIM AMA SİLMİYOR BANA ZATEN b SUTUNU DOLU OLSA DA tutarı altında eğer değer yoksa silinmesi lazım yani bazen işin pozu olup tutarı olmayabilir onlarında silinmesi lazım birde sanırım "mevcut analize" kopyaladığım analizleri "sıralıya" da kopyalamam gerekiyor. yoksa "sıralı analiz" sayfası boş olursa mevcuttan kopyalanan verinin sayfa yapısı uymuyor.
 
Son düzenleme:
merhaba

B sütununda, rayiç poz yoksa ilgili satır silinir ancak rayiç poz nosu olup tutarı olmayanlar için G sütununa bakmak lazım. bunun sınaması B sütunu gibi değildir, yinede olur ama çok önemli bir eksiklik olduğunu sanmıyorum. isterseniz buna göre örnek bir poz analizi ekleyin deneyelim.

analiz sayfalarının hazırlanması için analiz_düzenle makrosunun çalıştırılması yeterli.
sıralarken hata mesajı veriyorsa makroya aşağıdaki satırı ilave ediniz.

Kod:
Sub analiz_sırala()
Set s4 = Sheets("sıralı_analiz")
[COLOR="Red"]s4.Select[/COLOR]
Set s5 = Sheets("keşif")
s4.Range("b1") = "İNŞAAT İŞ KALEMLERİ BİRİM FİYAT ANALİZLERİ"
For i = 8 To s5.Range("c65536").End(3).Row
poz_no = s5.Cells(i, 3).Text
ilksat = WorksheetFunction.Match(poz_no, s4.[b:b], 0)
sonsat = WorksheetFunction.Match("Toplam Tutar", s4.Range("B" & ilksat & ":B65536"), 0) + ilksat - 1
    
    s4.Range("B" & ilksat + 2 & ":G" & sonsat - 3).Select
    Selection.Sort Key1:=Range("G" & ilksat + 2), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
                s4.Cells(sonsat + 1, 1).EntireRow.Insert
Next
Range("B2").Select
End Sub
 
Geri
Üst