Բլոգ/ Պլանավորում/ Պլանի բաշխում

Պլան ցանկացած կտրվածքով, առանց հաշվետվությունը վերակառուցելու

Պլանի բաշխում — երեք շերտ

Պլանը դրվում է ըստ ամսվա, ըստ բրենդի, ըստ մենեջերի՝ բայց հարցերը գալիս են օրվա, SKU-ի և հաճախորդի մասին։ Վերլուծում ենք մեթոդը, որ մեկ պլանը բաշխում է այնպես, որ այն մնա համեմատելի փաստի հետ ցանկացած կտրվածքով՝ առանց ամեն շաբաթ ձեռքով հավաքելու։

«Պլան ըստ հաճախորդի», որը տվյալներում չկա, չափիչ է։ Ամիս→օր և բրենդ→SKU-ն մատերիալիզացվում են Power Query-ում, մենեջեր→հաճախորդը հաշվվում է DAX-ում՝ ընթացիկ ֆիլտրի համար։ Ներքևում՝ M կոդը, չափիչները և կենդանի պլան/փաստը։

ՄԱ Միխայիլ Աբովյան·ACS-ի հիմնադիր ·Հունիս 2026 ·9 րոպե
Պլանավորում պլան / փաստ բաշխում Google Sheets Power Query · M DAX
Ղեկի մոտ Մեթոդը պարզ լեզվով՝ ինչ ենք բաշխում և ինչու։ Ներքևի պլան/փաստ աղյուսակը կենդանի է՝ ֆիլտրեք ըստ ժամանակահատվածի, ղեկավարի և բրենդի։ Ինժեներիա ուզու՞մ եք՝ անցեք «Կապոտի տակ»։
Կապոտի տակ Երեք բաշխում՝ Power Query կոդը ամիս→օր և բրենդ→SKU-ի համար, DAX-չափիչը, որ պլանը բաշխում է հաճախորդի վրա, պլան/փաստ չափիչները։ Նրանց համար, ով ուզում է տեսնել ամբողջ հաշվարկը։
պլանի վերանայում ~րոպեներ էր շաբաթների svod
պլան/փաստ կտրվածք ցանկացած օր · SKU · հաճախորդ
պատասխանատուի փոխում 1 բջիջ Google Sheets-ում
փաստի պատրաստում 1 արտահանում QuickBooks-ի սովորական

01 Խնդիրը՝ պլանն ու փաստը խոսում են տարբեր լեզվով

Հարմար է պլանը դնել խոշոր՝ ըստ ամսվա, ըստ բրենդի, ըստ մենեջերի։ Բայց հարցերը գալիս են մանր՝ «գնու՞մ ենք պլանով այս շաբաթ», «որքանն է պլանից կախված այս հաճախորդից», «ինչպես է ղեկավարի մոտ եռամսյակում»։ Պլանի և այս հարցերի միջև՝ ձեռքով հավաք, որ ինչ-որ մեկը նորից է հավաքում ամեն անգամ։

Ավելի վատ, պլանը կենդանի է. թիրախները տեղափոխվում են մենեջերների և բրենդների միջև տարվա ընթացքում։ Ամեն վերանայում նշանակում է վերագրել պատմությունը մի քանի աղյուսակում՝ ոչինչ չկոտրելով։ Հենց այստեղ էլ սովորաբար կոտրվում է։

«Պլանը դրվում է ըստ ամսվա և բրենդի, իսկ հարցնում են օրվա և հաճախորդի մասին։ Խնդիրն է՝ բաշխել մեկ պլանը այնպես, որ այն պատասխանի երկուսին էլ»։

02 Սկզբունքը՝ մեկ պլան, ցանկացած կտրվածք

Պլանը մուտքագրվում է մեկ անգամ՝ Google Sheets-ում, հարմար «լայն» տեսքով։ Հետո մոդելը այն բերում է ընդհանուր ձևի, բաշխում ըստ օրերի և կապում փաստի հետ տեղեկագրերով։ Դրանից հետո պլանն ու փաստը ֆիլտրվում են նույն կապերով՝ և «% կատարումը» հաշվվում է ճիշտ ցանկացած մակարդակում։ Պտտեք ֆիլտրերը՝

