Değere göre farklı sonuç çıkarma

Katılım
4 Ocak 2006
Mesajlar
72
Excel Vers. ve Dili
2003-türkçe
Arkadaşlar merhaba ekteki excel sayfasında bir makro yapmak istiyorum fakat konu biraz karaşık olduğundan yapamadım. Yardımcı olursanız sevinirim.
 

Ekli dosyalar

fedeal

Banned
Katılım
29 Mayıs 2008
Mesajlar
1,985
Excel Vers. ve Dili
2003 tr
formül isterseniz b4 hücresi için;

Kod:
=EĞER((A$1-A4)>(A$1* 0,05);"-1";"+1")
makrolu çözüm isterseniz;

Kod:
Sub n()
yzd = CDbl(Cells(1, 1).Value) * 0.05
For i = 4 To 186
If CDbl(Cells(1, 1).Value) - CDbl(Cells(i, 1).Value) > yzd Then
Cells(i, 2).Value = "-1"
Else
Cells(i, 2).Value = "+1"
End If
Next
End Sub
iyi çalışmalar.
 
Katılım
4 Ocak 2006
Mesajlar
72
Excel Vers. ve Dili
2003-türkçe
sıfır konusunu formülde göremedim
-%5 ile +%5 arasındaki değere 0 yazıyormu
 

fedeal

Banned
Katılım
29 Mayıs 2008
Mesajlar
1,985
Excel Vers. ve Dili
2003 tr
pardon anlamamışım b4 hücresi için;

Kod:
=EĞER(A4<(A1-(A$1*0,05));"-1";EĞER(A4>(A1+(A$1*0,05));"+1";"0"))
denermisiniz.
 
Katılım
4 Ocak 2006
Mesajlar
72
Excel Vers. ve Dili
2003-türkçe
Makro

Sayın fedeal birinci problemimi yardımınızla çözdüm çok teşekkür ederim. Bir problemim daha var yardımcı olursanız sevinirim çalışma kitabını ekliyorum.
İyi çalışmalar
 

Ekli dosyalar

fedeal

Banned
Katılım
29 Mayıs 2008
Mesajlar
1,985
Excel Vers. ve Dili
2003 tr
sayfa1 formül sayfa2 makrolu çözüm,
 

Ekli dosyalar

Son düzenleme:
Katılım
4 Ocak 2006
Mesajlar
72
Excel Vers. ve Dili
2003-türkçe
Sayın fedeal çok güzel oluş teşekkür ederm. Mu makroyu benim size gönderdiğim bir sutun için yapmıştık bunu yanyana 2500 sutun için yapabilirmiyiz. Her bir sutun bit tarih içeriyor o tarihin üstünde sabit bir değer var ve tarin altıda da 150-300 arasında değer var. Değerler 1. sayfada sonuçları 2. sayfada tarih-DL Değeri-DU Değeri olarak. Bununla ilgili bir çalışma syfası ekliyorum. Tekrar yardımlarınızan dolayı teşekkür ederim.
 
Katılım
4 Ocak 2006
Mesajlar
72
Excel Vers. ve Dili
2003-türkçe
Sayın fedeal çok güzel oluş teşekkür ederm. Mu makroyu benim size gönderdiğim bir sutun için yapmıştık bunu yanyana 2500 sutun için yapabilirmiyiz. Her bir sutun bit tarih içeriyor o tarihin üstünde sabit bir değer var ve tarin altıda da 150-300 arasında değer var. Değerler 1. sayfada sonuçları 2. sayfada tarih-DL Değeri-DU Değeri olarak. Bununla ilgili bir çalışma syfası ekliyorum. Tekrar yardımlarınızan dolayı teşekkür ederim.
 

Ekli dosyalar

Katılım
4 Ocak 2006
Mesajlar
72
Excel Vers. ve Dili
2003-türkçe
Sayın fedeal teşekkürler. Yanlız ben 2007 office kullanıyorum Excel 2007’de 16.384 adet sutun var ama. Ben onun için 1.sayfadaki değerlerin sonuçlarını 2.sayfada istemiştim. Sizin verdiğiniz makroyu oraya uygulayamadım. Yardımcı olursanız sevinirim.
 

fedeal

Banned
Katılım
29 Mayıs 2008
Mesajlar
1,985
Excel Vers. ve Dili
2003 tr
kullandıgınız versiyon 2003 olarak görünüyor. Bir şeyler yaptım yanlız uyarıyorum döngü kullanılarak yapılan bu işlem 2500 satırı hesaplar ancak bir çay molası vermeniz gerekebilir. find yada başka metotla olabilir diye düşünüyorum ama beni şuan aşacak gibi neyse deneyin problem olursa uzmanlarımız destek verir diye düşünüyorum.
Kod:
Sub fd()
Dim satır, sütun, i As Long
Dim sf, sf1 As Worksheet

