• DİKKAT

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

sıralama formülü

Katılım
8 Temmuz 2006
Mesajlar
144
Excel Vers. ve Dili
Microsoft Office LTSC Professional Plus 2021 Tr
Merhaba arkadaşlar;
A1 hücresine yazdığım K01 kodunu otomatik doldurma yapmadan formül kullanarak şu şekilde sıralamak istiyorum

A1 - K01
A2 - K02
A3 - K03
.
.
A10 - K10
.
.
Nasıl bir formül yazmalıyım.
 
Merhaba.
A1 hücresine K01 yazdıktan sonra A2 hücresine aşağıdaki formülü uygulayın ve aşağı doğru kopyalayın.
Kod:
="K"&EĞER(SATIR()<10;"0";"")&SATIR()
 
Sayın Ömer Baran bey, hesaplama süreci devam ettiği için aynı sayılar var hesaplama bittiğinde aynı rakamların olması olası değil. Yani hepsi farklı olacak. Buna yönelik çözümü de yine siz yapmıştınız makro kodla ancak iki farklı sayfada çalışıyordu.Ancak linkte de görüleceği üzere aynı sayfa içinde formülle ya da makro kodları yapmam gerekiyor, ama uyarlayamadım. O yüzden yardımınıza ihtiyacım var.Hatırlatma babında makro kodunuz şöyleydi:
Sub SayilariGetir()
s = Sayfa1.Rows(1).End(xlToRight).Column
For i = 1 To s
Sayfa1.Cells(2, i) = WorksheetFunction.VLookup(Sayfa1.Cells(1, i), Sayfa2.Columns("a:b"), 2, False)
Next
End Sub

Sub SayilariBul()
Sayfa2.[a:b].Clear
Sayfa1.Select
s = Rows(1).End(xlToRight).Column
Range(Cells(1, 1), Cells(1, s)).Select
Selection.Copy
Sayfa2.Select
[a1].PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Application.CutCopyMode = False
ActiveSheet.Columns(1).RemoveDuplicates Columns:=1, Header:=xlNo
Columns(1).Sort key1:=[a1], order1:=xlDescending
x = [a65536].End(3).Row
Range("b1:b" & x) = Range("a1:a" & x).Value
Range("b1:b" & x).Sort key1:=[b1], order1:=xlAscending
Sayfa1.Select
End Sub
 
Sayın .......Buna yönelik çözümü de yine siz yapmıştınız makro kodla ancak iki farklı sayfada çalışıyordu...........Hatırlatma babında makro kodunuz şöyleydi:
Sub SayilariGetir()
...........
End Sub


Merhabalar yanılıyorsunuz.
Ben böyle bir kod yazdığımı hatırlamayınca forumda arama yaptım ve buldum (üstelik o konuya ilişkin benim hiç bir yorumum/cevabım dahi yok), kodlar Sayın forum uzmanı Sayın hamitcan tarafından http://www.excel.web.tr/f14/buyukten-kucuoe-syralama-i-lemi-t141851.html konu sayfasındaki 4 numaralı cevapta yazılmış.
Burada yaptığınız gibi, ilgili/ilgisiz açılmış konu sayfasında soru sormuşsunuz ama cevap da almışsınız.
Kod bilgim bu kod'u revize edecek kadar yeterli değil malesef.
Başlıkta adını yazmamanız şartıyla Sayın hamitcan'ın ilgilenmesini sağlayacak şekilde (eski konudaki hamitcan'ın cevabından alıntı yaparak) yeni konu açmanızı önerebilirim.
 
Teşekkür ederim Sayın Ömer Baran bey.
 
Merhaba.
A1 hücresine K01 yazdıktan sonra A2 hücresine aşağıdaki formülü uygulayın ve aşağı doğru kopyalayın.
Kod:
="K"&EĞER(SATIR()<10;"0";"")&SATIR()

Sn omer.baran verilerin yerini değiştirdiğimiz zaman satır numaraları değiştiği için sonuç yanlış oluyor, yeni formülü a2 hücresine değil de d4 hücresine yazınca sonuç yanlış oluyor.

Kod:
=EĞER(VE(UZUNLUK(a1=3);SOLDAN(a1;2)="K0");"K0"&SAĞDAN(a1;UZUNLUK(a1)-1)+1;"K"&SAĞDAN(a1;UZUNLUK(a1)-1)+1)

bu şekilde bir formül yazdım fakat K09 dan sonra K10 diye değil K010 şeklinde devam ediyor.
 
Merhaba İsmail Bey.