Պլան / փաստ ըստ մենեջերի
2026 · պլան և փաստ մեկ մոդելից · սինթետիկ տվյալներ
Ժամ.
Ղեկավար
Բրենդ
ՄենեջերՂեկավարՊլան, ֏Փաստ, ֏% կատարումՊլան, հատՓաստ, հատ

* «% կատարում» = փաստ ÷ պլան։ Սանդղակ՝ ≥100% կանաչ · 85–99% դեղին · <85% կարմիր։ Հետ մնացողները բարձրացված են վերև։

03 Պլանը երևում է այնտեղ, որտեղ չեն դրել

Ամենաօգտակարը սկսվում է, երբ պետք է կտրվածք, որի վրա պլանն ընդհանրապես չեն դրել։ Դասականը հաճախորդն է. պլանը դրված է մենեջերի վրա, բայց ղեկավարին պետք է իմանալ, որ հաճախորդների վրա է այդ պլանը «կախված»։ Մոդելը բաշխում է մենեջերի պլանը նրա հաճախորդների վրա՝ փաստացի վաճառքում նրանց բաժնին համամասնորեն՝ հաճախորդների գումարը մնում է հավասար պլանին, ոչինչ չի կորում և չի կրկնապատկվում։

Նույն հնարքը՝ ցանկացած կտրվածք։ Բաշխումը միայն հաճախորդի համար չէ. նույն ձևով պլանը բաշխվում է SKU-ի, տարածաշրջանի, օրվա վրա՝ ամեն ինչի, որտեղ կա փաստացի վաճառք, որից կարելի է բաժին վերցնել։

04 Ինչ է սա փոխում

Պլանի վերանայումը դառնում է խմբագրում Google Sheets-ում. փոխեցիր թիվը կամ վերագրեցիր մենեջերին սյունակում, սեղմեցիր «Թարմացնել ամենը»՝ և պլանը, փաստը և տոկոսները ինքնահավաքվեցին։ Մեկ էկրանը փակում է տասնյակ հարց՝ ըստ ղեկավարի, մենեջերի, բրենդի, ալիքի, հաճախորդի և ժամանակահատվածի՝ առանց հաշվետվությունը վերակառուցելու։

Ինժեներիա ուզու՞մ եք։ Անցեք «Կապոտի տակ» ռեժիմին վերևի աջում՝ այնտեղ Power Query կոդը ըստ օրերի և դիրքերի բաշխման համար և DAX-չափիչը, որ պլանը բաշխում է հաճախորդի վրա հարցման պահին։

01 Երեք բաշխում

«Բաշխում» այստեղ նշանակում է խոշոր պլանը տարածել ավելի մանր կտրվածքի վրա։ Դրանք երեքն են, և սկզբունքորեն տարբերվում են հաշվարկի տեղով՝

Բաժանման կանոնը պարզ է. ինչ կախված չէ կտրվածքից՝ նախապես հաշվում ենք թարմացման ժամանակ; ինչ կախված է օգտատիրոջ ընտրությունից՝ թողնում ենք չափիչին։

02 Ամիս → օր

Փաստը գալիս է ըստ օրերի, պլանը՝ ըստ ամիսների։ Որ դրանք համեմատելի լինեն ցանկացած օրացուցային կտրվածքով, ամսական պլանը «տարածվում» է ըստ օրերի՝ միացում Օրացույցի հետ ամսվա առաջին օրով և բաժանում օրերի թվին։

-- Օրական պլան = ամսական ÷ ամսվա օրեր
WithCalendar = Table.NestedJoin(Parsed, {"Plan month"},
    Calendar, {"FirstDayOfMonth"}, "Cal", JoinKind.LeftOuter),
Expanded     = Table.ExpandTableColumn(WithCalendar, "Cal",
    {"Date", "Quarter", "DaysInMonth"}),
Daily        = Table.AddColumn(Expanded, "Daily Plan",
    each [Value] / [DaysInMonth])

Դրանից հետո ցանկացած ժամանակահատված՝ պարզ գումարում, առանց «բայց փետրվարը 28 օր է» նախազգուշացումների։

03 Բրենդ → SKU ըստ վաճառքի բաժնի

