# 13.7 IF, SWITCH आणि DIVIDE

Source: https://ravindrabagale.com/mr/powerbi/ch13-dax-data-analysis-expressions/13-7-logical-functions.html
Language: mr (Marathi with English technical terms)

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 हे स्पष्ट ठरवा.

रवींद्र बागले यांची tip

[Sales]/[Orders] मध्ये zero denominator अडचण देऊ शकतो. Measures मध्ये DIVIDE वापरा आणि missing-data cases सुद्धा तपासा.
