• DİKKAT

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

KTF Hazırlamak

Katılım
17 Haziran 2008
Mesajlar
1,874
Excel Vers. ve Dili
Microsoft Ofis Profesyonel 2019 x64 TR
Merhaba arkadaşlar;

şöyle bir formülüm var;

80 tane nokta için hazırlanmış.. ( Nokta= X , Y değerleri), Yapmak istediğim 80 noktadan sonra da hesaplama yapması ve KTF olması..

Kod:
=MUTLAK(0,5*(C3*(D22-D4)+C4*(D3-D5)+C5*(D4-D6)+C6*(D5-D7)+C7*(D6-D8)+C8*(D7-D9)+C9*(D8-D10)+C10*(D9-D11)+C11*(D10-D12)+C12*(D11-D13)+C13*(D12-D14)+C14*(D13-D15)+C15*(D14-D16)+C16*(D15-D17)+C17*(D16-D18)+C18*(D17-D19)+C19*(D18-D20)+C20*(D19-D21)+C21*(D20-D22)+C22*(D21-D3)+(C23*(D42-D24)+C24*(D23-D25)+C25*(D24-D26)+C26*(D25-D27)+C27*(D26-D28)+C28*(D27-D29)+C29*(D28-D30)+C30*(D29-D31)+C31*(D30-D32)+C32*(D31-D33)+C33*(D32-D34)+C34*(D33-D35)+C35*(D34-D36)+C36*(D35-D37)+C37*(D36-D38)+C38*(D37-D39)+C39*(D38-D40)+C40*(D39-D41)+C41*(D40-D42)+C42*(D41-D23)+(C43*(D62-D44)+C44*(D43-D45)+C45*(D44-D46)+C46*(D45-D47)+C47*(D46-D48)+C48*(D47-D49)+C49*(D48-D50)+C50*(D49-D51)+C51*(D50-D52)+C52*(D51-D53)+C53*(D52-D54)+C54*(D53-D55)+C55*(D54-D56)+C56*(D55-D57)+C57*(D56-D58)+C58*(D57-D59)+C59*(D58-D60)+C60*(D59-D61)+C61*(D60-D62)+C62*(D61-D43)+(C63*(D82-D64)+C64*(D63-D65)+C65*(D64-D66)+C66*(D65-D67)+C67*(D66-D68)+C68*(D67-D69)+C69*(D68-D70)+C70*(D69-D71)+C71*(D70-D72)+C72*(D71-D73)+C73*(D72-D74)+C74*(D73-D75)+C75*(D74-D76)+C76*(D75-D77)+C77*(D76-D78)+C78*(D77-D79)+C79*(D78-D80)+C80*(D79-D81)+C81*(D80-D82)+C82*(D81-D63))))))

yardımcı arkadaşa şimdiden teşekkürler..
 
Merhaba,

80 nokta arasında bir dizilim mantığı yoksa KTF hazırlamak zor olur. Bir dosya ekleyerek ulaşmak istediğiniz sonucu belirtirseniz belki farklı çözümler üretilebilir.
 
Bence bunun mantığını anlatmanız daha doğru olur. Neden ilk etapta 20. noktadan 2. noktayı çıkarıp 1. kotla çarpıyoruz da sonra 3. noktadan 1. noktayı çıkarıp 2. kotla çarpıyoruz. Neden en son 79. noktadan 61. noktayı çıkarıp 80. kotla çarpıyoruz? Yani bu işin standardı nedir?
 
Ek Bilgi
*******
Örnek dosyadaki bu ilk satır; 30542,09 33945,56 son nokta girildikten sonra tekrar yazılır. Yani 39. numarada kırmızı ile belirttiğim değerler olmalı.. ve sonuçta : 105032,05 m² olmalı.. bu durumda 38 noktalı bir kısmın alanını hesaplamış oluyoruz..


Formül
2013-06-26_102805.jpg
 
Son düzenleme:
Öyleyse C5*(D4-D6) bu kısım ve buna benzer olanları anladım da C4*(D23-D5) - C24*(D43-D25) - C43*(D42-D24) - C44*(D63-D45) - C63*(D62-D44) - C64*(D83-D65) ve C83*(D82-D64) neden?
 
Saat yönünde döndürüldüğüne göre baştaki ve sondaki için farklı noktalar olabilir ancak yukarda da belirttiğim gibi örneğin C43*(D42-D24)kullanmışsınız, c43 yani 40.nokta için d42 yani bir önceki 39. noktanın x değerinden d24 yani 21. noktanın x değerini çıkarmışsınız. Yukarda verdiğim noktalara dikkat ederseniz hepsinde böyle bir çelişki mevcut.

dosyanızda alanı verdiğiniz formülle 406402,30m² bulmuşsunuz ama benim hesapladığımda 214,06 m² çıkıyor. bunun nedeni de sanıyorum formüldeki belirttiğim çelişkiler.

Eğer onlar çelişki değil de olması gerekense neden cross metoduna göre saat yönünde bu şekilde uygulama yapılmıyor da arada farklı noktalarla işlem yapılıyor, bunu açıklamalı ve kurala bağlamalısınız.
 
Son düzenleme:
Verdiğiniz örnek dosyadan ve formülden benim anladığım:

1. nokta için 2. noktadan 38. nokta x değeri çıkarılıp 1. nokta kotuyla çarpılacak;
2. nokta için 3. noktadan 1. nokta x değeri cıkarılıp 2. nokta kotuyla çarpılacak,
37. noktaya kadar bu şekilde devam edilecek
38. nokta için 1. noktadan 37. nokta x değeri çıkarılıp 38. nokta kotuyla çarpılacak.
Bunların hepsi toplanacak.
Mutlak değeri ikiye bölünüp net alan bulunacak.