Ամփոփ պլանը դրված է բրենդի վրա՝ որ համեմատել փաստի հետ ըստ դիրքերի, այն բաշխվում է վերջին ամիսների բրենդի վաճառքում ամեն SKU-ի բաժնին համամասնորեն։ Պլանը «ինքնակարգավորվում» է ընթացիկ ապրանքային միքսին, ոչ թե հնացած տեղեկագրին։

-- SKU-ի բաժինը բրենդում → բրենդի պլանը բաժանվում SKU-ների
WithShare = Table.AddColumn(Expanded2, "$ share",
    each [#"$"] / [#"Brand $"], type number),
PlanAMD   = Table.AddColumn(Expanded3, "Sales plan (AMD)",
    each [Daily Plan] * [#"$ share"], type number)
Ինչու վաճառքի բաժին, ոչ թե ֆիքսված գործակից։ Բրենդի ներսում միքսը փոխվում է՝ սեզոնայնություն, նորույթներ, դուրս բերվող դիրքեր։ Վերջին վաճառքներին կապելը նշանակում է, որ պլանը հոսում է այնտեղ, որտեղ հիմա իրապես վաճառք է գնում։ Ոչ ոք ձեռքով չի վերահաշվում բաժանումը։

04 Մենեջեր → հաճախորդ DAX-ում

Հաճախորդ պլանում չկա՝ ուրեմն չի կարելի այն բաշխել նախապես (կտրվածքները շատ են)։ Դա անում է չափիչը. վերցնում է պլանը ընթացիկ համատեքստում և բազմապատկում հաճախորդի՝ փաստում բաժնով։

-- [Plan AMD] — բաշխել պլանը ընթացիկ կտրվածքին՝ ըստ փաստի բաժնի
IF( [Sold AMD],
    SUM('Plans'[Sales plan (AMD)]) *
    DIVIDE(
        [Sold AMD],
        CALCULATE([Sold AMD], ALL('Dim_Clients'[Client])),
        0
    )
)

Մեկ հաճախորդի համար DIVIDE-ը կվերադարձնի նրա բաժինը; առանց հաճախորդի ֆիլտրի բաժինը հավասար է մեկի՝ և չափիչը վերադարձնում է ամբողջ պլանը։ Հաճախորդների գումարը միշտ հավասար է մենեջերի պլանին։

05 Պլան/փաստ և % կատարում

Քանի որ պլանը բերված է օրական մանրացմանը և կապված Օրացույցի հետ, ցանկացած ժամանակահատված պարզապես ֆիլտր է։ Իսկ պլանի կատարումը՝ փաստի հարաբերությունը պլանին, ճիշտ ցանկացած մակարդակում, որովհետև երկու մեծությունն էլ ֆիլտրվում են նույն կապերով։

-- Եռամսյակային կտրվածք և % կատարում
Plan AMD 2026 Q2 =
CALCULATE( SUM('Plans'[Sales plan (AMD)]),
    FILTER( ALL('Calendar'),
        YEAR('Calendar'[Date]) = 2026 &&
        MONTH('Calendar'[Date]) >= 4 && MONTH('Calendar'[Date]) <= 6 ))

% of plan AMD = DIVIDE( [Sold AMD], [Plan AMD] )
Որտեղ է աշխատում։ Մեթոդը կիրառելի է, երբ կա փաստացի վաճառք, որից կարելի է բաժին վերցնել։ Առանց պատմության նոր բրենդի համար բաժինը վերցվում է մոտակա անալոգից կամ դրվում ձեռքով՝ բայց կմախքը (նորմալիզացիա → բաշխում → կապեր → չափիչներ) մնում է նույնը։

Կհավաքենք պլան/փաստ ձեր տվյալների վրա

Անվճար վերլուծության ժամանակ կնայենք, ինչպես է ձեր մոտ հիմա ապրում պլանը, և ցույց կտանք, ինչպես այն համեմատել փաստի հետ ցանկացած կտրվածքով՝ ղեկավարից մինչ հաճախորդ և օր։ Առանց պարտավորության։

շարունակություն թեմայով  ·  Բլոգի բոլոր հոդվածները →
ընթերցման ռեժիմ