Çözüldü Tersten (aşağıdan yukarıya doğru) DÜŞEY ARA

Ömer Çakır

Altın Üye
Katılım
20 Ekim 2022
Mesajlar
44
Excel Vers. ve Dili
Office 365
Altın Üyelik Bitiş Tarihi
22-10-2027
İyi günler arkadaşlar.

Resim üzerinden anlatayım, kolay anlaşılır.

Ekli resimde sarı sütunları hesaplatmak istiyorum.
Sorun yaşadığım yer şurası,
1. aşama Hücrenin bulunduğu satır T11 için örneğin, A11 ve A12 aynı ise D sütununda en alttan yukarı doğru ilk "START" yazan ilk satırı bulacak ve satırdaki G ve O sütunlarının keşiştiği hücrelerin değerini çekecek.
2. aşamada T11 için G ve O sütunundaki değerleri alacak.

=EĞER(A11<>A10;"""";((0,0416666666642413*(EĞER(A11<>A10;"";O11-DÜŞEYARA("START";$D$2:O11;12;YANLIŞ))))/(G11-(DÜŞEYARA("START";$D$2:G10;4;YANLIŞ)))))
aşağıdaki formülle sonucu verecek.

Burda yapılmaya çalışılan şey TANK ın son değerinin girildiği zaman (G11) ile TANK için son START yapılan zamanın arasındaki farkı bulmak,
sonra aynı şekilde TANK ın son değer girildiğinde olan hacmi le TANK için son START yapıldığında olan hacmi (hacimler O sütununda) bulacak.
Oran orantı yolu ile bu kadar zaman farkta bu kadar hacim farklılığı olmuşsa 60 dakikadaki hacim farklılığı ne olur. Bunu verecek.
Yardımınız rica lütfen, günlerdir işten kalan mesaimde bununla uğraşıyorum sonra iş saatlerinde zombi gibi dolaşıyorum.
T sütununa bu değerleri hesaplatacak şekilde formülde tersten ilk START yapacak satırı bulamıyorum. Formülle bu işi halletmek ilk basamak, daha sonra mümkünse o formülü makroya girmenizi rica edeceğim.


Not: bu değerleri aynı dosyanın başka bir sayfasından çektiriyorum. O sayfada bir satırda değer değiştiğinde o satırı buraya Arşiv sayfasına en alt kaydedir. Eğer aşağıdan yukarıya düşey arama mümkün olmazsa o saydan çekilen bu satırlarların alta eklenmesi yerine üste eklenmesi sağlanabilir mi (sondan bir önceki satırı aşağıya kaydıracak ve onun yerine 2 nolu satıra yeni satırı kaydedecek - 2 nolu satırı da aşağıya 3 e kaydıracak.) Acaba alternatif böyle bir çözüm olabilir mi?
Teşekkürler.2022-11-06 (1).png
 

Ekli dosyalar

Son düzenleme:

Ömer Çakır

Altın Üye
Katılım
20 Ekim 2022
Mesajlar
44
Excel Vers. ve Dili
Office 365
Altın Üyelik Bitiş Tarihi
22-10-2027
Arkadaşlar tersten düşey arayı aşağıdaki https://www.excel.web.tr/threads/asagidan-yukariya-dueseyara-olur-mu.64495/ konudan bakarak çözdüm. Geriye tek şey bu formulü makroya yazmak kaldı. Formül şu.

rica etsem bana bunu makroya yazabilir misiniz?

Kod:
=EĞER(A11<>A10;"""";((0,0416666666642413*(EĞER(A11<>A10;"";O11-ARA(2;1/($D$2:D11="START");$O$2:O11))))/(G11-(ARA(2;1/($D$2:D11="START");$G$2:G10)))))
 

Ömer Çakır

Altın Üye
Katılım
20 Ekim 2022
Mesajlar
44
Excel Vers. ve Dili
Office 365
Altın Üyelik Bitiş Tarihi
22-10-2027
Kod:
            With Sh.Range("T2:T" & Sh.Cells(1048576, "A").End(3).Row)
                .Formula = "=IF(A1<>A2,"""",((0.0416666666642413*("=IF(A1<>A2,"""",O2-ARA(2;1/($D$2:D2="START");$O$2:O2))))/(G2-(ARA(2;1/($D$2:D2="START");$G1:G$2)))))"
                .Value = .Value
                .NumberFormat = "#,##0"
            End With
syntax error veriyor. Arkadaşlar bir üstteki iletide gönderdiğim formülü nasıl girerim makroya?
 

Ömer Çakır

Altın Üye
Katılım
20 Ekim 2022
Mesajlar
44
Excel Vers. ve Dili
Office 365
Altın Üyelik Bitiş Tarihi
22-10-2027
Kod:
                .Formula = "=IF(A1<>A2,"""",((0.0416666666642413*(IF(A1<>A2,"""",O2-LOOKUP(2;1/($D$2:D2=""START"");$O$2:O2))))/(G2-(LOOKUP(2;1/($D$2:D2=""START"");$G1:G$2)))))"
böyle yaptım, komut çalışınca hata veriyor bu satırda.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,190
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Deneyiniz.

C++:
.Formula = "=IF(A2<>A1,"""",((0.0416666666642413*(IF(A2<>A1,"""",O2-LOOKUP(2,1/(D$2:D2=""START""),O$2:O2))))/(G2-(LOOKUP(2,1/(D$2:D2=""START""),G$1:G2)))))"
 

Ömer Çakır

Altın Üye
Katılım
20 Ekim 2022
Mesajlar
44
Excel Vers. ve Dili
Office 365
Altın Üyelik Bitiş Tarihi
22-10-2027
Deneyiniz.

C++:
.Formula = "=IF(A2<>A1,"""",((0.0416666666642413*(IF(A2<>A1,"""",O2-LOOKUP(2,1/(D$2:D2=""START""),O$2:O2))))/(G2-(LOOKUP(2,1/(D$2:D2=""START""),G$1:G2)))))"
Korhan Bey teşekkür ederim imdadıma yetiştiniz.

Siz yazmadan önce şöyle bir yol denedim. Boş bir excel dosyası açtım. Makro kaydet dedim ve dosyamda çalışan T2 deki formulü oraya kopyaladım. Sonra makroyu durdur yaptım, VBA kısmından makronun koduna baktım. O kodda işe yaradı ama sizin kodunuzu anlayabiliyorum hücreleri, oradaki kodun hücreleri değişik çıkmıştı. Hücrelerin tanımı orda farklı, orada çıkan şekli aşağıda veriyorum. Acaba bu şekilde hazırlatabileceğim kodlarda hücre tanımlamalarını bildiğimiz çok kullanılan şekline çevirmemiz mümkün mü?

Tekrar teşekkür ederim.



Kod:
Sub Makro2()
'
' Makro2 Makro
'

'
    ActiveCell.Formula2R1C1 = _
        "=IF(R[-1]C[-19]<>RC[-19],"""""""",((0.0416666666642413*(IF(R[-1]C[-19]<>RC[-19],"""",RC[-5]-LOOKUP(2,1/(R2C4:RC[-16]=""START""),R2C15:RC[-5]))))/(RC[-13]-(LOOKUP(2,1/(R2C4:RC[-16]=""START""),R[-1]C7:R2C[-13])))))"
    Range("T3").Select
End Sub
 

Ömer Çakır

Altın Üye
Katılım
20 Ekim 2022
Mesajlar
44
Excel Vers. ve Dili
Office 365
Altın Üyelik Bitiş Tarihi
22-10-2027
Teşekkür ederim, bunları inceleyeceğim. Elinize, emeğinize sağlık.
 
Üst