Doğru mudur?
 
Doğru sanırım.. yalnız şuan yanımda yeterli notlarım yok.. o yüzden tam net bir şey diyemiyorum.. ama şundan kesin eminim; formül gerçek alanı doğru bir şekilde veriyor.. tabi burda şunuda unutmamak gerekiyor önemli; ilk koordinatların tekrar yazılması.. en sona..


Not:
******************
ilk koordinatların sona tekrar yazılması olayı KTF nin içinde bulunmamalı... onu manuel olarak en sona ben gireceğim..
 
Son düzenleme:
Aşağıdaki kodları örnek sayfanızda bir modüle ekleyip çalıştırır mısınız? E sütununa her nokta için hesaplanan alanı ve E1 hücresine de hesaplanan net alanı veriyor. Bunu elle yapacağınız hesaplamayla karşılaştırır mısınız?

Kod:
Sub alan()
a = Cells(Rows.Count, 3).End(xlUp).Row
For i = 4 To a
If i = 4 Then
Cells(i, 5) = Cells(i, 3) * (Cells(i + 1, 4) - Cells(a, 4))
Else
If i = a Then
Cells(i, 5) = Cells(i, 3) * (Cells(4, 4) - Cells(a - 1, 4))
Else
Cells(i, 5) = Cells(i, 3) * (Cells(i + 1, 4) - Cells(i - 1, 4))
End If
End If
Next
toplam = WorksheetFunction.Sum(Range("e4:e" & a))
netalan = Abs(toplam / 2)
[e1] = netalan
End Sub
Ben hem formülleri her hücre için ayrı ayrı yazarak hem de bu kodlarla yukarda belirttiğim 214 m² alanı buldum.

Bu arada bir şey fark ettim, formül ister (sonraki - önceki) * kot ister (önceki - sonraki) * kot şeklinde düzenlensin, hesaplanan net alan doğal olarak değişmiyor. Bu da en son mutlak değer alınmasından kaynaklanıyor.
 
Bu dosyada verdiğim kodları çalıştırınca Sizin D85 hücresinde bulmuş olduğunuz 33346m² sonucunu buluyor? Hata nerede?
 
ilk dosyanızdaki hatanın nedenini de söylemiştim: formülünüzde cross metoduna uymayan çelişkiler var. Örneğin son dosyada yine 1. nokta için 20. noktadan 2. noktayı çıkarıp 1. nokta kotuyla çarpıyorsunuz. Halbuki benim anladığım en son nokta 8. nokta olduğundan formül 8. nokta - 2. nokta * 1. nokta kotu olmalı değil mi?
 
Bu dosyada verdiğim kodları çalıştırınca Sizin D85 hücresinde bulmuş olduğunuz 33346m² sonucunu buluyor? Hata nerede?

hocam : mesajı dikkatli okursanız,, bunda hata yok. burda aynı sonucu veriyor.. ilk gönderdiğim dosyada hatalı sonuç buluyor.. 214 m2 sonucu yanlış.. olması gerenkeni de önceki mesajlarımda yazdım..
 
ilk dosyanızdaki hatanın nedenini de söylemiştim: formülünüzde cross metoduna uymayan çelişkiler var. Örneğin son dosyada yine 1. nokta için 20. noktadan 2. noktayı çıkarıp 1. nokta kotuyla çarpıyorsunuz. Halbuki benim anladığım en son nokta 8. nokta olduğundan formül 8. nokta - 2. nokta * 1. nokta kotu olmalı değil mi?


Hatanın nedeni sizin söylediğiniz gibi değil çelişki yok.. öyle olsa sonuç yanlış çıkar.. sizin kodlamanızla ilgili bir durum var.. burda örnek alınması gereken formül benim ilk göndermiş olduğum formüldür esasen.. buna göre kodlama yapıldığında sonuç %100 doğru çıkacaktır. Nitekim şu an 80 noktada %100 doğru sonuçlar elde ediyorum..
 
Hocam bu böyle bir kalsın... Yarın notlarımı getireceğim,, baştan tekrar formülleyeceğim..
 
Sorun şu ki:

ilk başta siz bir şey demiyordunuz ama formülünüz XYZ diyordu.

Sonra siz A dediniz ama formül XYZ demeye devam etti

Sonra resim eklediniz ve cross metodu B dedi

Sonra siz meaajlarınıza ilaveler yaptınız ve C demeye başladınız ama formülünüz hala XYZ, cross ise B demeye devam ediyordu.

Hala da siz farklı diyorsunuz, formül farklı diyor, cross ise bambaşka diyor. ben de başından beri bu çelişkinin sebebini bulmaya çalışıyorum.
 
Hocam iyice kafam karıştı.. Akşama notlarıma bakıp net sonucu söyleyeceğim size.. bu formülü ben oluşturdum.. Cross a göre.. uzun zamandır pek bakmıyordum.. bu ara lazım oldu,,, çok da kullanmadım açıkcası.. Nokta sayısı şu an 80 den fazla.. bir yerde bi hata var.. emin değilim.. benim formülümde hatalı olabilir.. ki siz zaten çelişkili olduğunu söylüyorsunuz. bende net sonuç için notlarıma bakmalıyım. Teşekkürler.
 
İlk gönderdiğiniz dosyada sizin uygulamanız ve benim uygulamamı gösterir örnek ve çelişkiler ekteki dosyada mevcuttur. bir noktada anlaşacağımıza inanıyorum:)
 

Ekli dosyalar

Geri
Üst