• Foruma hoş geldin 👋 Ziyaretçi

    Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

Bu sorun verilen destek sayesinde çözüme ulaştırılmıştır.
Durum
Konu Çözümlendiği İçin Kapatılmıştır.

activation

Yeni Üye
Kullanıcı Bilgileri
Katılım
6 Tem 2023
Mesajlar
21
Aldığı beğeni
6
Excel Versiyonu
Office 2019 TR
Konuyu Başlatan
Merhaba,

Bir firma için yemek maliyeti hesaplama tablosu yapmaya çalışıyorum. Ancak burada bir konularda çıkmazda kaldım.

Hammadde fiyatları tablosunda, Yemeklerin isimlerini INDIS kodlaması yaparak, ayrı bir kolonda tekil isim hale çevirdim. Ancak sanırım kodun bir kısmında bir hata yaptım.

Yemek isimlerini yazmaya başladığı ilk satırdan sonra, 2. satırda 0 yazıyor ve buradaki sıfır yazan satırı bir türlü düzeltemiyorum.

Bu konuda bana yardımcı olabilir misiniz.
 

Ekli dosyalar

  • maliyet_hesaplama.xlsx
    17.8 KB · Gösterim: 86
Formül sonuç Y sütunundaysa alattakini veridoğrulamaya yapıştırın.

C#:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.
Çok teşekkür ederim.

Bu kodu uyguladığım zaman, boşluklar görünmez hale geldi.

Destek veren tüm arkadaşlar çok teşekkür ederim.
 
Alttaki gibi sınırlarsanız daha hızlı olur galiba.

=KAYDIR($Y$2;;;ARA(2;1/($Y$2:$Y$100<>"");SATIR($A$1:$A$100)))
Refaz Hocamın verdiği formül doğru.

Kısaltmak açısından belki alternatif olabilir
Kod:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.
yerine direkt olarak
Kod:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.
formülü kullanılabilir.

Bu durumda Veri Doğrulama için formül
CSS:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.
Bir de,
Eğer ki 12 nolu mesajdaki formül kullanılacaksa, yani A kolonundaki veriler zaten benzersizdir deniliyorsa
BAĞ_DEĞ_DOLU_SAY işlevi direkt olarak A kolonuna uygulanabilir.
Kod:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.
 
KAÇINCI(2;1/($Y$2:$Y$100<>""))
Bunuda arşivime aldım hocam :)
Formülden fazla anlamıyorum ama zamanında ara ile olan formülleri arşivlemiştim ve A:A gibi olunca yavaş çalışıyordu hızlısını aramıştım bulamamıştım :(
Kaçıncı ile olan çok hızlı geldi bana elinize sağlık.

Kaçıncı ilede A:A olarak kullanınca hızlı çalışıyor.
 
Refaz Hocam
Çok teşekkür ediyorum...

Satır olarak, az sayıda veri varsa evet, A:A şeklinde bir kullanım hızlı sonuç verebilir. Ama, bu formül de tıpkı TOPLA.ÇARPIM, ARA işlevleri gibi dizi mantığında çalışır. Yani çok satırlı verilerde yavaşlama olacaktır. (Çok satır dediğimde 5000 ve daha fazlasını kastediyorum.).

O nedenle, alanı dinamik alan olarak tanımlamak ve formüllerde onu kullanmak en doğrusudur.

Örnek olarak,
Soruda, Y kolonunda Y2 hücresinden itibaren, formül, Y2000 hücresine kadar kopyalama yapıldı ve BOŞ olanlar için "" konulduğunu varsayalım. Dolu olanlar ise 125 satır olsun. Veriler yemek adları olduğu için de metin...
=KAÇINCI("zzzz";Y:Y)
yazdığımızda bu bize "" (BOŞ) bile olsa, Y2000 e kadar veri varsa, 2000 değerini döndürür. Bu formül komple Y sütununda performanslı bir şekilde çalışabilir. Sayılar için ise bu formül KAÇINCI(9^99;Y:Y) şeklindedir. Hem sayı ve hem de metin varsa bu iki formülün MAK değeri alınır.
Dinamik alanımızda
Y2:İNDİS(Y:Y;KAÇINCI("zzzz";Y:Y))
ile tanımlanabilir. Bu alan bize Y2 : Y2000 alanını verecektir.
Şimdi
KAÇINCI(2;1/(Y2:İNDİS(Y:Y;KAÇINCI("zzzz";Y:Y))<>""))
yazarsak hem hızlı sonuç (sonuç : 125) alabiliriz ve hem de formülü daha dar bir aralıkta kullanıp performans elde edebiliriz.

Saygılarımla...
 
Durum
Konu Çözümlendiği İçin Kapatılmıştır.

Konuyu okuyanlar

Geri
Üst