There are mulitple ways of doing this:
Calculated column using FILTER:
Column 1 =
VAR CurrentID = rjap[ID]
VAR CurrentName = rjap[M Name]
VAR RowsWithSameID =
FILTER ( rjap, rjap[ID] = CurrentID )
VAR Result =
FILTER (
RowsWithSameID,
LEFT ( rjap[M Name], 3 ) = "Ann"
|| LEFT ( rjap[M Name], 1 ) = "B"
)
RETURN
IF ( COUNTROWS ( Result ) >= 2, "A, B", CurrentName )

Calculated column using CALCULATETABLE
Column 2 =
VAR CurrentID = rjap[ID]
VAR CurrentName = rjap[M Name]
VAR Result =
CALCULATETABLE (
rjap,
LEFT ( rjap[M Name], 3 ) = "Ann"
|| LEFT ( rjap[M Name], 1 ) = "B",
rjap[ID] = CurrentID,
REMOVEFILTERS ( rjap )
)
RETURN
IF ( COUNTROWS ( Result ) >= 2, "A, B", CurrentName )

Measure using FILTER:
Measure 1 =
VAR CurrentID = SELECTEDVALUE ( rjap[ID] )
VAR CurrentName = SELECTEDVALUE ( rjap[M Name] )
VAR RowsWithSameID =
FILTER (
ALLSELECTED ( rjap ),
rjap[ID] = CurrentID
)
VAR Result =
FILTER (
RowsWithSameID,
LEFT ( rjap[M Name], 3 ) = "Ann"
|| LEFT ( rjap[M Name], 1 ) = "B"
)
RETURN
IF ( COUNTROWS ( Result ) >= 2, "A, B", CurrentName )

Measure using CALCULATETABLE
Measure 2 =
VAR CurrentID = SELECTEDVALUE ( rjap[ID] )
VAR CurrentName = SELECTEDVALUE ( rjap[M Name] )
VAR Result =
CALCULATETABLE (
rjap,
LEFT ( rjap[M Name], 3 ) = "Ann"
|| LEFT ( rjap[M Name], 1 ) = "B",
rjap[ID] = CurrentID,
ALLSELECTED ( rjap )
)
RETURN
IF ( COUNTROWS ( Result ) >= 2, "A, B", CurrentName )

I have used ALLSELECTED so if in case you have a selection over a slicer you will only see result for the selected IDs
