Forum Discussion

BekahLoSurdo's avatar
BekahLoSurdo
Resolver IV
7 years ago
Solved

CONCATENATEX with Multiple Columns

Hi everyone,

 

Is there a way to take advantage of CONCATENATEX's delimiter feature (specifically: add a comma when there's another item in the list, don't add a comma for the last or only item) across a ROW vs. down a COLUMN?

 

I need to list blank fields as follows:

Source: 

IDField1Field1ValidField2
ABC123N 
DEF Y123
GHI123N123
JKL N 
MNO123N 
PQR N123
STU123N123
VWX Y 

 

Desired outcome (Field 1 is considered valid for either not being blank OR for Field1Valid = "Y"):

IDMissingFields
ABCField2
DEF 
GHI 
JKLField1, Field2
MNOField2
PQRField1 
STU 
VWXField2

 

So far I've tried:

MissingField(s) = 
VAR _F1 = 
    IF( 'Sample'[Field1] <> BLANK() || 'Sample'[Field1Valid] = "Y",
    BLANK(),
    "Field1" )
VAR _F2 =
    IF( 'Sample'[Field2] <> BLANK(),
    BLANK(),
    "Field2" )
RETURN
_F1 & ", " & _F2
MissingField(s) 2 = 
VAR _F1 = 
    IF( 'Sample'[Field1] <> BLANK() || 'Sample'[Field1Valid] = "Y",
    BLANK(),
    "Field1, " )
VAR _F2 =
    IF( 'Sample'[Field2] <> BLANK(),
    BLANK(),
    "Field2" )
RETURN
CONCATENATEX( CALCULATETABLE( 'Sample', ALLEXCEPT( 'Sample', 'Sample'[ID] ) ), _F1 & _F2 )

I am close but I need help with the commas:

Thank you in advance!

  • BekahLoSurdo add condition in following

     

    MissingField(s) = 
    VAR _F1 = 
        IF( 'Sample'[Field1] <> BLANK() || 'Sample'[Field1Valid] = "Y",
        BLANK(),
        "Field1" )
    VAR _F2 =
        IF( 'Sample'[Field2] <> BLANK(),
        BLANK(),
        "Field2" )
    RETURN
    SWITCH( TRUE(),
    __F1 == BLANK() && __F2 == BLANK(), "",
    __F2 == BLANK(), __F1,
    __F1 == BLANK(), __F2,
    _F1 & ", " & _F2
    )

1 Reply

  • BekahLoSurdo add condition in following

     

    MissingField(s) = 
    VAR _F1 = 
        IF( 'Sample'[Field1] <> BLANK() || 'Sample'[Field1Valid] = "Y",
        BLANK(),
        "Field1" )
    VAR _F2 =
        IF( 'Sample'[Field2] <> BLANK(),
        BLANK(),
        "Field2" )
    RETURN
    SWITCH( TRUE(),
    __F1 == BLANK() && __F2 == BLANK(), "",
    __F2 == BLANK(), __F1,
    __F1 == BLANK(), __F2,
    _F1 & ", " & _F2
    )