Marka və Tarixə Əsasən Hesabat Hazırlanması – SUMIFS Nümunəsi (+Video)
- By : Elnur Isayev
- Category : DATE, EOMONTH, Nümunələr və Hilələr, Orta, SUMIFS
- Tags: Müsabiqə suallarının cavabları, Şərtə əsasən toplamalar, Tarix və Saat Hesablamaları
Əvvəlcə Facebook-da yayımlanan sual haqqında.
İlk əvvəl kriteriyalarımı müəyyən etməliyik. Bu məsələdə dörd kriteriyamız var.
- Marka Kodu
- Əməliyyat Növü (Satış-Qaytarma)
- Başlanğıc tarixi
- Bitiş tarixi
Kriteriyaları ayrı-ayrılıqda ələ alıb daha sonra hamısını tək funksiya daxilində yazacayıq.
Marka Kodu Kriteriyası
Marka kodları bazada ayrı sütunda göstərilmiyib, amma məhsul kodunun daxilində üç hərf olaraq kodlaşdırılıb. Bu səbəbdən, “marka kodu”-nun hər iki tərəfinə “*” işarəsi yazaraq həmin marka kodlarını məhsul kodu içərisində tanıdacayıq.
Baza1!$B:$B;"*"&Sual!$B4&"*"
Baza1 səhifəsi – B:B sütunu ilk kriteriya diapazonu (məhsul kodlarının olduğu sütun)-nu göstərir. “*” işarəsini B4 xanasının hər iki tərəfinə yazaraq, həmin marka kodunun məhsulun içərisində tanıtdırdıq
Sənəd Növü Kriteriyası
Burda əlavə işaərələrə ehtiyac yoxdur, çünki sənəd növlərinin adlarında fərqlilik yoxdur.
Baza1!F:F;Sual!D$3
Tarix Kriteriyaları
Məsələnin ən çətin hissəsi bu kriteriyalar ola bilər. Bazada olan tarix sütunları tam tarixi göstərdiyi halda, hesabatda həmin tarixlər qeyd olunmuyub. Sadəcə olaraq ay seçimi var. Əgər şəkildəki kimi başlanğıc və bitiş tarixləri yazılmış olsayda daha sadə olacaqdı formula. Çünki, bazada olan tarix formatı ilə (rəqəm) hesabatdakı tarix eyni deyil. Misal üçün, 01.07.2015 tarixinin 42186 rəqəmi təmsil edir və hesabatda isə saədəcə 7 rəqəmi var. Bu səbəbdən, hesabatda olan il və ay rəqəmləri əsasında tarix məlumatı yaradıb onun əsasında şərti toplama edəcəyik. Bunun üçün isə bizə iki tarix lazımdı: seçilən ayın ilk günü və son günü.
İlk günü tapmaq üçün:
=DATE(D1;F1;1) =DATE(2015;7;1)
DATE funksiyasında arqumentlərə düzgen refarans verdikdən sonra həmin ayın ilk gününü əldə edirik.
Son günü tapmaq üçün:
=EOMONTH(DATE(D1;F1;1);0) "və ya" =DATE(D1;F1+1;1)-1
EOMONTH funksiyası istənilən tarixin son gününü bizim üçün hesablayır. İkinci funksiyada isə, bir sonrakı ayın ilk günündən “1” rəqəmini çıxaraq həmin ayın son gününü əldə etdim.
Seçilən ayın ilk və son gününü tapdıqdan sonra, həmin iki tarıx arasındakı rəqəmlərimizi toplamalıyıq.
Baza1!$D:$D;">="&DATE(Sual!D1;Sual!F1;1); "ay;n ilk günündən böyük" Baza1!$D:$D;"<="&EOMONTH(DATE(Sual!D1;Sual!F1;1);0) "ayın son günündən kiçik"
Qeyd olunan kriteriyaları bir funksiya içərisində göstərək
=SUMIFS(Baza1!$G:$G;Baza1!$B:$B;"*"&Sual!$B4&"*";Baza1!F:F;Sual!D$3;Baza1!$D:$D;">="&DATE(Sual!D1;Sual!F1;1);Baza1!$D:$D;"<="&EOMONTH(DATE(Sual!D1;Sual!F1;1);0))
Funksiyada sabitləmələrə də diqqət yetirmək lazımdır.
SUMIFS funksiyasının müxtəlif məlumatlar əsasında istifadəsi və qeyd olunan tarix funksiyası haqqında aşağıdakı məqalələrdən oxuya bilərsiniz
- Şərtə görə Toplama Əməliyyatı – SUMIF və SUMIFS Funksiyaları
- İki Tarix Arası və Rəqəm Aralığına görə Toplama (SUMIF)
- Mətnlərə Əsasən Şərti Toplama – SUMIF(S)
- Tarix Funksiyalarına Qısa Baxış (YEAR, MONTH, DAY, DATE, TODAY, NOW, WEEKDAY, WEEKNUM)
Faylı yükləmək üçün link
Məsələnin videolu izahını youtube kanalından izləyə bilərsiniz