Power BI · मराठी आवृत्ती
13.7 IF, SWITCH आणि DIVIDE
IF condition नुसार result निवडतो. तिसरा argument नसला तर false case ला BLANK. खाली 80% target हा फक्त practice target आहे.
Delivery Target Status =
IF([% Orders Delivered Under 10 Mins] >= 0.8, "On Target", "Below Target")
-- Calculated column in Orders
Has Discount = IF(Orders[Discount] > 0, "Yes", "No")
-- Calculated columns in Orders
Late Cash Order =
IF(AND(Orders[Delivery Time Mins] > 20, Orders[Payment Mode] = "Cash on Delivery"), "Yes", "No")
Big Basket Flag = IF(Orders[Quantity] >= 5 || Orders[Amount] >= 500, "Big", "Normal")
-- Simple form: compare one expression to values
Payment Group = SWITCH(Orders[Payment Mode],
"UPI", "Digital",
"Card", "Digital",
"Wallet", "Digital",
"Cash on Delivery", "Cash",
"Other")
-- SWITCH(TRUE()) pattern: first condition that is TRUE wins
Delivery Band = SWITCH(TRUE(),
ISBLANK(Orders[Delivery Time Mins]), "Not delivered",
Orders[Delivery Time Mins] <= 10, "Within 10 min",
Orders[Delivery Time Mins] <= 20, "11-20 min",
"Over 20 min")
-- Time-of-day slot from the Order Hour column
Day Part = SWITCH(TRUE(),
Orders[Order Hour] < 6, "Late Night",
Orders[Order Hour] < 12, "Morning",
Orders[Order Hour] < 17, "Afternoon",
Orders[Order Hour] < 21, "Evening",
"Night")
AOV (Average Order Value) = DIVIDE([Total Sales], [Delivered Orders])
Discount % = DIVIDE([Total Discount], [Total Sales] + [Total Discount], 0)
AND() / OR() दोन arguments घेतात. जास्त conditions साठी && किंवा || वापरा. SWITCH साध्या value mapping किंवा SWITCH(TRUE()) pattern मध्ये मोठी nested IF chain कमी करतो. पहिली true condition जिंकते; blank आधी हाताळा.
Day Part example मध्ये boundaries <6, <12, <17, <21 आहेत. Course मधल्या दुसऱ्या day-part example पेक्षा सीमा थोड्या वेगळ्या आहेत; business साठी एकच definition ठेवा.
Big Basket Flag मधलं Quantity / Amount line-level आहे. Order basket हवा असेल तर order totals आधी घ्या.
DIVIDE denominator zero किंवा blank असल्यास BLANK किंवा दिलेला constant alternate देते. Unknown ratio ला 0 दाखवायचा की blank हे स्पष्ट ठरवा.