• DİKKAT

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

Dizi Formülü veya başka bir formülle verileri getirme

Katılım
3 Kasım 2010
Mesajlar
230
Excel Vers. ve Dili
Excel 2016 - Türkçe
Merhabalar,

Ek'te de göndermiş olduğum tabloda "02-03 Grupsuz Envanter" adlı sayfamda ciro primlerini hesaplatıyorum. Ama ciro primi olmayan ürünlerde var haliyle ve ayrı bir sayfada "Ciro Tutarları" sayfasına yani Hangi ürünün iskonto ve ciro tutarı varsa getirmek istiyorum.

Yardımcı olursanız sevinirim.

http://s4.dosya.tc/server4/x8keab/CIRO_PRIMI_HESAPLAMA.xlsx.html
 
Formülle olur ama muhtemelen dosyayı hantallaştırır, beni de aşar. Makrolu çözüm isterseniz aşağıdaki kodları Ciro tutarları sayfasının kod bölümüne yapıştırınız. Ciro tutarları sayfasını her açtığınızda sayfayı yeniler ve istediğiniz sonuçları listeler:
Kod:
Private Sub Worksheet_Activate()
Set s1 = Sheets("02-03 GRUPSUZ ENVANTER")
eski = WorksheetFunction.Max(2, Cells(Rows.Count, "A").End(3).Row)
Range("A2:D" & eski).ClearContents
son = WorksheetFunction.Max(3, s1.Cells(Rows.Count, "A").End(3).Row)
For i = 3 To son
    If s1.Cells(i, "Q") > 0 Or Cells(i, "R") > 0 Then
        yeni = Cells(Rows.Count, "A").End(3).Row + 1
        Cells(yeni, "A") = s1.Cells(i, "I")
        Cells(yeni, "B") = s1.Cells(i, "J")
        Cells(yeni, "C") = s1.Cells(i, "Q")
        Cells(yeni, "D") = s1.Cells(i, "R")
    End If
Next
        
End Sub
 
Merhaba.

Formül kullanarak çözüm alternatif olsun.
-- Ciro tutarları sayfasındaki sütun başlıklarının, "02-03 Grupsuz Envanter" adlı sayfadki sütun başlıklarıyla aynı olmasını sağlayın.
-- Aşağıdaki formülü, "Ciro Tutarları" adlı sayfa A2 hücresine dizi formülü olarak uygulayın ve aşağı (boş sonuç elde edinceye kadar) ve sağa doğru kopyalayın.
.
Kod:
=[COLOR="red"]EĞER[/COLOR]([COLOR="red"]EĞERSAY[/COLOR]('02-03 GRUPSUZ ENVANTER'!$Q$3:$Q$2571;">0")<[COLOR="red"]SATIR[/COLOR](A1);"";[COLOR="red"]KAYDIR[/COLOR]('02-03 GRUPSUZ ENVANTER'!$A$1;[COLOR="red"]KÜÇÜK[/COLOR]([COLOR="red"]EĞER[/COLOR]('02-03 GRUPSUZ ENVANTER'!$Q$3:$Q$2571>0;[COLOR="red"]SATIR[/COLOR]('02-03 GRUPSUZ ENVANTER'!$Q$3:$R$2571));[COLOR="red"]SATIR[/COLOR](A1))-1;[COLOR="Red"]KAÇINCI[/COLOR](A$1;'02-03 GRUPSUZ ENVANTER'!$A$2:$R$2;0)-1))
[COLOR="blue"]Dizi formülü olduğundan hücreye [B][COLOR="red"]CTRL+SHIFT+ENTER[/COLOR][/B] ile girilmelidir.
İşlem doğru yapılmışsa formül [B]kendiliğinden [COLOR="Red"]{....}[/COLOR][/B] şeklinde köşeli parantez içine alınır.[/COLOR]
 
Ömer Bey Merhaba,

Göndermiş olduğunuz formülü kullandım ama #YOK hatası verdi. Şu anki güncel haliyle dosyayı tekrar gönderiyorum.

Bir de sizden başka bir şey istesem yapar mısınız acaba?

"Grupsuz Envanter" sayfasında Q ve R sütunlarında "Ciro Prim Oranları" sayfasında oranlara göre formülleyip iskonto ve ciro primi hesaplattırdım.

