benim ev ısıtma ünitesinin maliyeti modellemek çalışıyorum. Saatlik 3.15 yıllık verilere sahibim. Saat başı maliyet, günlük maliyet, aylık maliyet ve yıllık maliyet hesapladım. Daha fazla veri eklediğimde işlemi kolaylaştırmak için CostPerDay
ve diğeri CostPerMonth
olarak adlandırılan iki VBA işlevi yazmak istiyorum. Verilerimin bir resmini ekledim. Veri"Ayın başına maliyet"
Ben Günlük Maliyet yazdığı fonksiyonu
Resim geçerli:
=SUM(OFFSET($M$18,(ROW()-18)*24,0,24,1))
ben Aylık Maliyet yazdığı fonksiyonudur:
Jan-13 =SUM(OFFSET($P$18,(ROW()-18)*31,0,31,1))
Feb-13 =SUM(OFFSET($P$49,(ROW()-19)*28,0,28,1))
Mar-13 =SUM(OFFSET($P$77,(ROW()-20)*31,0,31,1))
Etc...
Tüm veri aralığına ihtiyacınız varsa:
Cost Per Hour - M18:M27636
Cost Per Day - P18:P1168
Cost Per Month - S18:S55
Average Cost Per Month - V18:V29
Ben büyük ölçüde herhangi bir yardım takdir ediyorum !!!
Denediğim şey budur. Gördüğünüz gibi ben VBA için yeniyim. İlk denemede, verilerin elektronik tabloda nerede bulunduğunu ve hesaplamada hangi hücreyi istediğimi tanımlamak için Dim'i kullanmaya çalışıyordum. Sıkışmış durumdayım çünkü =SUM(OFFSET($M$18,(ROW()-18)*24,0,24,1))
işlevini VBA'ya ekleyemedim. Daha sonra, ile değiştirerek sabit kodlanmış $M$18
'dan kurtulmaya çalışıyordum. Ama hiçbiri işe yaramadı.
Ben diyalog kutuları ile oynuyordum ikincisi, ama ben bunları kullanmak istiyorum sanmıyorum. Üçüncü girişimde
ben Aylık Maliyet hesaplamaya çalışıyordu. Anlamadım çünkü onu kaydetmedim. Ayı, aydaki gün sayısıyla eşleştirmek içinSUMIFS
kullanıyordum. Bu benim en yakın denemem olabilirdi ama hala işe yaramadı.
Function CostPerDay(BeginningCostPerDay, OutputCell)
Dim BeginningCostPerDay, OutputCell
BeginningCostPerDay = WorksheetFunction.DSum()
OutputCell = ActiveCell.Offset(3, -3).Activate
End Function
Function CostPerDay1()
Dim myValue1 As Variant, myValue2 As Variant
myValue1 = InputBox("Where do you want the data put?")
myValue2 = InputBox("What is the beginning Cost Per Day")
Range("myValue1").Value = myValue1
Range("myValue2").Value = myValue2
End Function
Neden [ÇOKETOPLA fonksiyonu] (https://support.office.com/en-us/article/SUMIFS-function-C9E748F5-7EA7-455D-9406-611CEBCE642B)? [AVERAGEIFS işlevi] (https://support.office.com/en-us/article/AVERAGEIFS-function-48910C45-1FC0-4389-A028-F7C5C3001690)? – Jeeped
Gün başına Maliyet için SUMIFS kullanarak her 24 hücreyi nasıl toplamlarım? –
'= SUM (INDEX (M: M, (SAĞ (1: 1) -1) * 24 + 18): INDEX (M: M, (SAĞ (1: 1) -1) * 24 + 41)) uçucu olmayan [INDEX fonksiyon] kullanır (https://support.office.com/en-us/article/index-function-0ee99cef-a811-4762-8cfb-a222dd31368a) yerine uçucu [OFFSET fonksiyon] arasında (HTTPS : //support.office.com/en-us/article/OFFSET-function-b3958b36-c30b-4fc3-979e-9b9bbfdcf592). – Jeeped