Exemple complexe

Datorită exemplelor complexe, acest articol utilizează câțiva operatori personalizați specifici, cum ar fi DURATIONCALENDAR sau FIRSTIF. Nu sunt necesare cunoștințe specifice despre acești operatori.

Pentru exemple simple despre cum să creați valori personalizate, accesați Exemple de bază.

Recapitulare a exemplelor anterioare

Următorul tabel oferă descrieri și exemple de valori personalizate.

Descriere Exemplu
Agregare pe valoare de atribut
(De exemplu, rezultat pe activitate = toate evenimentele cu aceeași valoare a activității)
AVG(Durata())​
AVG(EventsPerAttribute, Duration())​
AVG(EdgesPerAttribute, Duration())​
Agregarea în cadrul cazurilor
(rezultat pentru fiecare caz)
AVG(CaseEvents, Duration())
Agregarea pe cazuri
(agregare pe valoare de atribut, cazul este luat în calcul o singură dată)
SUM(CasesPerAttribute, invoTotal)​
AVG(CasesPerAttribute, Duration())
Agregarea globală
(peste toate elementele în vedere/proces/regulă de afaceri)
COUNTIF(ProcessEvents, user == „Petru”)​
AVG(ProcessEvents, Duration())

Descrierea setului de date

Noul set de date minuscul este folosit pentru un calcul ușor pentru exemplele rămase. Conține patru cazuri și 12 evenimente

Pentru calcule manuale ușoare, presupunem un timp de așteptare zero între evenimente. Prin urmare, durata cazului este o simplă sumă a duratei evenimentelor. De asemenea, nu există paralelism între evenimente

În total, avem cinci atribute: activitate, început, sfârșit, utilizator și județ. Țara este un atribut la nivel de caz. Celelalte atribute sunt la nivel de eveniment.

1 Neagregare la nivel de eveniment

Cum filtrez prin evenimente CM cu durată pozitivă? Evaluați evenimentele individuale și eliminați-le pe cele cu marcaje temporale corupte.

Captură de ecran a neagregării la nivel de eveniment.

Calcul de exemplu 1

​Rulați și evaluați fiecare eveniment unul câte unul.​ Generați un singur rezultat per eveniment. Nu este necesară nicio operațiune de agregare. Comparați valorile atributelor de final și de început în fiecare eveniment.

Rezultatul de exemplu 1

Pentru fiecare eveniment:

  • 1x Fals
  • 11x adevărat

Captură de ecran a rezultatului pentru neagregarea la nivel de eveniment.

Expresie în editorul de valori personalizate

Captură de ecran a expresiei pentru neagregarea la nivel de eveniment.

Utilizare de exemplu 1

Deoarece avem un singur rezultat pentru fiecare eveniment în vizualizarea curentă, rezultatele sunt disponibile numai în ecranele care afișează și procesează o valoare a evenimentului:

  • Filtru de valori ale evenimentelor

  • Filtru metric de caz

Filtrul de valori ale evenimentelor este opțiunea evidentă, deoarece vă permite să filtrați evenimentele pe baza valorilor atributelor sau valorii. Filtrul de valori pentru cazuri utilizează în mod prestabilit valori la nivel de caz. De asemenea, vă permite să selectați filtrul pentru valorile evenimentului cu specificații suplimentare dacă toate sau cel puțin un eveniment din caz trebuie să îndeplinească valoarea evenimentului. Acest comutator permite filtrului de valori la nivel de caz să treacă la valori la nivel de eveniment.

Notă

Valorile atributelor evenimentului sunt afișate și în panoul de tabel Cazuri variante , dar această vizualizare afișează numai atributele evenimentului și nu afișează valorile evenimentului.

1.1 Neagregare la nivel de eveniment (alternativă)

Alternativă: Cum filtrez prin evenimente CM cu durată negativă? În loc să folosiți atributele „end” și „start”, scrieți expresia folosind valori generice.

Este cea mai bună practică să folosiți valori generice în loc de atribute de proces.​

  • Performanță mai bună

  • Portabilitate

  • O formulă se potrivește mai multor aplicații (de exemplu, prezentarea generală a cazului și analiza cauzei principale).

  • Formularul agregat funcționează cu caz/eveniment/margine

Captură de ecran a neagregării la nivel de eveniment.

Expresie în editorul de valori personalizate

Captură de ecran a expresiei în editor.

2 Neagregare la nivel de caz

