Filters and PU-LAST Function


Hello everybody

I have the following problem and hope that someone has a possible solution.

In the eventlog I have over 30 activities. For an analysis sheet I have to restrict to 8 specific events. All the analyzes in this sheet should not look at the remaining 22 at all.

My attempt:


This does not work if I use the PU_LAST function in the OLAP table. The PU_Last function takes activities even though they have been filtered out.

I hope it is understandable where my problem is

Best regards
Andi K.


Hi Andy.

This is the way how PU_* functions work. Ask guys from Celonis why they choose to implement it that way :grinning:. You have to apply same filter as 3rd argument of function. Something like


Yes, that’s what we tried as well…the Problem is that there are some activities, lets say ‘Activity1’, ‘Activity2’ and ‘Activity3’ that give our CASEs a special feature…and there is some activities, lets say ‘Activity4’, ‘Activity5’ that take this feature away if they happen after the ‘Activity1’, ‘Activity2’ and ‘Activity3’ . We would like to determine, whether (and how many) CASEs have this special feature.

The examples:
‘Activity6’->‘Activity7’->‘Activity2’ (has this special feature)
‘Activity8’->‘Activity7’->‘Activity2’->‘Activity6’->‘Activity5’ (doesn’t have this special feature)
‘Activity30’->‘Activity6’->‘Activity2’->‘Activity6’->‘Activity5’ '->‘Activity1’ (has this special feature)
‘Activity30’->‘Activity6’->‘Activity2’->‘Activity6’->‘Activity5’ '->‘Activity1’ ->‘Activity15’->‘Activity10’ (has this special feature)

So what we want is basically to look at the end of the process for each CASE and go backwards until we find either ‘Activity1’, ‘Activity2’, ‘Activity3’ or ‘Activity4’ or ‘Activity5’…the other activities being absolutely irrelevant.



Hi Andi,

The way I understand your problem is that you want to create a sheet filter so that only those cases are included in the analysis which include activities 1,2 or 3, where these activities are not followed at any time by activities 4 or 5.

Here is the way I’d do it:

FILTER PROCESS NOT EQUALS (<%=Activity_Group_1%>) TO ANY TO (<%=Activity_Group_2%>);

Where Activity_Group_1 contains ‘Activity1’, ‘Activity2’ and ‘Activity3’ and Activity_Group_2 contains ‘Activity4’, ‘Activity5’…

In case you want to have these conditions within a KPI in for example an OLAP Table, you can adjust the PU function (when calculating the PU_LAST function without specifying a certain condition, it just looks at the last entry for that case, even when you have applied a sheet filter)

PU_LAST("cases", "events"."field", "CEL_LBU_ACTIVITIES"."ACTIVITY_DE" IN (<%=Activity_Group_1%>) AND PROCESS NOT EQUALS (<%=Activity_Group_1%>) TO ANY TO (<%=Activity_Group_2%>))

Please let me know if this works for you.

Best Regards,