cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
cyril
Frequent Visitor

Simplify ClearCollect

Hi!

 

For some statistics I create a Collection with a pretty long expression:

 

 

 

ClearCollect( colStatExpert,
{Kanton: "AG" , Ziel: 11 , Reserviert: CountRows(Filter(data_checklist,Prüfstatus.Value = "Reserviert",Kanton = "AG")) , 'In Arbeit': CountRows(Filter(data_checklist,Prüfstatus.Value = "in Arbeit",Kanton = "AG")) , Fertig: CountRows(Filter(data_checklist,Prüfstatus.Value = "Fertig",Kanton = "AG",Text('Ende Prüfung',"[$-de]yyyy")=Text(Today(),"[$-de]yyyy"))) , Abgebrochen: CountRows(Filter(data_checklist,Prüfstatus.Value = "Abgebrochen",Kanton = "AG",Text('Ende Prüfung',"[$-de]yyyy")=Text(Today(),"[$-de]yyyy")))},
{Kanton: "AI" , Ziel: 1 , Reserviert: CountRows(Filter(data_checklist,Prüfstatus.Value = "Reserviert",Kanton = "AI")) , 'In Arbeit': CountRows(Filter(data_checklist,Prüfstatus.Value = "in Arbeit",Kanton = "AI")) , Fertig: CountRows(Filter(data_checklist,Prüfstatus.Value = "Fertig",Kanton = "AI",Text('Ende Prüfung',"[$-de]yyyy")=Text(Today(),"[$-de]yyyy"))) , Abgebrochen: CountRows(Filter(data_checklist,Prüfstatus.Value = "Abgebrochen",Kanton = "AI",Text('Ende Prüfung',"[$-de]yyyy")=Text(Today(),"[$-de]yyyy")))},
{Kanton: "AR" , Ziel: 1 , Reserviert: CountRows(Filter(data_checklist,Prüfstatus.Value = "Reserviert",Kanton = "AR")) , 'In Arbeit': CountRows(Filter(data_checklist,Prüfstatus.Value = "in Arbeit",Kanton = "AR")) , Fertig: CountRows(Filter(data_checklist,Prüfstatus.Value = "Fertig",Kanton = "AR",Text('Ende Prüfung',"[$-de]yyyy")=Text(Today(),"[$-de]yyyy"))) , Abgebrochen: CountRows(Filter(data_checklist,Prüfstatus.Value = "Abgebrochen",Kanton = "AR",Text('Ende Prüfung',"[$-de]yyyy")=Text(Today(),"[$-de]yyyy")))},
{Kanton: "BE" , Ziel: 47 , Reserviert: CountRows(Filter(data_checklist,Prüfstatus.Value = "Reserviert",Kanton = "BE")) , 'In Arbeit': CountRows(Filter(data_checklist,Prüfstatus.Value = "in Arbeit",Kanton = "BE")) , Fertig: CountRows(Filter(data_checklist,Prüfstatus.Value = "Fertig",Kanton = "BE",Text('Ende Prüfung',"[$-de]yyyy")=Text(Today(),"[$-de]yyyy"))) , Abgebrochen: CountRows(Filter(data_checklist,Prüfstatus.Value = "Abgebrochen",Kanton = "BE",Text('Ende Prüfung',"[$-de]yyyy")=Text(Today(),"[$-de]yyyy")))},
{Kanton: "BL" , Ziel: 7 , Reserviert: CountRows(Filter(data_checklist,Prüfstatus.Value = "Reserviert",Kanton = "BL")) , 'In Arbeit': CountRows(Filter(data_checklist,Prüfstatus.Value = "in Arbeit",Kanton = "BL")) , Fertig: CountRows(Filter(data_checklist,Prüfstatus.Value = "Fertig",Kanton = "BL",Text('Ende Prüfung',"[$-de]yyyy")=Text(Today(),"[$-de]yyyy"))) , Abgebrochen: CountRows(Filter(data_checklist,Prüfstatus.Value = "Abgebrochen",Kanton = "BL",Text('Ende Prüfung',"[$-de]yyyy")=Text(Today(),"[$-de]yyyy")))},
{Kanton: "BS" , Ziel: 5 , Reserviert: CountRows(Filter(data_checklist,Prüfstatus.Value = "Reserviert",Kanton = "BS")) , 'In Arbeit': CountRows(Filter(data_checklist,Prüfstatus.Value = "in Arbeit",Kanton = "BS")) , Fertig: CountRows(Filter(data_checklist,Prüfstatus.Value = "Fertig",Kanton = "BS",Text('Ende Prüfung',"[$-de]yyyy")=Text(Today(),"[$-de]yyyy"))) , Abgebrochen: CountRows(Filter(data_checklist,Prüfstatus.Value = "Abgebrochen",Kanton = "BS",Text('Ende Prüfung',"[$-de]yyyy")=Text(Today(),"[$-de]yyyy")))},
{Kanton: "FR" , Ziel: 21 , Reserviert: CountRows(Filter(data_checklist,Prüfstatus.Value = "Reserviert",Kanton = "FR")) , 'In Arbeit': CountRows(Filter(data_checklist,Prüfstatus.Value = "in Arbeit",Kanton = "FR")) , Fertig: CountRows(Filter(data_checklist,Prüfstatus.Value = "Fertig",Kanton = "FR",Text('Ende Prüfung',"[$-de]yyyy")=Text(Today(),"[$-de]yyyy"))) , Abgebrochen: CountRows(Filter(data_checklist,Prüfstatus.Value = "Abgebrochen",Kanton = "FR",Text('Ende Prüfung',"[$-de]yyyy")=Text(Today(),"[$-de]yyyy")))},
{Kanton: "GE" , Ziel: 7 , Reserviert: CountRows(Filter(data_checklist,Prüfstatus.Value = "Reserviert",Kanton = "GE")) , 'In Arbeit': CountRows(Filter(data_checklist,Prüfstatus.Value = "in Arbeit",Kanton = "GE")) , Fertig: CountRows(Filter(data_checklist,Prüfstatus.Value = "Fertig",Kanton = "GE",Text('Ende Prüfung',"[$-de]yyyy")=Text(Today(),"[$-de]yyyy"))) , Abgebrochen: CountRows(Filter(data_checklist,Prüfstatus.Value = "Abgebrochen",Kanton = "GE",Text('Ende Prüfung',"[$-de]yyyy")=Text(Today(),"[$-de]yyyy")))},
{Kanton: "GL" , Ziel: 2 , Reserviert: CountRows(Filter(data_checklist,Prüfstatus.Value = "Reserviert",Kanton = "GL")) , 'In Arbeit': CountRows(Filter(data_checklist,Prüfstatus.Value = "in Arbeit",Kanton = "GL")) , Fertig: CountRows(Filter(data_checklist,Prüfstatus.Value = "Fertig",Kanton = "GL",Text('Ende Prüfung',"[$-de]yyyy")=Text(Today(),"[$-de]yyyy"))) , Abgebrochen: CountRows(Filter(data_checklist,Prüfstatus.Value = "Abgebrochen",Kanton = "GL",Text('Ende Prüfung',"[$-de]yyyy")=Text(Today(),"[$-de]yyyy")))},
{Kanton: "GR" , Ziel: 5 , Reserviert: CountRows(Filter(data_checklist,Prüfstatus.Value = "Reserviert",Kanton = "GR")) , 'In Arbeit': CountRows(Filter(data_checklist,Prüfstatus.Value = "in Arbeit",Kanton = "GR")) , Fertig: CountRows(Filter(data_checklist,Prüfstatus.Value = "Fertig",Kanton = "GR",Text('Ende Prüfung',"[$-de]yyyy")=Text(Today(),"[$-de]yyyy"))) , Abgebrochen: CountRows(Filter(data_checklist,Prüfstatus.Value = "Abgebrochen",Kanton = "GR",Text('Ende Prüfung',"[$-de]yyyy")=Text(Today(),"[$-de]yyyy")))},
{Kanton: "JU" , Ziel: 5 , Reserviert: CountRows(Filter(data_checklist,Prüfstatus.Value = "Reserviert",Kanton = "JU")) , 'In Arbeit': CountRows(Filter(data_checklist,Prüfstatus.Value = "in Arbeit",Kanton = "JU")) , Fertig: CountRows(Filter(data_checklist,Prüfstatus.Value = "Fertig",Kanton = "JU",Text('Ende Prüfung',"[$-de]yyyy")=Text(Today(),"[$-de]yyyy"))) , Abgebrochen: CountRows(Filter(data_checklist,Prüfstatus.Value = "Abgebrochen",Kanton = "JU",Text('Ende Prüfung',"[$-de]yyyy")=Text(Today(),"[$-de]yyyy")))},
{Kanton: "LU" , Ziel: 9 , Reserviert: CountRows(Filter(data_checklist,Prüfstatus.Value = "Reserviert",Kanton = "LU")) , 'In Arbeit': CountRows(Filter(data_checklist,Prüfstatus.Value = "in Arbeit",Kanton = "LU")) , Fertig: CountRows(Filter(data_checklist,Prüfstatus.Value = "Fertig",Kanton = "LU",Text('Ende Prüfung',"[$-de]yyyy")=Text(Today(),"[$-de]yyyy"))) , Abgebrochen: CountRows(Filter(data_checklist,Prüfstatus.Value = "Abgebrochen",Kanton = "LU",Text('Ende Prüfung',"[$-de]yyyy")=Text(Today(),"[$-de]yyyy")))},
{Kanton: "NE" , Ziel: 8 , Reserviert: CountRows(Filter(data_checklist,Prüfstatus.Value = "Reserviert",Kanton = "NE")) , 'In Arbeit': CountRows(Filter(data_checklist,Prüfstatus.Value = "in Arbeit",Kanton = "NE")) , Fertig: CountRows(Filter(data_checklist,Prüfstatus.Value = "Fertig",Kanton = "NE",Text('Ende Prüfung',"[$-de]yyyy")=Text(Today(),"[$-de]yyyy"))) , Abgebrochen: CountRows(Filter(data_checklist,Prüfstatus.Value = "Abgebrochen",Kanton = "NE",Text('Ende Prüfung',"[$-de]yyyy")=Text(Today(),"[$-de]yyyy")))},
{Kanton: "NW" , Ziel: 1 , Reserviert: CountRows(Filter(data_checklist,Prüfstatus.Value = "Reserviert",Kanton = "NW")) , 'In Arbeit': CountRows(Filter(data_checklist,Prüfstatus.Value = "in Arbeit",Kanton = "NW")) , Fertig: CountRows(Filter(data_checklist,Prüfstatus.Value = "Fertig",Kanton = "NW",Text('Ende Prüfung',"[$-de]yyyy")=Text(Today(),"[$-de]yyyy"))) , Abgebrochen: CountRows(Filter(data_checklist,Prüfstatus.Value = "Abgebrochen",Kanton = "NW",Text('Ende Prüfung',"[$-de]yyyy")=Text(Today(),"[$-de]yyyy")))},
{Kanton: "OW" , Ziel: 1 , Reserviert: CountRows(Filter(data_checklist,Prüfstatus.Value = "Reserviert",Kanton = "OW")) , 'In Arbeit': CountRows(Filter(data_checklist,Prüfstatus.Value = "in Arbeit",Kanton = "OW")) , Fertig: CountRows(Filter(data_checklist,Prüfstatus.Value = "Fertig",Kanton = "OW",Text('Ende Prüfung',"[$-de]yyyy")=Text(Today(),"[$-de]yyyy"))) , Abgebrochen: CountRows(Filter(data_checklist,Prüfstatus.Value = "Abgebrochen",Kanton = "OW",Text('Ende Prüfung',"[$-de]yyyy")=Text(Today(),"[$-de]yyyy")))},
{Kanton: "SG" , Ziel: 12 , Reserviert: CountRows(Filter(data_checklist,Prüfstatus.Value = "Reserviert",Kanton = "SG")) , 'In Arbeit': CountRows(Filter(data_checklist,Prüfstatus.Value = "in Arbeit",Kanton = "SG")) , Fertig: CountRows(Filter(data_checklist,Prüfstatus.Value = "Fertig",Kanton = "SG",Text('Ende Prüfung',"[$-de]yyyy")=Text(Today(),"[$-de]yyyy"))) , Abgebrochen: CountRows(Filter(data_checklist,Prüfstatus.Value = "Abgebrochen",Kanton = "SG",Text('Ende Prüfung',"[$-de]yyyy")=Text(Today(),"[$-de]yyyy")))},
{Kanton: "SH" , Ziel: 3 , Reserviert: CountRows(Filter(data_checklist,Prüfstatus.Value = "Reserviert",Kanton = "SH")) , 'In Arbeit': CountRows(Filter(data_checklist,Prüfstatus.Value = "in Arbeit",Kanton = "SH")) , Fertig: CountRows(Filter(data_checklist,Prüfstatus.Value = "Fertig",Kanton = "SH",Text('Ende Prüfung',"[$-de]yyyy")=Text(Today(),"[$-de]yyyy"))) , Abgebrochen: CountRows(Filter(data_checklist,Prüfstatus.Value = "Abgebrochen",Kanton = "SH",Text('Ende Prüfung',"[$-de]yyyy")=Text(Today(),"[$-de]yyyy")))},
{Kanton: "SO" , Ziel: 4 , Reserviert: CountRows(Filter(data_checklist,Prüfstatus.Value = "Reserviert",Kanton = "SO")) , 'In Arbeit': CountRows(Filter(data_checklist,Prüfstatus.Value = "in Arbeit",Kanton = "SO")) , Fertig: CountRows(Filter(data_checklist,Prüfstatus.Value = "Fertig",Kanton = "SO",Text('Ende Prüfung',"[$-de]yyyy")=Text(Today(),"[$-de]yyyy"))) , Abgebrochen: CountRows(Filter(data_checklist,Prüfstatus.Value = "Abgebrochen",Kanton = "SO",Text('Ende Prüfung',"[$-de]yyyy")=Text(Today(),"[$-de]yyyy")))},
{Kanton: "SZ" , Ziel: 2 , Reserviert: CountRows(Filter(data_checklist,Prüfstatus.Value = "Reserviert",Kanton = "SZ")) , 'In Arbeit': CountRows(Filter(data_checklist,Prüfstatus.Value = "in Arbeit",Kanton = "SZ")) , Fertig: CountRows(Filter(data_checklist,Prüfstatus.Value = "Fertig",Kanton = "SZ",Text('Ende Prüfung',"[$-de]yyyy")=Text(Today(),"[$-de]yyyy"))) , Abgebrochen: CountRows(Filter(data_checklist,Prüfstatus.Value = "Abgebrochen",Kanton = "SZ",Text('Ende Prüfung',"[$-de]yyyy")=Text(Today(),"[$-de]yyyy")))},
{Kanton: "TG" , Ziel: 8 , Reserviert: CountRows(Filter(data_checklist,Prüfstatus.Value = "Reserviert",Kanton = "TG")) , 'In Arbeit': CountRows(Filter(data_checklist,Prüfstatus.Value = "in Arbeit",Kanton = "TG")) , Fertig: CountRows(Filter(data_checklist,Prüfstatus.Value = "Fertig",Kanton = "TG",Text('Ende Prüfung',"[$-de]yyyy")=Text(Today(),"[$-de]yyyy"))) , Abgebrochen: CountRows(Filter(data_checklist,Prüfstatus.Value = "Abgebrochen",Kanton = "TG",Text('Ende Prüfung',"[$-de]yyyy")=Text(Today(),"[$-de]yyyy")))},
{Kanton: "TI" , Ziel: 9 , Reserviert: CountRows(Filter(data_checklist,Prüfstatus.Value = "Reserviert",Kanton = "TI")) , 'In Arbeit': CountRows(Filter(data_checklist,Prüfstatus.Value = "in Arbeit",Kanton = "TI")) , Fertig: CountRows(Filter(data_checklist,Prüfstatus.Value = "Fertig",Kanton = "TI",Text('Ende Prüfung',"[$-de]yyyy")=Text(Today(),"[$-de]yyyy"))) , Abgebrochen: CountRows(Filter(data_checklist,Prüfstatus.Value = "Abgebrochen",Kanton = "TI",Text('Ende Prüfung',"[$-de]yyyy")=Text(Today(),"[$-de]yyyy")))},
{Kanton: "UR" , Ziel: 1 , Reserviert: CountRows(Filter(data_checklist,Prüfstatus.Value = "Reserviert",Kanton = "UR")) , 'In Arbeit': CountRows(Filter(data_checklist,Prüfstatus.Value = "in Arbeit",Kanton = "UR")) , Fertig: CountRows(Filter(data_checklist,Prüfstatus.Value = "Fertig",Kanton = "UR",Text('Ende Prüfung',"[$-de]yyyy")=Text(Today(),"[$-de]yyyy"))) , Abgebrochen: CountRows(Filter(data_checklist,Prüfstatus.Value = "Abgebrochen",Kanton = "UR",Text('Ende Prüfung',"[$-de]yyyy")=Text(Today(),"[$-de]yyyy")))},
{Kanton: "VD" , Ziel: 45 , Reserviert: CountRows(Filter(data_checklist,Prüfstatus.Value = "Reserviert",Kanton = "VD")) , 'In Arbeit': CountRows(Filter(data_checklist,Prüfstatus.Value = "in Arbeit",Kanton = "VD")) , Fertig: CountRows(Filter(data_checklist,Prüfstatus.Value = "Fertig",Kanton = "VD",Text('Ende Prüfung',"[$-de]yyyy")=Text(Today(),"[$-de]yyyy"))) , Abgebrochen: CountRows(Filter(data_checklist,Prüfstatus.Value = "Abgebrochen",Kanton = "VD",Text('Ende Prüfung',"[$-de]yyyy")=Text(Today(),"[$-de]yyyy")))},
{Kanton: "VS" , Ziel: 14 , Reserviert: CountRows(Filter(data_checklist,Prüfstatus.Value = "Reserviert",Kanton = "VS")) , 'In Arbeit': CountRows(Filter(data_checklist,Prüfstatus.Value = "in Arbeit",Kanton = "VS")) , Fertig: CountRows(Filter(data_checklist,Prüfstatus.Value = "Fertig",Kanton = "VS",Text('Ende Prüfung',"[$-de]yyyy")=Text(Today(),"[$-de]yyyy"))) , Abgebrochen: CountRows(Filter(data_checklist,Prüfstatus.Value = "Abgebrochen",Kanton = "VS",Text('Ende Prüfung',"[$-de]yyyy")=Text(Today(),"[$-de]yyyy")))},
{Kanton: "ZG" , Ziel: 2 , Reserviert: CountRows(Filter(data_checklist,Prüfstatus.Value = "Reserviert",Kanton = "ZG")) , 'In Arbeit': CountRows(Filter(data_checklist,Prüfstatus.Value = "in Arbeit",Kanton = "ZG")) , Fertig: CountRows(Filter(data_checklist,Prüfstatus.Value = "Fertig",Kanton = "ZG",Text('Ende Prüfung',"[$-de]yyyy")=Text(Today(),"[$-de]yyyy"))) , Abgebrochen: CountRows(Filter(data_checklist,Prüfstatus.Value = "Abgebrochen",Kanton = "ZG",Text('Ende Prüfung',"[$-de]yyyy")=Text(Today(),"[$-de]yyyy")))},
{Kanton: "ZH" , Ziel: 19 , Reserviert: CountRows(Filter(data_checklist,Prüfstatus.Value = "Reserviert",Kanton = "ZH")) , 'In Arbeit': CountRows(Filter(data_checklist,Prüfstatus.Value = "in Arbeit",Kanton = "ZH")) , Fertig: CountRows(Filter(data_checklist,Prüfstatus.Value = "Fertig",Kanton = "ZH",Text('Ende Prüfung',"[$-de]yyyy")=Text(Today(),"[$-de]yyyy"))) , Abgebrochen: CountRows(Filter(data_checklist,Prüfstatus.Value = "Abgebrochen",Kanton = "ZH",Text('Ende Prüfung',"[$-de]yyyy")=Text(Today(),"[$-de]yyyy")))}
)

 

 

  • But how can I simplify this expression?