Cum filtrez cazurile cu durată goală (zero)? După ce am eliminat evenimentele corupte, trebuie să eliminați cazurile nevalide. Eliminați cazurile complete cu durată zero.

Captură de ecran a neagregării la nivel de caz.

Calcul de exemplu 2

​Rulați și evaluați fiecare caz unul câte unul.​ Generați un singur rezultat pentru fiecare caz. Deoarece există operator Duration(), care se aplică la nivel de caz, nu este necesară nicio operațiune de agregare.

Rezultatul de exemplu 2

Pentru fiecare eveniment:

  • Cazul 1 - adevărat
  • Cazul 2 - adevărat
  • Cazul 3 - adevărat
  • Cazul 4 - fals

Captură de ecran a rezultatului pentru o singură rulare per caz.

Expresie în editorul de valori personalizate

Captură de ecran a formulei valorice expresiei.

Utilizare de exemplu 2

Deoarece aveți un singur rezultat per caz, rezultatele sunt disponibile numai în ecranele care afișează rezultatele pe caz:

  • Filtru metric de caz

  • Prezentare generală a cazului statistic

  • Analiza cauzei rădăcină

  • Filtru de valori ale evenimentelor

Utilizarea valorii la nivel de caz (agregată sau neagregată) în Statistici Prezentare generală a cazului, Analiza cauzei principale sau Filtrul metric de caz nu este o surpriză.

Pentru a răspunde de ce există o indicație de utilizare pentru Valori de eveniment, nu oferă nicio setare avansată pentru a comuta la nivel de caz. Răspunsul este în formula expresiei, care folosește Duration() operator. Aplicația desktop Power Automate Process Mining oferă același operator Duration() la nivel de eveniment și de caz. Prin urmare, aceeași expresie este aplicabilă atât la nivel de caz, cât și la nivel de eveniment.

3 Agregarea marginilor

Care este numărul de modificări ale utilizatorilor pe cale (margine)? În loc să te uiți la valorile evenimentelor, vei cere modificările apărute între evenimente. Deci cauți rezultat pe margine.

Edge (path): Tranziție între două evenimente urmărite direct.

Captură de ecran a agregării marginilor.

Calcul de exemplu 3

Evaluezi cât de des te-ai schimbat când cazul a progresat în urma evenimentelor. Doriți să identificați pe ce tranziții (margini) are loc schimbarea utilizatorului. Mai întâi, identificați setul de margini în datele noastre. Pentru cazul 1, există două muchii A-> B și B-> C. În cazul 2 avem A-> C și C-> C. Pentru cazul 3, aveți doar o margine C-> C. În total, aveți patru (4) margini unice (pe baza valorilor activității) - A-> B, B-> C, A-> C și C-> C. Pentru fiecare dintre aceste margini, trebuie să cumulați numărul de modificări ale utilizatorilor. De exemplu, aveți o singură instanță de margine B-> C unde utilizatorul Michal la începutul evenimentului și, de asemenea, la evenimentul de la final, deci nu există nicio schimbare de utilizator pentru această margine.

Rezultatul de exemplu 3

  • A-> B = 1
  • B-> C = 0
  • A-> C = 1
  • C-> C = 2

Captură de ecran a rezultatului pe margine.

Expresie în editorul de valori personalizate

Captură de ecran a expresiei.

Operatori TARGET() și SOURCE() returnează valorile atributului solicitat pentru nodul de sfârșit și de pornire la marginea actuală.

Utilizare de exemplu 3

Valorile personalizate definite generează valoarea rezultatului pe margine (atribut), deci este aplicabilă oriunde atunci când sunt utilizate rezultate agregate pe margine:

  • Procesează marginile hărții

  • Margini statistice

  • Filtru condițional Edge

4 Agregarea evenimentelor de caz II

În secțiunea anterioară, ați avut un exemplu simplu de utilizare CaseEvents agregare. Aici veți lua un alt exemplu cu o formulă mai complexă.

Care este durata de la primul început C și ultima activitate de sfârșit C în cazuri? Căutați un rezultat pe caz și să faceți o agregare condiționată peste evenimente de caz.

Captură de ecran a formulei complexe de agregare a evenimentelor de caz II.

Calcul de exemplu 4

Rulați toate evenimentele disponibile în carcasa sa. Obțineți prima și ultima activitate „C” într-un caz și măsurați durata dintre începutul primei și sfârșitul ultimei.

