Soru iterasyon kodunu formüle çevirmek

fgecesefa

Normal Üye
Excel Versiyonu
Excel 2016
Excel Sürümü
64 Bit
Excel Dili
Türkçe
Function iterasyon(s As Range, n As Range, b As Range) As Double

Dim pws As Single, x As Single, h As Single, i As Single
Dim pws1 As Single, x1 As Single, h1 As Single

sicaklik = Format(s.Value, "0.00")
nem = Format(n.Value, "0.00")
basinc = Format(b.Value, "0.000")

pws = 1.4097 * 10000000 * Exp(-3928.5 / (sicaklik + 231.67))
x = 0.622 * (pws * (nem / 100)) / (basinc - (pws * (nem / 100)))
h = sicaklik * 1.006 + x * (2501 + (1.86 * sicaklik))

h = Format(h, "0.0")
newSic = 0 'Format(sic.Value, "0.0")

For i = sicaklik To 0 Step -0.1

ii = Format(i, "0.0")
pws1 = 1.4097 * 10000000 * Exp(-3928.5 / (ii + 231.67))
x1 = (0.622 * pws1) / (basinc - pws1)
h1 = ii * 1.006 + x1 * (2501 + (1.86 * ii))

h1 = Format(h1, "0.0")

If h1 <= h Then
newSic = ii
Exit For
End If

Next

iterasyon = newSic

End Function

Sıcaklık nem ve basınç değerlerimiz var. Doygun basıncı bulmak için (pws) sıcaklığı formulde kullanıyoruz. daha sonra bsınç , nem ve pws yi kullanarak havada ki su miktarını (x) buluyoruz. daha sonra sıcaklık ve (x) i kullanarak entalpi (h) değerini buluyoruz.
ikinci aşamada entalpiler eşit olacak şekilde h=h1 ve yeni nem (n1) %100 olmak koşulu ile pws1,x1 ve yeni sıcaklığı (s1) buluyor. özetle yeni nem n1 %100 iken h=h1 oluncaya kadar yeni sıcaklık (s1) tahmini yapacak bir formul lazım. makro kod olmayacak hücre içerisinde kullanılabilecek bir formül lazım. yardımcı olabilirseniz çok sevinirim.
 
Merhaba, forumumuza hoşgeldiniz Sayın @fgecesefa .

Sorularınızı, cevabımın altındaki İMZA bölümünde yer alan
açıklamalar doğrultusunda hazırlayacağınız örnek belgeler üzerinden sorarsanız, çözüme daha hızlı ulaşabilirsiniz.
Gördüğüm kadarıyla yapılan / yapılmak istenilen hesaplama teknik bir mevzu.
Açıklamalarınızı, sektörünüze uzak birilerinin okuyacağını dikkate alarak yapmanızda yarar var.

Örnek belgelerinizin, gerçek belgenizin kopyası (özel bilgileri silersiniz veya yerlerine uygun veriler yazarsınız)
biçiminde olmasına ve olması gereken sonuçları (durumları birbirinden farklı örnek veriler üzerinden)
kendi konumlarına elle yazarak örneklendirip, bu sonuclara nasıl ulaştığınıza dair açıklamalar eklerseniz iyi olur.

Forumumuzun, soru-cevap bölümünde belge yüklemek/indirmek ücretsizdir.
Örnek belgenizi forumumuza yükleyerek devam etmenizde yarar var. (Verdiğiniz KTF'nin kullanıldığı bir örnek belge olsun)

İyi çalışmalar dilerim.

.
 
Tekrar merhaba Sayın @fgecesefa .

Olay teknik bir hesaplama ile ilgili olduğundan ve bir örnek belge ve açıklama da olmadığından sonuçtan emin değilim ama;
A4 >> SICAKLIK, B4 >> NEM ve C4 >> BASINÇ değerinin olduğu varsayılarak;

-- D4 hücresine mevcut KTF'yi kullanarak =iterasyon(A4;B4;C4) formülünü uygulayın,
-- E4 hücresine ise aşağıdaki formülü yapıştırıp dizi formülüne dönüştürün,
bu iki formül sonuçlarını, verilen değerlerde değişiklikler yaparak karşılaştırırsınız.

Muhtemelen belli değer aralıkları için doğru sonuçlar alınacaktır.
Formül; NEM'i 100 kabul edilerek ve verilen BASINÇ değeri kullanılarak,
verilen sıcaklık değeri 0,1 'lik değerler halinde AZALTILARAK
(belli durumlarda AZALTMA yerine ARTIRMA gerekliyse, koşulları net ifade edilirse bu seçenek de formüle dahil edilebilir)
entalpi ( h ) değerlerini hesaplar ve verilen sıcaklık-nem-basınç değerine göre hesaplanan ilk entalpi değerine
küçük veya eşit olanların arasından, ilk entalpi değerine en yakın değere denk düşen SICAKLIK değerini bulur.

Verilen KTF kodundaki döngü işlemini sağlayan ise; formülün dizi formülü olarak çalıştırılmasıdır.

Formülü dizi formülüne dönüştürmek için;
-- Formülü hücreye yapıştırın,
-- Formülün yapıştırıldığı hücreyi tekrar seçin ve F2 tuşuna basarak hücre içerisine girin,
-- CTRL ve SHIFT tuşları basılı durumdayken ENTER tuşuna basarak işlemi tamamlayın.
İşlemi doğru yapmışsanız formül kendimiğinden {.....} gibi köşeli parantez arasına alınır.

VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(1 satır)

.
 
Üst