satır = 1
Set sf = Sheets("sayfa1")
Set sf1 = Sheets("sayfa2")

For sütun = 1 To [COLOR="Red"]3[/COLOR]
For i = 3 To sf.Cells(65536, sütun).End(xlUp).Row
If CDbl(sf.Cells(1, sütun).Value) <= CDbl(sf.Cells(i, sütun).Value) Then
If i < 11 Then
satır = satır + 1
sf1.Cells(satır, 1).Value = sf.Cells(2, sütun).Value
sf1.Cells(satır, 2).Value = "1"
sf1.Cells(satır, 3).Value = "0"
sf1.Cells(satır, 4).Value = sütun
GoTo atla
End If
If i > WorksheetFunction.CountA(Range("a:a")) - 11 Then
satır = satır + 1
sf1.Cells(satır, 1).Value = sf.Cells(2, sütun).Value
sf1.Cells(satır, 2).Value = "0"
sf1.Cells(satır, 3).Value = "1"
sf1.Cells(satır, 4).Value = sütun
GoTo atla
End If
satır = satır + 1
sf1.Cells(satır, 1).Value = sf.Cells(2, sütun).Value
sf1.Cells(satır, 2).Value = "0"
sf1.Cells(satır, 3).Value = "0"
sf1.Cells(satır, 4).Value = sütun
GoTo atla
End If
Next i
atla:
Next sütun
End Sub
not : sütun sayısını kırmızı işaretledim değiştirererk ayarlayın.
 

Ekli dosyalar

Katılım
4 Ocak 2006
Mesajlar
72
Excel Vers. ve Dili
2003-türkçe
Sayın fedeal çok teşekkür ederim tam isteğim budur. Fakat formülde ortada olursa (yani ilk on ve son on harici olursa) DL=0, DU=0 vermiyor Galiba onun kodunda bir yanlışlık. Çözemedim ilkinde aynı sayfada yaptığınızda çalışıyordu
 

fedeal

Banned
Katılım
29 Mayıs 2008
Mesajlar
1,985
Excel Vers. ve Dili
2003 tr
Sayın fedeal çok teşekkür ederim tam isteğim budur. Fakat formülde ortada olursa (yani ilk on ve son on harici olursa) DL=0, DU=0 vermiyor Galiba onun kodunda bir yanlışlık. Çözemedim ilkinde aynı sayfada yaptığınızda çalışıyordu
ufacık bir dikkatsizlik hata veriyor.alttaki kodları düzeltim deneyin umarım olmuştur.

Kod:
Sub fd()
Dim satır, sütun, i As Long
Dim sf, sf1 As Worksheet

satır = 1
Set sf = Sheets("sayfa1")
Set sf1 = Sheets("sayfa2")

For sütun = 1 To 3
sf.Select
Cells(1, sütun).Select
For i = 3 To sf.Cells(65536, sütun).End(xlUp).Row
If CDbl(sf.Cells(1, sütun).Value) <= CDbl(sf.Cells(i, sütun).Value) Then
If i < 11 Then
satır = satır + 1
sf1.Cells(satır, 1).Value = sf.Cells(2, sütun).Value
sf1.Cells(satır, 2).Value = "1"
sf1.Cells(satır, 3).Value = "0"
sf1.Cells(satır, 4).Value = sütun
GoTo atla
End If
[COLOR="Red"]If i > WorksheetFunction.CountA(Range(Split(ActiveCell.Address, "$")(1) & ":" & Split(ActiveCell.Address, "$")(1))) - 11 Then[/COLOR]
satır = satır + 1
sf1.Cells(satır, 1).Value = sf.Cells(2, sütun).Value
sf1.Cells(satır, 2).Value = "0"
sf1.Cells(satır, 3).Value = "1"
sf1.Cells(satır, 4).Value = sütun
GoTo atla
End If
satır = satır + 1
sf1.Cells(satır, 1).Value = sf.Cells(2, sütun).Value
sf1.Cells(satır, 2).Value = "0"
sf1.Cells(satır, 3).Value = "0"
sf1.Cells(satır, 4).Value = sütun
GoTo atla
End If
Next i
atla:
Next sütun
sf1.Select
End Sub
değişen satırı kırmızı yaptım.
 
Katılım
4 Ocak 2006
Mesajlar
72
Excel Vers. ve Dili
2003-türkçe
Çok teşekkür ederim çalışma oldu
 
Üst