Rezultatul de exemplu 4

  • Cazul 1 = 1 oră 00 minute
  • Cazul 2 = 1 oră 20 de minute
  • Cazul 3 = 2 ore 00 minute

Captură de ecran a rezultatelor pentru agregarea cazurilor II.

Expresie în editorul de valori personalizate

Captură de ecran a expresiei pentru agregarea cazurilor II.

De data aceasta, expresia este puțin mai complicată, dar arată cum să combinați mai multe agregări într-o singură formulă. Operatorii FIRSTIF() și LASTIF() sunt operatori de agregare, care returnează primul/ultimul eveniment pe baza criteriilor de intrare în domeniul de calcul definit (de data aceasta CaseEvents).

Utilizare de exemplu 4

Aplicarea valorii personalizate urmează cerințele standard pentru agregarea unui singur caz (indiferent de complexitatea exprimării).

4.1 Agregarea evenimentelor de caz II (alternativă)

Care este durata de la prima activitate de început C și ultima activitate de sfârșit C, dar calculată numai pe orele de lucru? Exemplul este același cu cel anterior, dar aici doriți să calculați diferența de timp numai pe orele de lucru. Anterior, simpla diferență dintre valorile marcajului de timp era suficientă.

Captură de ecran a agregării evenimentelor de caz II.

Calcul de exemplu 4.1

Rulați toate evenimentele disponibile în carcasa sa. Obțineți prima și ultima activitate „C” într-un caz și măsurați durata dintre începutul primei și sfârșitul ultimei. Pentru măsurarea duratei, utilizați orele de lucru definite în calendarul aplicat.

Rezultatul de exemplu 4.1

  • Cazul 1 = ???
  • Cazul 2 = ???
  • Cazul 3 = ???

Expresie în editorul de valori personalizate

Captură de ecran a expresiei pentru agregarea cazurilor II.

Pentru a calcula durata peste orele de lucru, au fost utilizați DURATIONCALENDAR() operatorii. Operatorii pentru a găsi primul și ultimul eveniment sunt utilizați ca argumente operator creând o expresie imbricată. Observați că complexitatea expresiei nu afectează și nu modifică domeniile de calcul selectate.

Utilizare de exemplu 4.1

Aplicarea valorii personalizate urmează cerințele standard pentru agregarea unui singur caz, indiferent de complexitatea exprimării.

5 Rezultate categorice vs. cantitative

Carcasa conține calea C->C? Aceasta este o întrebare simplă când trebuie să clasificați cazuri individuale pe baza marginii existenței C->C.

Captură de ecran a rezultatelor categorice versus cantitative.

Calcul de exemplu 5

Rulați peste toate marginile disponibile în carcasă. Dacă cazul conține marginea C->C, trece criteriile. Rezultatele sunt generate pe caz. Numărul acestor margini nu este important.

Rezultatul de exemplu 5

  • Cazul 1 = Fals
  • Cazul 2 = Adevărat
  • Cazul 3 = Adevărat

Captură de ecran a rezultatelor pentru rezultate cantitative.

Expresie în editorul de valori personalizate

Captură de ecran a expresiei pentru rezultate cantitative.

Operatorul ANY() returnează valoarea booleană adevărat/fals atunci când cel puțin un element într-un context dat îndeplinește criteriile. Vezi și operatorul ALL()*k, care returnează o valoare adevărată atunci când toate elementele din contextul dat îndeplinesc criteriile.

Utilizare de exemplu 5

Aplicarea valorii personalizate urmează cerințele standard pentru agregarea unui singur caz: ​

  • Filtru de metrică a cazurilor

  • Analiza cauzei fundamentale

  • Panoul statistic de prezentare generală a cazului

5.1 Rezultate categorice vs. cantitative (alternativă)

Câte căi C->C sunt în carcasă? Schimbați întrebarea anterioară de la dacă cazul conține marginea C->C la câte astfel de muchii există.

Captură de ecran a alternativei rezultatelor categorice versus cantitative.

Calcul din exemplul 5.1

Rulați peste toate marginile din carcasă. Numărați orice margini C->C găsite. Dacă nu se găsește o astfel de margine, numărul este zero pentru cazul dat.

Rezultă exemplul 5.1

  • Cazul 1 = 0
  • Cazul 2 = 1
  • Cazul 3 = 2

Captură de ecran a rezultatului pentru alternativa de rezultat cantitativ.

Expresie în editorul de valori personalizate

Captură de ecran a expresiei pentru alternativa rezultatului cantitativ.