Ancak ben bir de bu formülün başına depo kodumuz 100 ise arayıp hesaplamasını istiyorum ben EĞER formülünü başa koyarak =EĞER(A3=100 diyerek denedim ama beceremedim pek.

CİRO PRİMİ HESAPLAMA.xlsx - 177 KB






Merhaba.

Formül kullanarak çözüm alternatif olsun.
-- Ciro tutarları sayfasındaki sütun başlıklarının, "02-03 Grupsuz Envanter" adlı sayfadki sütun başlıklarıyla aynı olmasını sağlayın.
-- Aşağıdaki formülü, "Ciro Tutarları" adlı sayfa A2 hücresine dizi formülü olarak uygulayın ve aşağı (boş sonuç elde edinceye kadar) ve sağa doğru kopyalayın.
.
Kod:
=[COLOR="red"]EĞER[/COLOR]([COLOR="red"]EĞERSAY[/COLOR]('02-03 GRUPSUZ ENVANTER'!$Q$3:$Q$2571;">0")<[COLOR="red"]SATIR[/COLOR](A1);"";[COLOR="red"]KAYDIR[/COLOR]('02-03 GRUPSUZ ENVANTER'!$A$1;[COLOR="red"]KÜÇÜK[/COLOR]([COLOR="red"]EĞER[/COLOR]('02-03 GRUPSUZ ENVANTER'!$Q$3:$Q$2571>0;[COLOR="red"]SATIR[/COLOR]('02-03 GRUPSUZ ENVANTER'!$Q$3:$R$2571));[COLOR="red"]SATIR[/COLOR](A1))-1;[COLOR="Red"]KAÇINCI[/COLOR](A$1;'02-03 GRUPSUZ ENVANTER'!$A$2:$R$2;0)-1))
[COLOR="blue"]Dizi formülü olduğundan hücreye [B][COLOR="red"]CTRL+SHIFT+ENTER[/COLOR][/B] ile girilmelidir.
İşlem doğru yapılmışsa formül [B]kendiliğinden [COLOR="Red"]{....}[/COLOR][/B] şeklinde köşeli parantez içine alınır.[/COLOR]
 
Yusuf Bey Teşekkür ederim.

Ellerinize sağlık sizin alternatifide deneyeceğim.


Formülle olur ama muhtemelen dosyayı hantallaştırır, beni de aşar. Makrolu çözüm isterseniz aşağıdaki kodları Ciro tutarları sayfasının kod bölümüne yapıştırınız. Ciro tutarları sayfasını her açtığınızda sayfayı yeniler ve istediğiniz sonuçları listeler:
Kod:
Private Sub Worksheet_Activate()
Set s1 = Sheets("02-03 GRUPSUZ ENVANTER")
eski = WorksheetFunction.Max(2, Cells(Rows.Count, "A").End(3).Row)
Range("A2:D" & eski).ClearContents
son = WorksheetFunction.Max(3, s1.Cells(Rows.Count, "A").End(3).Row)
For i = 3 To son
    If s1.Cells(i, "Q") > 0 Or Cells(i, "R") > 0 Then
        yeni = Cells(Rows.Count, "A").End(3).Row + 1
        Cells(yeni, "A") = s1.Cells(i, "I")
        Cells(yeni, "B") = s1.Cells(i, "J")
        Cells(yeni, "C") = s1.Cells(i, "Q")
        Cells(yeni, "D") = s1.Cells(i, "R")
    End If
Next
        
End Sub
 
Ömer Bey Merhaba,

Göndermiş olduğunuz formülü kullandım ama #YOK hatası verdi. Şu anki güncel haliyle dosyayı tekrar gönderiyorum.

Bir de sizden başka bir şey istesem yapar mısınız acaba?

"Grupsuz Envanter" sayfasında Q ve R sütunlarında "Ciro Prim Oranları" sayfasında oranlara göre formülleyip iskonto ve ciro primi hesaplattırdım.

Ancak ben bir de bu formülün başına depo kodumuz 100 ise arayıp hesaplamasını istiyorum ben EĞER formülünü başa koyarak =EĞER(A3=100 diyerek denedim ama beceremedim pek.

CİRO PRİMİ HESAPLAMA.xlsx - 177 KB

Ömer Bey'in formülü eğer Ömer Bey'in mesajında belirttiği şekilde birebir uygularsanız düzgün bir şekilde çalışmaktadır. Muhtemelen mesajda belirtilenleri tam yapmıyorsunuz.

Depo kodu sütununda veriler sayı değil de metin formatında girildiği için EĞER formülünüz çalışmıyordur. Ya depo kodlarını sayıya dönüştürün ya da =EĞER(A3*1=100 şeklinde kullanın.
 
Merhaba, cep telefonundan yazıyorum.
Yusuf Bey gerekli açıklamayı sağ olsun yapmış.
Formülden önceki cevap metnini bir kez daha okuyup;
sütun başlıkları için belirttiğim düzenlemeyi yaparsanız sorun kalmayacaktır.
.
 
Tekrar merhaba.

-- Önce belirttiğiniz #YOK hatasıyla ilgili olarak yazdığım bir önceki cevaba bakınız.

-- Yeni sorunuzla (EĞER işlevi hakkındaki) ilgili olarak ise aşağıda açıklama yazdım.

DÜŞEYARA, KAÇINCI gibi işlemlerde aranan değer ile arama alanındaki veriler aynı tür olmalıdır.

Yani arama alanı da METİN ise aranan değeri METİNe dönüştürebilirsiniz
(100 değerini "100" olarak ÇİFT TIRNAK arasına alarak yazarak bu işlem gerçekleştirilebilir)

Kanaatim odur ki; veri kaynağınızın durumuna göre karar vermek en doğrusudur.
Arama yapılan tablodaki değerler muhasebe programı gibi harici kaynaktan hazır olarak geliyorsa,
bu tabloyu değiştirmeye çalışmak yerine ARAMA veya KOŞUL işlevlerinde ARANAN DEĞERin türünü buna göre ayarlamak en doğrusu olur.
.
 
Geri
Üst