Home » List Numbers Appearing Repeatedly

List Numbers Appearing Repeatedly

Provide a formula to list numbers which appear more than once in Range A2:A20 and have both B and C in B2:B20. 2, 4 & 8 appear more than once. But 2 has only C whereas 4 & 8 have both B & C. Hence answer would be 4, 8.

📌 Challenge Details and Links
ExcelBI Excel Challenge Number: 6
Challenge Difficulty: ⭐️⭐️
📥Download Sample File
📥Link to the solutions on LinkedIn

Solving the challenge of List Numbers Appearing Repeatedly with Power Query

Power Query solution 1 for List Numbers Appearing Repeatedly, proposed by Aditya Kumar Darak 🇮🇳:
let
  Source = Excel.CurrentWorkbook(){[Name = "data"]}[Content], 
  Calculation = Table.Group(
    Source, 
    {"Data"}, 
    {{"Calculation", each List.Count([Alpha]) > 2 and List.ContainsAll([Alpha], {"B", "C"})}}
  ), 
  Filtered = Table.SelectRows(Calculation, each ([Calculation] = true))[Data], 
  Final = Text.Combine(List.Transform(Filtered, Text.From), ", ")
in
  Final

Solving the challenge of List Numbers Appearing Repeatedly with Excel

Excel solution 1 for List Numbers Appearing Repeatedly, proposed by Rick Rothstein:
=TEXTJOIN(", ",1,UNIQUE(LET(R,A2:A20,T,CONCAT(" "&R&OFFSET(R,,1)&" "),IF(ISNUMBER(FIND(" "&R&"B ",T)*FIND(" "&R&"C ",T)),R,""))))
Excel solution 2 for List Numbers Appearing Repeatedly, proposed by 🇰🇷 Taeyong Shin:
=ARRAYTOTEXT(
    UNIQUE(
         FILTER(
             A2:A20,
              MMULT(
                  SIGN(
                      COUNTIFS(
                          A2:A20,
                           A2:A20,
                           B2:B20,
                           {"B",
                          "C"}
                      )
                  ),
                   TOCOL(
                       N(
                           +A2:B2
                       )+1
                   )
              )=2
         ) 
    )
)
Excel solution 3 for List Numbers Appearing Repeatedly, proposed by Julian Poeltl:
=LET(
    D,
    A2:A20,
    A,
    B2:B20,
    B,
    D&A,
    U,
    UNIQUE(
        D
    ),
    M,
    FILTER(
        U,
        COUNTIF(
            D,
            U
        )>1
    ),
    TEXTJOIN(
        ", ",
        ,
        FILTER(
            M,
            IFERROR(
                MAP(
                    M,
                    LAMBDA(
                        A,
                        ROWS(
                            FILTER(
                                B,
                                B=A&"B"
                            )
                        )*ROWS(
                            FILTER(
                                B,
                                B=A&"C"
                            )
                        )
                    )
                ),
                0
            )
        )
    )
)
Excel solution 4 for List Numbers Appearing Repeatedly, proposed by Timothée BLIOT:
=UNIQUE(FILTER($A$2:$A$20,
    
(COUNTIF(
    $A$2:$A$20,
     $A$2:$A$20
)>1) *
(COUNTIFS(
    $A$2:$A$20,
     $A$2:$A$20,
     $B$2:$B$20,
     "B"
) > 0) *(COUNTIFS(
    $A$2:$A$20,
     $A$2:$A$20,
     $B$2:$B$20,
     "C"
) > 0),
     "No value"))
Excel solution 5 for List Numbers Appearing Repeatedly, proposed by Luan Rodrigues:
=UNIQUE(FILTER(A2:B20,(B2:B20<>"A")*(B2:B20="B")))
Excel solution 6 for List Numbers Appearing Repeatedly, proposed by Bhavya Gupta:
=LET(
    Data,
     A2:A20,
     Alpha,
     B2:B20,
     Criteria,
     {"B",
    "C"},
     UNIQUE(
         FILTER(
             Data,
              BYROW(
                  NOT(
                      ISNA(
                          XLOOKUP(
                              Data&Criteria,
                               Data&Alpha,
                               Data
                          )
                      )
                  ),
                  LAMBDA(
                      x,
                       PRODUCT(
                           --x
                       )
                  )
              )
         )
     )
)
Excel solution 7 for List Numbers Appearing Repeatedly, proposed by Bhavya Gupta:
=LET(Data,
    A2:A20,
    Alpha,
    B2:B20,
    UNIQUE(FILTER(Data,
     MAP(Data,
     LAMBDA(a,
    (SUM(--(MAP(
        UNIQUE(
            FILTER(
                Alpha,
                 Data=a
            )
        ),
        LAMBDA(
            x,
             OR(
                 x={"B",
                 "C"}
             )
        )
    )))=2)*(SUM(--(Data=a))>1))))))