În comparație cu formula anterioară, tocmai ați înlocuit operatorul ANY() cu COUNTIF().

Utilizare de exemplu 5.1

Aplicarea valorii personalizate urmează cerințele standard pentru agregarea unui singur caz.

6 Eveniment sau agregare a cazurilor marginale folosind context la nivelul întregului caz

Câte cazuri în DE conține marginea C->C? Această solicitare conține două valori. Prima este valoarea atributului de țară „DE”, iar a doua este valoarea pentru marginea „C->C”.

Limitarea pentru marginea „C->C” descrie cerința de domeniu și de ce țara „DE” este una dintre valorile atributelor.

Captură de ecran a agregării evenimentelor și a cazurilor marginale utilizând contextul la nivelul întregului caz.

Calcul de exemplu 6

De ce nu calculați rezultatul pentru toate țările/regiunile? La început, regândește întrebarea inițială. Este posibil să generați rezultate pe valoare de atribut (de exemplu, pentru țara atributului), dar nu există nicio modalitate (cu excepția regulilor de afaceri) de a crea un calcul pentru o singură valoare a atributului. În utilizarea regulilor de afaceri, puteți sări peste această secțiune. Știind acest lucru, puteți actualiza întrebarea inițială la forma generică:

Câte cazuri conține marginea C->C per țară?

Acum, calculul constă din doi pași. La început, parcurgeți fiecare caz și verificați existența marginilor „C->C”. Numărul exact de margini „C->C” din carcasă nu este important. După aceasta, în a doua etapă, agregați rezultatele pentru un singur caz în funcție de o valoare a atributului la nivel de caz țară. Există două valori „DE” și „SK”, deci vor fi două rezultate.

Ambele cazuri pentru atributul de țară „SK” conțin marginea „C->C”, deci rezultatul pentru „SK” este 2. Numărul total de muchii este 3, dar nu numărăm numărul de muchii.

Rezultatul de exemplu 6

  • DE = 0
  • SK = 2

Captură de ecran a rezultatului pentru agregarea evenimentelor și a cazurilor marginale.

Expresie în editorul de valori personalizate

Captură de ecran a expresiei pentru agregarea evenimentelor și a cazurilor marginale.

Formula imbricată conține o agregare în doi pași. Cea interioară trece peste toate marginile din carcasă. Cel exterior agregează cazurile după valoarea atributului. Agregarea exterioară folosește contextul CasesPerAttribute deoarece rezultatul pe caz este exact unul. Contextul EventsPerAttribute de asemenea, grupează rezultatul pe valoare de atribut, dar poate implica același caz de mai multe ori (pentru fiecare eveniment implicat) în rezultat.

Utilizare de exemplu 6

Valoarea personalizată este aplicabilă pe fiecare ecran în care sunt afișate valori pentru fiecare valoare de atribut. Valoarea atributului poate fi grupată folosind nivelul evenimentului ( EventsPerAttribute) sau la nivel de caz ( CasesPerAttribute) context. Aceste două contexte de calcul oferă un calcul diferit, dar au aceeași aplicabilitate a calculului (metrică personalizată):

  • Harta procesului (atât nodurile, cât și marginile)

  • Toate statisticile cu excepția Prezentare generală a cazului, care necesită rezultate pe caz.

  • Atribute și filtre condiționale de margine.

Pentru o expresie cu agregari imbricate, contextul de agregare cel mai exterior determină aplicația în aplicația desktop Process Mining.

6.1 Agregarea evenimentelor sau a cazurilor marginale (alternativă)

Convertiți exemplul anterior de la evaluarea categorială la evaluarea cantitativă.

Câte C-> Muchiile C sunt în cazuri în DE? Convertiți întrebarea într-o formă generică: Câte C-> Marginile C sunt în cazuri pe țară?

Captură de ecran a alternativei de agregare a cazurilor marginale și a evenimentelor.

Calcul din exemplul 6.1

Din nou, calculul constă din doi pași. La început, treceți prin fiecare caz și numărați „C-> C' marginile. După aceasta, în a doua etapă, agregați rezultatele pentru fiecare caz în funcție de valoarea atributului la nivel de caz țară. Există două valori: „DE” și „SK”, deci vor fi două rezultate.

Ambele cazuri pentru atributul de țară „SK” conține „C-> C' marginile. Rezultatul pentru „SK” și numărul total pentru aceste margini este 3 (1 + 2).

Rezultă exemplul 6.1

  • DE = 0
  • SK = 3