Sorunuz yoruma açık bir konuydu aslında (kaç satır çoğaltacağınıza ilişkin bir ipucu dahi yoktu) ve A1, A2.... şeklinde sorarak konu açmıştınız ve verdiğim cevap da isteğinize uygun bir cevaptı aslında (çıkabilecek tek sorun 99'dan sonrası idi).
İhtiyacı tam olarak tanımlarsanız cevap da net olur ve gereksiz fazla sayıda cevap yerine hem çabuk ve hem de ihtiyacı tam karşılayan sonuca en kısa sürede ulaşırsınız.
Bazı sorularım var (aslında konu açılışınde bu hususların net olarak ifade edilmesi gerekirdi;
-- İlk veriyi nereye yazacaksınız?
-- Soldaki HARF karakteri sayısı mutlaka K gibi tek karakter midir?
-- Formülü yaklaşık kaç satır çoğaltmayı öngörüyorsunuz?
-- Formül hangi sütunda kullanılacak?
-- Aşağı doğru dışında formülün sağa doğru da kopyalanma olasılığı var mıdır?
 
Merhaba İsmail Bey.

Sorunuz yoruma açık bir konuydu aslında (kaç satır çoğaltacağınıza ilişkin bir ipucu dahi yoktu) ve A1, A2.... şeklinde sorarak konu açmıştınız ve verdiğim cevap da isteğinize uygun bir cevaptı aslında (çıkabilecek tek sorun 99'dan sonrası idi).
İhtiyacı tam olarak tanımlarsanız cevap da net olur ve gereksiz fazla sayıda cevap yerine hem çabuk ve hem de ihtiyacı tam karşılayan sonuca en kısa sürede ulaşırsınız.
Bazı sorularım var (aslında konu açılışınde bu hususların net olarak ifade edilmesi gerekirdi;
-- İlk veriyi nereye yazacaksınız?
-- Soldaki HARF karakteri sayısı mutlaka K gibi tek karakter midir?
-- Formülü yaklaşık kaç satır çoğaltmayı öngörüyorsunuz?
-- Formül hangi sütunda kullanılacak?
-- Aşağı doğru dışında formülün sağa doğru da kopyalanma olasılığı var mıdır?

anlatması kolay olsun diye a1 a2 diye sormuştum aslında soruyu
ilk veri K gibi tek karakter olacak
ilk veriyi c2 hücresine yazıyorum formülü sağa sola kopyalamıyorum
c11, c20, c29, h2 gibi değişik hücrelere yazıyorum

c2=K01

c11 =EĞER(VE(UZUNLUK(C2=3);SOLDAN(C2;2)="K0");"K0"&SAĞDAN(C2;UZUNLUK(C2)-1)+1;"K"&SAĞDAN(C2;UZUNLUK(C2)-1)+1)

c20=EĞER(VE(UZUNLUK(C11=3);SOLDAN(C11;2)="K0");"K0"&SAĞDAN(C11;UZUNLUK(C11)-1)+1;"K"&SAĞDAN(C11;UZUNLUK(C11)-1)+1)

gibi
 
Aslında formülü nereye yazdığınız kadar, hangi sonucu almak istediğiniz de önemli C2'ye K01 yazınca C11'de ne görmek istiyorsunuz, C20'de ne görmek istiyorsunuz, aynı şekilde bu hücrelerde, C2'ye K001 yazdığınızda ne görmek istiyorsunuz acaba?

Anladığım kadarıyla formül yazma sorununuz aslında yok.
Fikir olarak şunu söyleyeyim formülünüzde yazılacak 0 adeti için, YİNELE ve SATIRSAY işlevleriyle SATIR işlevini kullanmayı düşünebilirsiniz.
 
Aslında formülü nereye yazdığınız kadar, hangi sonucu almak istediğiniz de önemli C2'ye K01 yazınca C11'de ne görmek istiyorsunuz, C20'de ne görmek istiyorsunuz, aynı şekilde bu hücrelerde, C2'ye K001 yazdığınızda ne görmek istiyorsunuz acaba?

C11 = K02
C20 = K03
C29 = K04
H2 = K05

diye yükselip gidecek
 
Soru ve son açıklamaları birlikte düşününce;
C sütunu tamam da (tamam diyorum ama örneğin C11 ile C20 arası, C20 ile C29 arası BOŞ mu olacak o da belli değil), onu geçtim, C sütunundan sonra H sütununa (neden H sütunu, neden 2'nci satır, K05'i (ilk 4'ün yazıldığı nasıl kontrol edilecek vs) nasıl yazdırılacağını bulma konusunda benim excel bilgim sanırım yeterli olmayacak.

İsmail Bey en iyisi siz, bir örnek belge (asıl belgenizin formatına uygun olmasına özen gösteriniz, aynı formatta olunca kesin çözüme daha hızlı ulaşırsınız) hazırlayın ve burası veya burası gibi bir paylaşım sitesine yükleyip burada, paylaşım sitesinden alacağınız belgenize ulaşım bağlantı adresini paylaşınız. Gerçeğine uygun belge üzerinde çalışmak daha anlamlı diye düşünüyorum.
 
problem çözülmüştür teşekkür ederim.
 
Son düzenleme:
Problem Çözülmüştür teşekkür ederim
 
Son düzenleme:
Konu başlığı açamadığım için sorumu şöyle özetledim; Öncelikle merhaba Sayın forum üyeleri üzerinde uğraştığım ama çözemediğim şöyle bir sorum olacak. Misal;

a1= 3, b1=4, c1=9, d1=0, e1=0 hücrelerinde

a2= 4, b2=3, c2=0, d2=9, e2=9 hücrelerinde olacak şekilde sıralanması gerekiyor.

Yani sayı serilerinde en büyük değeri alan en küçük değer, en küçük değer alan en büyük değer olacak şekilde sıralanması gerekiyor.
Sayın Hamitcan bey, probleme yönelik çözümü makro kodla yaptı ancak iki farklı sayfada çalışıyordu. Sorunu aynı sayfa içinde (dosya linki:http://s3.dosya.tc/server5/vf60s3/MO...ecek.xlsx.html) formülle ya da makro kodla yapmam gerekiyor, ama uyarlayamadım. O yüzden yardımınıza ihtiyacım var. Hatırlatma babında makro kod şöyleydi:
Sub SayilariGetir()
s = Sayfa1.Rows(1).End(xlToRight).Column
For i = 1 To s
Sayfa1.Cells(2, i) = WorksheetFunction.VLookup(Sayfa1.Cells(1, i), Sayfa2.Columns("a:b"), 2, False)
Next
End Sub

Sub SayilariBul()
Sayfa2.[a:b].Clear
Sayfa1.Select
s = Rows(1).End(xlToRight).Column
Range(Cells(1, 1), Cells(1, s)).Select
Selection.Copy
Sayfa2.Select
[a1].PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Application.CutCopyMode = False
ActiveSheet.Columns(1).RemoveDuplicates Columns:=1, Header:=xlNo
Columns(1).Sort key1:=[a1], order1:=xlDescending
x = [a65536].End(3).Row
Range("b1:b" & x) = Range("a1:a" & x).Value
Range("b1:b" & x).Sort key1:=[b1], order1:=xlAscending
Sayfa1.Select
End Sub

Şimdiden teşekkür ederim.
 
Mrb Üstadım aşağıda size bir tablo gönderdim.
A B C D E F G H
KDV Orani Tarih Matbu Belge No Müsteri Adi Fatura Tipi KDV Matrahi KDV Tutari TOPLM
1,00 07.10.2015 595673 KINIK Satış Faturası 360,00 3,60 363,60
1,00 07.10.2015 595674 DEVA Satış Faturası 56,20 0,56 56,76
8,00 07.10.2015 595674 DEVA Satış Faturası 21,87 1,75 23,62
8,00 07.10.2015 595675 EDKO Satış Faturası 352,80 28,22 381,02

Bu tablodaki sorum belge numarasına göre alt alta yazılan tek faturanın rakamlarını yan yana getirmesi Müşteri Adı ve Belge No yu karşılaştırıp eşit olanları tek satıra yan yana getirmesi.
Yani, Tablomdaki bu iki satır aslında tek fatura ama kdv oranları farklı olduğu için alt alta yazıyor. Ben bu tek fatura iki satırda yazanları tek satıra yazmasını istiyorum. Tabi örnekde 3 fatura var ama gerçekde 150-200 tane bu tip fatura var Belge no ve Müşteri adı eşleştirerek tek satıra yazarsa çok sevinirim. Tabi mümkün ise. Şimdiden ilginize çok teşekkür ederim. Saygılarımla
A B C D E F G H
KDV Orani Tarih Matbu Belge No Müsteri Adi Fatura Tipi KDV Matrahi KDV Tutari TOPLM
1,00 07.10.2015 595674 DEVA Satış Faturası 56,20 0,56 56,76
8,00 07.10.2015 595674 DEVA Satış Faturası 21,87 1,75 23,62
 
Geri
Üst