In a calculated column, you can use LOOKUPVALUE
to find the Volume for ID 1234 and the corresponding Product - then choose how to calculate your output based on whether a matching value was returned or not:
New Column =
VAR LookupID = 1234
VAR LookupVolume =
LOOKUPVALUE (
Table1[Volume],
Table1[ID], LookupID,
Table1[Product], Table1[Product]
)
RETURN
Table1[X.Value] & " * " &
IF (
ISBLANK ( LookupVolume ),
Table1[Volume],
LookupVolume
)
Worked example PBIX file: https://pwrbi.com/so_55916210/
EDIT
More complex as a measure - not entirely clear how you intend using it, but this approach creates a separate table for a list of ID values, to be used as a slicer:
ID List = DISTINCT ( Table1[ID] )
Then we can use measure:
New Measure =
SUMX (
Table1,
VAR LookupID =
IF (
HASONEVALUE ( 'ID List'[ID] ),
VALUES ( 'ID List'[ID] ),
BLANK()
)
VAR LookupProduct =
IF (
HASONEVALUE ( Table1[Product] ),
VALUES ( Table1[Product] ),
BLANK()
)
VAR EffectiveVolume =
CALCULATE (
SUM ( Table1[Volume] ),
ALL ( Table1 ),
Table1[ID] = LookupID,
Table1[Product] = LookupProduct
)
RETURN
Table1[X.Value] *
IF (
ISBLANK ( EffectiveVolume ),
Table1[Volume],
EffectiveVolume
)
)
Updated PBIX file: https://pwrbi.com/so_55916210-2/