media/06-data-set-result.png

Expresie în editorul de valori personalizate

media/06_1-event-case-context.png

Expresia conține din nou o agregare (imbricată) în doi pași. Cea interioară trece peste toate marginile din interiorul majusculei, iar cea exterioară agregează cazurile după valoarea atributului.

Utilizare de exemplu 6.1

Valoarea personalizată este aplicabilă pe fiecare ecran în care valorile sunt afișate pentru fiecare valoare de atribut.

7 Comutați de la contextul evenimentului la contextul cazului

Care este durata medie a activității la durata cazului? Cât timp petrecem în medie activităților este una dintre valorile standard de performanță?

Dar dacă trebuie să calculăm raportul mediu dintre cât timp petrecem activităților în comparație cu durata cazului? Unde petrecem relativ cel mai mult timp? Este peste prag?

Captură de ecran cu trecerea de la contextul evenimentului la contextul cazului.

Calcul de exemplu 7

Ce anume vom calcula? Vrem rezultate pe activitate, așa că obținem rezultate pe „A”, „B” și „C”. Activitatea „B” este doar în cazul 1. Durata cazului 1 este de 90 de minute, iar durata activității „B” este de 20 de minute. Rezultatul pentru cazul 1 și activitatea „B” este 20/90 = ~ 0,22. Deoarece „B” nu este inclus în alte cazuri, acesta este și rezultatul final pentru „B”.

Efectuați calculul pentru activitatea „A”, pentru cazul 1 raportul este 10/90, pentru cazul 2 raportul este 40/120, cu valoarea medie 0,22 (0,11 + 0,33 împărțit la 2). În același mod, calculăm 6 rezultate individuale pentru fiecare dintre evenimentele „C” și facem media.

În ceea ce privește agregarea, nu este nimic nou. Generăm rezultate pe valoare de atribut, dar pentru calcul am folosit metrica (valoarea) din caz.

Rezultatul de exemplu 7

  • A = 0,22
  • B = 0,22
  • C = 0,375

media/07-data-set-result.png

Expresie în editorul de valori personalizate

media/07-case-operator.png

Expresia este simplă, dar folosește operatorul important CASE(), care vă permite să comutați contextul la nivelul cazului. Acesta este singurul mod de a calcula valorile la nivel de eveniment și de a solicita valori (valori) din cazul acestuia.

Utilizare de exemplu 7

Aplicarea valorii personalizate urmează cerințele standard pentru agregarea pe valoare de atribut. Deoarece expresia folosește Duration() și nu valoare de atribut, este aplicabilă și pe margini (atât în ​​harta procesului, cât și în statistici).

8 Agregare eveniment-caz-eveniment

Relația generică între evenimente în interiorul majusculei.

Câte evenimente făcute de Michal au fost în cazuri atinse de Petru? Imaginați-vă că „Peter” este un membru senior al echipei care este de obicei implicat doar în unele necazuri. Vrem să știm de câte ori „Peter” a trebuit să efectueze acțiuni atunci când un alt utilizator „Michal” a fost implicat în același caz.

​Schimbați întrebarea într-o formă generică: Câte evenimente au fost efectuate per utilizator în cazurile cu Peter?

Captură de ecran a agregării eveniment-caz-eveniment.

Calcul din exemplul 8

Evenimentul este valabil pentru această întrebare, dacă este în caz, în cazul în care există cel puțin un eveniment realizat de utilizatorul „Peter”. Evaluați fiecare eveniment și rezultatele grupului pe valoare de utilizator de atribut - „Michal”, „Peter” și „Denis”.

Rezultă exemplul 8

  • Michael = 1
  • Petru = 2
  • Denis = 3

Captură de ecran a rezultatului pentru agregarea eveniment-caz-eveniment.

Expresie în editorul de valori personalizate

Captură de ecran a expresiei pentru agregarea eveniment-caz-eveniment.

Exprimarea este scurtă, dar necesită anumite cunoștințe pentru a o înțelege. Partea cea mai interioară Any(CaseEvents, user=="Peter") este un rezultat simplu pentru fiecare caz. Evaluează dacă cazul conține utilizatorul „Peter” sau nu. Partea cea mai exterioară COUNTIF() face o simplă agregare după valoarea atributului. Cerința este să faceți agregarea pe utilizatorul atributului la nivel de eveniment, dar valoarea calculată este o valoare la nivel de caz. Comutarea între aceste două contexte se face de către CASE() operatorul din mijloc.

