en yakın değerleri bulmak

Katılım
28 Haziran 2007
Mesajlar
8
Excel Vers. ve Dili
2003 İngilizce
karşılık gelen dataları bulmak

Arkadaşlar ekli dosyada A sütununda time dataları B sütununda hız dataları var.Ancak hız datalarımın frekansı çok yüksek.Benim bu dataların içinden 1 er km/h aralıklarla (ÖRN:120, 119, 118 .......52, 51, 50) karşılık gelen time datalarını bulmam gerekiyor.Bir fikri olan varmı?
 
Son düzenleme:

Ali

Uzman
Katılım
21 Temmuz 2005
Mesajlar
7,895
Excel Vers. ve Dili
İş:Excel 2016-Türkçe
K12 hücrenize

=İNDİS($A$12:$A$2729;KAÇINCI(MİN(MUTLAK($B$12:$B$2729-J12));MUTLAK($B$12:$B$2729-J12);0))

yazıp formül çubuğunda iken direk enter tuşuna basmadan CTRL+SHIFT+ENTER tuşlarına birlikte basarak

{ =İNDİS($A$12:$A$2729;KAÇINCI(MİN(MUTLAK($B$12:$B$2729-J12));MUTLAK($B$12:$B$2729-J12);0))}

şeklinde dizi formülü oluşturup aşağı doğru çekip denermisiniz.
 
Katılım
28 Haziran 2007
Mesajlar
8
Excel Vers. ve Dili
2003 İngilizce
Yardımcı olmaya çalıştığın için teşekkürler.
Malesef olmadı.Sen tamsayılara en yakın olan datayı bulup onun karşısına denk gelen time datasını bulmuşsun.Oysa bana tamsayılara karşılık gelen gerçek time dataları gerekli.( Örneğin 130 km/h için time 3,92 olmamalı.3,92 ile 3,88 arasında birşey olmalı. Time 3,92 olduğu anda hızın 129,992 olduğunu zaten biliyoruz)
Tekrar deneyebilirmisin.
 
Katılım
28 Haziran 2007
Mesajlar
8
Excel Vers. ve Dili
2003 İngilizce
Aslında bana tam karşılığını bulmak istediğim değere en yakın iki değeri bulsan o bana yeterli. (Örneğin 130 km/h için 130.051 ve 129.992 değerlerini nasıl seçtirebilirim)
Eğer bu iki hız değerini buldutturabilirsem gerisini lineer regresyonla halledebilirim.
 

Ali

Uzman
Katılım
21 Temmuz 2005
Mesajlar
7,895
Excel Vers. ve Dili
İş:Excel 2016-Türkçe

muygun

Özel Üye
Katılım
6 Temmuz 2004
Mesajlar
9,113
Excel Vers. ve Dili
Excel-2003 Türkçe
Slm.
130 değeri için 3,899355 değeri doğru ise tabloyu inceleyin.
 
Katılım
28 Haziran 2007
Mesajlar
8
Excel Vers. ve Dili
2003 İngilizce
Teşekkürler ama yanlış oldu.130 değeri için doğru cevap 3,914576.
Halen yardıma ihtiyacım devam ediyor.
 

Ali

Uzman
Katılım
21 Temmuz 2005
Mesajlar
7,895
Excel Vers. ve Dili
İş:Excel 2016-Türkçe
130 için 3,914576 olarak hesaplamaktadır.

Örnek ektedir.
 
Katılım
28 Haziran 2007
Mesajlar
8
Excel Vers. ve Dili
2003 İngilizce
Süpersin Ali,
Bu sefer oldu.Eline sağlık.Bir arkadaşta visual basic kullanarak bir makro hazırlamıştı benim için.Şu an elimde iki adet çözüm oldu.
Eğer görmek istersen o makroyu payşabilirim.
 
Katılım
28 Haziran 2007
Mesajlar
8
Excel Vers. ve Dili
2003 İngilizce
Ekli dosyada makroyu gönderiyorum.Ancak bu makro sadece bizim istediğimiz dataları çekmiyor. İlk önce lineer regresyon yaparak dataları filtreliyor.Daha sonrada 1 er km/h steplerle istediğimiz time datalarını çekiyor.

Çalışması:
Zipteki Dosyaları herhangi bir yere çıkarın.
X_T.xls dosyasını açın.Esegue (çalıştır) butonuna tıklayın. Coast01.xls dosyasını gösterin.Okey dediğinizde makro çalışır.Size Coast01_Output.xls adında yeni bir excel dosyası oluşturur.Bu dosya filtrelenmiş ve içerisinden istediğimiz datalar çekilmiş halidir.
 