I could provide a list with all "Kanton" and "Ziel" values. I thought maybe with a ForAll expression, but I can't figure it out. A solution with AddColumns would also work. I need this because I have to create a other more complex expression...

 

Thanks for any suggestions!

 

1 ACCEPTED SOLUTION

Accepted Solutions
v-bofeng-msft
Community Support
Community Support

Hi @cyril :

You could try:

ClearCollect(
  TheForAllBody,
  {TheZiel:11,TheKanton:"AG"},
  {TheZiel:1,TheKanton:"AI"},
  {TheZiel:1,TheKanton:"AR"},
  {TheZiel:47,TheKanton:"BE"},
  {TheZiel:7,TheKanton:"BL"},
  {TheZiel:5,TheKanton:"BS"},
  {TheZiel:21,TheKanton:"FR"},
  {TheZiel:7,TheKanton:"GE"},
  {TheZiel:2,TheKanton:"GL"}
);
Clear(colStatExpert);
ForAll(
   TheForAllBody,
   Collect(colStatExpert,
           {
            Kanton: TheForAllBody[@TheKanton],
            Ziel:TheForAllBody[@TheZiel],
            Reserviert:CountRows(Filter(data_checklist,Prüfstatus.Value = "Reserviert",Kanton = TheForAllBody[@TheKanton])),
            'In Arbeit': CountRows(Filter(data_checklist,Prüfstatus.Value = "in Arbeit",Kanton = "AG")) , 
            Fertig: CountRows(Filter(data_checklist,Prüfstatus.Value = "Fertig",Kanton = TheForAllBody[@TheKanton],Text('Ende Prüfung',"[$-de]yyyy")=Text(Today(),"[$-de]yyyy"))) , 
            Abgebrochen: CountRows(Filter(data_checklist,Prüfstatus.Value = "Abgebrochen",Kanton = TheForAllBody[@TheKanton],Text('Ende Prüfung',"[$-de]yyyy")=Text(Today(),"[$-de]yyyy")))
            }
    )
)