Excel solution 8 for List Numbers Appearing Repeatedly, proposed by Charles Roldan:
=LET(
    Data,
     A2:A20,
     Alpha,
     B2:B20,
     Criteria,
     {"B",
    "C"},
     ARRAYTOTEXT(
         UNIQUE(
             FILTER(
                 Data,
                  BYROW(
                      ISNUMBER(
                          XMATCH(
                              Data & Criteria,
                               Data & Alpha
                          )
                      ),
                       LAMBDA(
                           x,
                            AND(
                                x
                            )
                       )
                  )
             )
         )
     )
)
Excel solution 9 for List Numbers Appearing Repeatedly, proposed by Charles Roldan:
=LET(
 Data, A2:A20,
 Alpha, B2:B20,
 a, DROP(PIVOTBY(Data, Alpha, Alpha, COUNTA, , 0, , 0), 1),
 FILTER(TAKE(a, , 1), BYROW(N(DROP(a, , 1)), LAMBDA(x, AND(x >= {0, 1, 1}))))
)
Excel solution 10 for List Numbers Appearing Repeatedly, proposed by CA Raghunath Gundi:
=UNIQUE(TAKE(FILTER(A2:B20,COUNTIFS(A2:A20,A2:A20,B2:B20,"B")*COUNTIFS(A2:A20,A2:A20,B2:B20,"C")),,1))
Excel solution 11 for List Numbers Appearing Repeatedly, proposed by Jardiel Euflázio:
=LET(
 a,
    UNIQUE(
        A2:B20
    ),
    
 b,
    FILTER(a,
    (INDEX(
        a,
        ,
        2
    )="B")+(INDEX(
        a,
        ,
        2
    )="C")),
    
 c,
    INDEX(
        b,
        ,
        1
    ),
    
 TEXTJOIN(
     ", ",
     ,
     FILTER(
         c,
         MATCH(
             c,
             c,
             0
         )<>SEQUENCE(
             ROWS(
                 c
             )
         )
     )
 )
 )
Excel solution 12 for List Numbers Appearing Repeatedly, proposed by Jardiel Euflázio:
=TEXTJOIN(
",",
,
UNIQUE(

FILTER(

A2:A20,

COUNTIFS(A2:A20,A2:A20,B2:B20,"B")*
COUNTIFS(A2:A20,A2:A20,B2:B20,"C")

)

)
)
Excel solution 13 for List Numbers Appearing Repeatedly, proposed by Cary Ballard, DML:
=LET(
 a, A2:A19,
 b, B2:B19,
 UNIQUE(FILTER(a, COUNTIFS(a, a, b, "B") * COUNTIFS(a, a, b, "c")))
)
Excel solution 14 for List Numbers Appearing Repeatedly, proposed by Rajesh Sinha:
=UNIQUE(
    FILTER(
        A2:A20,
        B2:B20="B"
    )
)
or
=UNIQUE(
    FILTER(
        A2:A20,
        COUNTIFS(
            A2:A20,
            A2:A20,
            B2:B20,
            "B"
        )*COUNTIFS(
            A2:A20,
            A2:A20,
            B2:B20,
            "C"
        )
    )
)
Excel solution 15 for List Numbers Appearing Repeatedly, proposed by Rajesh Sinha:
=IFERROR(
    INDEX(
        A2:A20,
         MATCH(
             0,
              COUNTIF(
                  C1:$C$1,
                   A2:A20
              )+IF(
                  COUNTIF(
                      A2:A20,
                       A2:A20
                  )>1,
                   0,
                   1
              ),
              0
         )
    ),
     ""
)}

N.B. Finish with Crrl+Shift+Enter then fill down & Right Formula with adjust cell reference for Duplicates in column B.

Other is Dynamic array combination of UNIQUE & FILTER in F2.

=UNIQUE(
    FILTER(
        A2:A20,
        COUNTIF(
            A2:A20,
            A2:A20
        )>1,
        ""
    ),
    FALSE
)
Excel solution 16 for List Numbers Appearing Repeatedly, proposed by Rajesh Sinha:
=UNIQUE(FILTER(A2:A20,COUNTIFS(A2:A20,A2:A20,B2:B14,"B")*COUNTIFS(A2:A20,A2:A20,B2:B20,"C")))
or 
=UNIQUE(FILTER(A2:A20,B2:B20="B"))
Excel solution 17 for List Numbers Appearing Repeatedly, proposed by red craven:
=LET(
    f,
    LAMBDA(
        x,
        UNIQUE(
            FILTER(
                A2:A20,
                B2:B20=x
            )
        )
    ),
    
    b,
    f(
        "B"
    ),
    
    TEXTJOIN(
        ", ",
        1,
        XLOOKUP(
            f(
                "C"
            ),
            b,
            b,
            ""
        )
    )
)

Solving the challenge of List Numbers Appearing Repeatedly with Python in Excel

Python in Excel solution 1 for List Numbers Appearing Repeatedly, proposed by Aditya Kumar Darak 🇮🇳:
data = xl("A1:B20", True)
group = data.groupby("Data").agg(Count=("Data", "size"), Alpha=("Alpha", list))
filter = group[
 (group["Count"] > 1) & group["Alpha"].map(lambda x: {"B", "C"}.issubset(set(x)))
]
result = filter.index.values
                    
                  

Solving the challenge of List Numbers Appearing Repeatedly with DAX

DAX solution 1 for List Numbers Appearing Repeatedly, proposed by Zoran Milokanović:
DEFINE
MEASURE Input[AppearanceB] = SUMX(Input, IF(Input[Alpha] = "B", 1, 0))
MEASURE Input[AppearanceC] = SUMX(Input, IF(Input[Alpha] = "C", 1, 0))
MEASURE Input[Appearance] = COUNTROWS(Input)
EVALUATE
{
 CONCATENATEX(
 FILTER(
 SUMMARIZECOLUMNS(
 Input[Data],
 "Total", [Appearance],
 "B", [AppearanceB],
 "C", [AppearanceC]
 ),
 [Total] > 1 && [B] > 0 && [C]
 ),
 Input[Data],
 ", "
 )
}
                    
                  

&&&

Leave a Reply