Ali

Uzman
Katılım
21 Temmuz 2005
Mesajlar
7,895
Excel Vers. ve Dili
İş:Excel 2016-Türkçe
Ekli dosyada makroyu gönderiyorum.Ancak bu makro sadece bizim istediğimiz dataları çekmiyor. İlk önce lineer regresyon yaparak dataları filtreliyor.Daha sonrada 1 er km/h steplerle istediğimiz time datalarını çekiyor.

Çalışması:
Zipteki Dosyaları herhangi bir yere çıkarın.
X_T.xls dosyasını açın.Esegue (çalıştır) butonuna tıklayın. Coast01.xls dosyasını gösterin.Okey dediğinizde makro çalışır.Size Coast01_Output.xls adında yeni bir excel dosyası oluşturur.Bu dosya filtrelenmiş ve içerisinden istediğimiz datalar çekilmiş halidir.

Uzun bir yöntem olmuş.Formüllerden yararlanarak kendim bir kullanıcı tanımlı fonksiyon yazdım.

Kod:
Option Explicit
Option Compare Text
    Function Gercekesitlik(X, Y) As Boolean
        Gercekesitlik = Abs(X - Y) <= 0.00000001
        End Function
Function LinearInterpolasyon(XDegeri, YDegeri, Hedefhucre)
    Dim kacıncıdeger
    On Error GoTo Hataysacık
    With Application.WorksheetFunction
    If .Match(Hedefhucre, XDegeri, -1) = .Count(XDegeri) Then
    kacıncıdeger = .Match(Hedefhucre, XDegeri, -1) - 1
    Else
    kacıncıdeger = .Match(Hedefhucre, XDegeri, -1)
    End If
    If kacıncıdeger = XDegeri.Cells.Count _
            And Gercekesitlik(Hedefhucre, .Index(XDegeri, kacıncıdeger)) Then
        LinearInterpolasyon = .Index(YDegeri, kacıncıdeger)
    Else
        LinearInterpolasyon = .Index(YDegeri, kacıncıdeger) _
            + (.Index(YDegeri, kacıncıdeger + 1) - .Index(YDegeri, kacıncıdeger)) _
                / (.Index(XDegeri, kacıncıdeger + 1) _
                    - .Index(XDegeri, kacıncıdeger)) _
                * (Hedefhucre - .Index(XDegeri, kacıncıdeger))
        End If
 
        End With
    Exit Function
Hataysacık:
    With Err
    LinearInterpolasyon = .Description & "(Sayı= " & .Sayı & ")"
        End With
    End Function
=LinearInterpolasyon($A$12:$A$2729;$B$12:$B$2729;J12) yazarak kullanabilirsin daha kolay olacaktır sanırım.

Örnek dosya ektedir.
 
Katılım
28 Haziran 2007
Mesajlar
8
Excel Vers. ve Dili
2003 İngilizce
Bu hazırladığın fonksiyon çok güzel olmuş.Ancak sadece senin hazırladığın excel dosyasında çalışıyor.Başka bir excel sayfası açtığımda bu fonksiyonu bulamıyorum.
Bunu defult olarak excel deki diğer fonksiyonların arasına koyma şansım var mı?
 

Ali

Uzman
Katılım
21 Temmuz 2005
Mesajlar
7,895
Excel Vers. ve Dili
İş:Excel 2016-Türkçe
Bu hazırladığın fonksiyon çok güzel olmuş.Ancak sadece senin hazırladığın excel dosyasında çalışıyor.Başka bir excel sayfası açtığımda bu fonksiyonu bulamıyorum.
Bunu defult olarak excel deki diğer fonksiyonların arasına koyma şansım var mı?

Bu dosyayı açıkken Dosya-Farklı Kaydet ile Dosya adına

LinearInterpolasyon adı verip Kayıt türünü Microsoft Office Excel Eklentisi olarak kaydedin. Kendisini Microsoft Office kurulu olduğu Addins klasörüne kaydedecektir.
Daha sonra LinearInterpolasyon Araçlar-Eklentiler kısmında LinearInterpolasyon yazısını bulup onaylayın. Artık tüm excel dosyalarınızda kullanabilirsiniz.
 
Katılım
28 Haziran 2007
Mesajlar
8
Excel Vers. ve Dili
2003 İngilizce
Yardımların için çok teşekkürler.Gerçekten çok yardımcı oldun.
Selamlar.
 
Üst