Best Regards,

Bof

View solution in original post

1 REPLY 1
v-bofeng-msft
Community Support
Community Support

Hi @cyril :

You could try:

ClearCollect(
  TheForAllBody,
  {TheZiel:11,TheKanton:"AG"},
  {TheZiel:1,TheKanton:"AI"},
  {TheZiel:1,TheKanton:"AR"},
  {TheZiel:47,TheKanton:"BE"},
  {TheZiel:7,TheKanton:"BL"},
  {TheZiel:5,TheKanton:"BS"},
  {TheZiel:21,TheKanton:"FR"},
  {TheZiel:7,TheKanton:"GE"},
  {TheZiel:2,TheKanton:"GL"}
);
Clear(colStatExpert);
ForAll(
   TheForAllBody,
   Collect(colStatExpert,
           {
            Kanton: TheForAllBody[@TheKanton],
            Ziel:TheForAllBody[@TheZiel],
            Reserviert:CountRows(Filter(data_checklist,Prüfstatus.Value = "Reserviert",Kanton = TheForAllBody[@TheKanton])),
            'In Arbeit': CountRows(Filter(data_checklist,Prüfstatus.Value = "in Arbeit",Kanton = "AG")) , 
            Fertig: CountRows(Filter(data_checklist,Prüfstatus.Value = "Fertig",Kanton = TheForAllBody[@TheKanton],Text('Ende Prüfung',"[$-de]yyyy")=Text(Today(),"[$-de]yyyy"))) , 
            Abgebrochen: CountRows(Filter(data_checklist,Prüfstatus.Value = "Abgebrochen",Kanton = TheForAllBody[@TheKanton],Text('Ende Prüfung',"[$-de]yyyy")=Text(Today(),"[$-de]yyyy")))
            }
    )
)

Best Regards,

Bof

Helpful resources

Announcements
Power Apps Africa Challenge 2022

Power Apps Africa Challenge

Your chance to join an engaging competition of Power Platform enthusiasts.

Super User 2 - 2022 Congratulations

Welcome Super Users

The Super User program for 2022 - Season 2 has kicked off!

September Events 2022

Check out all of these events

Attend in person or online, there are incredible conferences and events happening all throughout the month of September.

Government Carousel

New forum: GCC, GCCH, DoD - Federal App Makers (FAM)

In response to the unique and evolving requirements of the United States public sector, Microsoft has created Power Apps US Government.

Users online (1,826)