DimPeriod =
DATATABLE (
"Period", STRING,
"Description", STRING,
{
{ "Dün", "Bugünden bir önceki günün verilerini gösterir. (Pazartesi günü ise Cuma gününü gösterir)" },
{ "Haftalık", "Bugünün içinde bulunduğu haftayı (Pzt–Paz) kapsar." },
{ "Aylık", "Bugünün içinde bulunduğu ayı kapsar." },
{ "Yıllık", "Bulunulan takvim yılının tamamını kapsar." },
{ "Tümü", "Veri setindeki tüm tarihleri kapsar." }
}
)
DimDate =
VAR MinDate = MIN ( factAntizanDetay[Date] )
VAR MaxDate = MAX ( factAntizanDetay[Date] )
RETURN
ADDCOLUMNS (
CALENDAR ( MinDate, MaxDate ),
"Year", YEAR ( [Date] ),
"MonthNo", MONTH ( [Date] ),
"MonthName", FORMAT ( [Date], "MMMM" ),
"YearMonth", FORMAT ( [Date], "yyyy-MM" ),
"WeekNo", WEEKNUM ( [Date], 2 ),
"DayOrder", WEEKDAY ( [Date], 2 ),
"DayName", FORMAT ( [Date], "dddd" ),
"IsWorkingDay", WEEKDAY ( [Date], 2 ) < 6,
"IsWeekend", WEEKDAY ( [Date], 2 ) >= 6
)
İŞ,ÖZEL, DİĞER SÜRE / PERSONEL SAYISI
Başlık:
Departman Süre Oranları
Alt Başlık:
İş, Özel ve Diğer Sürelerinin Toplam Süre İçindeki Payı
(İlk 10 Departman, Kişi Başına İş Süresine Göre Sıralı)
En aktif Departmanın kendi içindeki oranı n filitreye toplam süre koy.
SÜRE/TOPLM SÜRE
Başlık:
Kişi Başına İş Süresi
Alt Başlık:
Toplam İş Süresinin Departman Personel Sayısına Oranı
Antizan_OrtalamaİşSüresi =
DIVIDE(
[_İş],
[_Personel Sayısı]
)
_Seçili Periyot =
SELECTEDVALUE('Antizan DimPeriod'[Period], "Aylık")
______________________________________________________________________________________
İş için çalışanların süresi
_İş = CALCULATE(
[_DönemselSwitchSüre],
factAntizanDetay[Tür] = "İş"
İş için çalışanların formatı
Antizan_DönemselİşSüre =
VAR Saniye = [_İş]
VAR Saat = INT(Saniye / 3600)
VAR Dakika = INT( (Saniye - Saat * 3600) / 60 )
RETURN
FORMAT(Saat, "00") & ":" & FORMAT(Dakika, "00")
Antizan_DönemselToplamSüre =
VAR Saniye = CALCULATE(
[_DönemselSwitchSüre]
)
VAR Saat = INT(Saniye / 3600)
VAR Dakika = INT( (Saniye - Saat * 3600) / 60 )
RETURN
FORMAT(Saat, "00") & ":" & FORMAT(Dakika, "00")
___________Kullanım Süre Dağılımı
Cart sütun grafiğine
Kullanım Süre Payları
Pasta grafiğine
Antizan_DönemselİşSüre =
VAR Saniye = [_İş]
VAR Saat = INT(Saniye / 3600)
VAR Dakika = INT( (Saniye - Saat * 3600) / 60 )
RETURN
FORMAT(Saat, "00") & ":" & FORMAT(Dakika, "00")
_DönemselSwitchSüre =
VAR _Period = [_Seçili Periyot]
VAR _LastDate = MAX(factAntizanDetay[Date])
RETURN
SWITCH(
TRUE(),
_Period = "Dün",
CALCULATE(
SUM(factAntizanDetay[Süre]),
AntizanDimDate[Date] = _LastDate - 1
),
_Period = "Haftalık",
CALCULATE(
SUM(factAntizanDetay[Süre]),
DATESINPERIOD(AntizanDimDate[Date], _LastDate, -7, DAY)
),
_Period = "Aylık",
CALCULATE(
SUM(factAntizanDetay[Süre]),
FILTER(
ALL(AntizanDimDate),
AntizanDimDate[Date] <= _LastDate &&
YEAR(AntizanDimDate[Date]) = YEAR(_LastDate) &&
MONTH(AntizanDimDate[Date]) = MONTH(_LastDate)
)
),
_Period = "Yıllık",
CALCULATE(
SUM(factAntizanDetay[Süre]),
FILTER(
ALL(AntizanDimDate),
AntizanDimDate[Date] <= _LastDate &&
YEAR(AntizanDimDate[Date]) = YEAR(_LastDate)
)
),
_Period = "Tümü",
CALCULATE(
SUM(factAntizanDetay[Süre]),
ALL(AntizanDimDate)
),
-- Default
SUM(factAntizanDetay[Süre])
)
*******
Ortalama Süre (Dün Saat:Dakika - Text) =
VAR OrtalamaSaniye =
CALCULATE(
DIVIDE(
SUM( factAntizanDetay[Süre] ),
COUNT( factAntizanDetay[Süre] )
),
factAntizanDetay[Tür] = "İş",
factAntizanDetay[Date] = TODAY() - 1
)
VAR Saat = INT( OrtalamaSaniye / 3600 )
VAR Dakika = INT( MOD(OrtalamaSaniye, 3600) / 60 )
RETURN
FORMAT(Saat, "00") & ":" & FORMAT(Dakika, "00")
______________________________________________________________________________________
Toplam / İş
1 birim iş için kaç birim toplam zaman harcanmış:
1 saatlik iş için kaç saat toplam zaman harcandığını verir. 8 / 5 = 1,6 İş/Toplam Süre Toplam zamanın ne kadarının işe gittiğini verir.
______________________________________________________________________________________
______________________________________________________________________________________
Debug
1 saatlik iş için kaç saat toplam zaman harcandığını verir. 8 / 5 = 1,6 İş/Toplam Süre Toplam zamanın ne kadarının işe gittiğini verir.
İş Yoğunluk Oranı =
DIVIDE ( CALCULATE ( [Toplam Süre (Saat)], ( factAntizanDetay[Tür] = "İş" ) ),
[Toplam Süre (Saat)] )
5 / 8 = 0,625 → %62,5 “Bu kişi/departman zamanının %62,5’ini işe ayırmış.”
Seçili Periyot Test =
[_Seçili Periyot]
Son Tarih DimDate =
MAX(AntizanDimDate[Date])
Son Tarih Fact =
MAX(factAntizanDetay[Date])
Toplam Süre =
______________________________________________________________________
<!DOCTYPE html>
<html lang="tr">
<head>
<meta charset="UTF-8">
<title>Sokak Hayvanlarına Bağış Formu</title>
<style>
body {
font-family: Arial, sans-serif;
background-color: #f4f9f8;
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
}
.donation-box {
position: relative;
background: white;
padding: 40px 50px 80px;
border-radius: 14px;
text-align: center;
box-shadow: 0 15px 30px rgba(0,0,0,0.1);
overflow: hidden;
animation: fadeUp 1.2s ease-out;
}
/* ÜST ÇİZGİ – yeşil, sabit */
.donation-box::before {
content: "";
position: absolute;
top: 26px;
left: -10%;
width: 120%;
height: 2px;
background-color: #2ecc71;
opacity: 0.6;
}
h1 {
position: relative;
font-size: 28px;
color: #1f6f78;
margin: 0;
z-index: 2;
}
p {
margin-top: 12px;
font-size: 14px;
color: #555;
position: relative;
z-index: 2;
animation: fadeIn 2s ease;
}
/* DALGA ALANI */
.waves {
position: absolute;
bottom: 18px;
left: 0;
width: 100%;
height: 55px;
z-index: 1;
}
.wave1 {
animation: waveMove 16s ease-in-out infinite alternate;
opacity: 0.55; /* ÜST DALGA BİRAZ SOLGUN */
}
.wave2 {
animation: waveMoveReverse 22s ease-in-out infinite alternate;
opacity: 1; /* ALT DALGA BELİRGİN */
}
@keyframes waveMove {
from { transform: translateX(0); }
to { transform: translateX(-120px); }
}
@keyframes waveMoveReverse {
from { transform: translateX(0); }
to { transform: translateX(120px); }
}
@keyframes fadeUp {
from {
opacity: 0;
transform: translateY(30px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
@keyframes fadeIn {
from { opacity: 0; }
to { opacity: 1; }
}
</style>
</head>
<body>
<div class="donation-box">
<h1>Sokak Hayvanlarına Bağış Formu</h1>
<p>Yapacağınız her bağış, sokaktaki bir canın hayatına dokunur.</p>
<!-- ALT DALGALAR -->
<svg class="waves" viewBox="0 0 600 55" preserveAspectRatio="none">
<!-- ÜST DALGA – DAHA SOLGUN -->
<path class="wave1"
d="M0 16 Q 30 6 60 16 T 120 16 T 180 16 T 240 16 T 300 16 T 360 16 T 420 16 T 480 16 T 540 16 T 600 16"
fill="none"
stroke="#2bb0ed"
stroke-width="2"/>
<!-- ALT DALGA – BELİRGİN -->
<path class="wave2"
d="M0 34 Q 40 44 80 34 T 160 34 T 240 34 T 320 34 T 400 34 T 480 34 T 560 34 T 640 34"
fill="none"
stroke="#2bb0ed"
stroke-width="2"/>
</svg>
</div>
</body>
</html>
PersonUID =
ReplyDeleteVAR Isim =
UPPER (
TRIM ( Personel[isim] )
)
VAR TC =
IF (
NOT ISBLANK ( Personel[tc] ),
TRIM ( Personel[tc] ),
"NTC"
)
VAR Dogum =
IF (
NOT ISBLANK ( Personel[dogum_tarihi] ),
FORMAT ( Personel[dogum_tarihi], "yyyymmdd" ),
"NDOG"
)
RETURN
Isim & "|" & TC & "|" & Dogum