Notă

În acest exemplu, contextul EventsPerAttribute nu este specificat. Valoarea personalizată a aplicat apoi contextul implicit de calcul.

Utilizare de exemplu 8

Aplicarea valorii personalizate urmează cerințele standard pentru agregarea pe valoare de atribut.

8.1 Agregare condiționată eveniment-caz-eveniment

Relația dintre două atribute la nivel de eveniment în caz cu condiție.

De câte ori a lucrat Michal la C repetat cu Peter în caz că? Aceasta este o întrebare similară cu cea anterioară, dar există o condiție adăugată.

Convertiți întrebarea într-una generică: De câte ori Michal (per utilizator) a lucrat pe C repetat în cazurile cu Peter?

Captură de ecran a agregării condiționate eveniment-caz-eveniment.

Calcul de exemplu 8.1

Evaluați fiecare eveniment și rezultatele grupului pe valoarea utilizatorului atributului: „Michal”, „Peter” și „Denis”, ca în exemplul anterior. Evaluarea evenimentului este mai complicată, deoarece există o limitare doar pentru activitățile repetate „C”.

În cazul 1, nu există activități repetate „C”, în cazul 2 este o activitate repetată „C” realizată de „Michal”, iar în cazul 3 sunt două activități repetate „C” realizate de „Denis”.

Rezultatul de exemplu 8.1

  • Michael = 1
  • Petru = 0
  • Denis = 2

Captură de ecran a rezultatului pentru agregarea condiționată eveniment-caz-eveniment.

Expresie în editorul de valori personalizate

Captură de ecran a expresiei pentru agregarea condiționată eveniment-caz-eveniment.

Agregare în două etape (imbricate) — cea interioară evaluează cazul unic, iar cea exterioară rezultă grup pentru fiecare valoare de atribut. Condițiile sunt, de asemenea, separate între acestea la agregare. Cel din interior se ocupă de cerința de caz dacă conține utilizatorul „Peter”. Cel exterior grupează evenimentele astfel încât să conțină condiția legată de eveniment dacă activitatea este „C” și dacă se repetă.

Operator OCCURRENCE() returnează indexul de apariție al unei valori date a atributului evenimentului în caz.

Utilizare de exemplu 8.1

Aplicarea valorii personalizate urmează cerințele standard pentru agregarea pe valoare de atribut.

9 Suplimentar: valorile valorice personalizate specifice

  • Este posibil să evitați operatorul?CASE()? Există o modalitate de a simplifica expresiile? Da, este, dar există compromisuri. Vezi următorul exemplu.

  • Câte evenimente făcute de Michal (per utilizator) au fost în cazurile cu Peter? Aceeași întrebare ca în 8 Agregare eveniment-caz-eveniment.

  • Este posibil să răspunzi la întrebare fără a folosiCASE() operator?

Captură de ecran a valorilor personalizate specifice unei valori suplimentare.

Soluție generică folosind CAZ() operator

Captură de ecran a soluției generice.

Este posibil să sari peste CASE() operator cu prețul creării unei valori personalizate specifice? Într-o astfel de măsurătoare personalizată, trebuie să specificăm valoarea personalizată solicitată „Michal” și să avem calcule de reducere pentru alte valori de atribut (per utilizator) și gruparea după alte atribute.

Valoare personalizată limitată la o anumită valoare personalizată

Captură de ecran a valorii personalizate limitată la o anumită valoare personalizată.

Raționamentul din spatele celui din urmă:

  1. Selectați cazuri cu „Peter” (operator ANY())

  2. Convertiți rezultatul boolean în zero numeric sau unu (operator IF())

  3. Numărați numărul de activități cu cerințe (operator COUNTIF())

  4. Aplicați rezultatul per caz pentru fiecare caz exact o dată (context de calcul CasesPerAttribute)

  5. La sfârșit Suma numărului de evenimente per caz (operator SUM())

Valoarea personalizată fără CASE() operatorul este poate mai ușor de citit de oameni, dar aduce unele dezavantaje.

  • Pentru fiecare valoare de atribut rezultată ("Michal"), avem nevoie de valori personalizate separate. Pentru alte valori de atribut, valoarea returnează zero.

  • Operator COUNTIF() este blocat pentru atributul utilizator. Rezultatele grupate după un alt atribut, de exemplu, țara necesită schimbarea condiției la un anumit cod de țară, de exemplu, COUNTIF(CaseEvents, country == "DE").