for 3 columns + everyone with everyone no matter of rows:
=ARRAYFORMULA(SPLIT(INDEX(QUERY(TRANSPOSE(QUERY(TRANSPOSE("♥"&QUERY(
IF(INDEX(SPLIT(QUERY(IFNA(
{TRANSPOSE(SPLIT(REPT(CONCATENATE(A1:A&CHAR(9)), COUNTA(B1:B)), CHAR(9)))&"♦"&
TRANSPOSE(SPLIT(CONCATENATE(REPT(B1:B&CHAR(9), COUNTA(A1:A))), CHAR(9)));
TRANSPOSE(SPLIT(REPT(CONCATENATE(B1:B&CHAR(9)), COUNTA(C1:C)), CHAR(9)))&"♦"&
TRANSPOSE(SPLIT(CONCATENATE(REPT(C1:C&CHAR(9), COUNTA(B1:B))), CHAR(9)));
TRANSPOSE(SPLIT(REPT(CONCATENATE(A1:A&CHAR(9)), COUNTA(C1:C)), CHAR(9)))&"♦"&
TRANSPOSE(SPLIT(CONCATENATE(REPT(C1:C&CHAR(9), COUNTA(A1:A))), CHAR(9)))}),
"where Col1 is not null"), "♦"),,1)>INDEX(SPLIT(QUERY(IFNA(
{TRANSPOSE(SPLIT(REPT(CONCATENATE(A1:A&CHAR(9)), COUNTA(B1:B)), CHAR(9)))&"♦"&
TRANSPOSE(SPLIT(CONCATENATE(REPT(B1:B&CHAR(9), COUNTA(A1:A))), CHAR(9)));
TRANSPOSE(SPLIT(REPT(CONCATENATE(B1:B&CHAR(9)), COUNTA(C1:C)), CHAR(9)))&"♦"&
TRANSPOSE(SPLIT(CONCATENATE(REPT(C1:C&CHAR(9), COUNTA(B1:B))), CHAR(9)));
TRANSPOSE(SPLIT(REPT(CONCATENATE(A1:A&CHAR(9)), COUNTA(C1:C)), CHAR(9)))&"♦"&
TRANSPOSE(SPLIT(CONCATENATE(REPT(C1:C&CHAR(9), COUNTA(A1:A))), CHAR(9)))}),
"where Col1 is not null"), "♦"),,2), {INDEX(SPLIT(QUERY(IFNA(
{TRANSPOSE(SPLIT(REPT(CONCATENATE(A1:A&CHAR(9)), COUNTA(B1:B)), CHAR(9)))&"♦"&
TRANSPOSE(SPLIT(CONCATENATE(REPT(B1:B&CHAR(9), COUNTA(A1:A))), CHAR(9)));
TRANSPOSE(SPLIT(REPT(CONCATENATE(B1:B&CHAR(9)), COUNTA(C1:C)), CHAR(9)))&"♦"&
TRANSPOSE(SPLIT(CONCATENATE(REPT(C1:C&CHAR(9), COUNTA(B1:B))), CHAR(9)));
TRANSPOSE(SPLIT(REPT(CONCATENATE(A1:A&CHAR(9)), COUNTA(C1:C)), CHAR(9)))&"♦"&
TRANSPOSE(SPLIT(CONCATENATE(REPT(C1:C&CHAR(9), COUNTA(A1:A))), CHAR(9)))}),
"where Col1 is not null"), "♦"),,2), INDEX(SPLIT(QUERY(IFNA(
{TRANSPOSE(SPLIT(REPT(CONCATENATE(A1:A&CHAR(9)), COUNTA(B1:B)), CHAR(9)))&"♦"&
TRANSPOSE(SPLIT(CONCATENATE(REPT(B1:B&CHAR(9), COUNTA(A1:A))), CHAR(9)));
TRANSPOSE(SPLIT(REPT(CONCATENATE(B1:B&CHAR(9)), COUNTA(C1:C)), CHAR(9)))&"♦"&
TRANSPOSE(SPLIT(CONCATENATE(REPT(C1:C&CHAR(9), COUNTA(B1:B))), CHAR(9)));
TRANSPOSE(SPLIT(REPT(CONCATENATE(A1:A&CHAR(9)), COUNTA(C1:C)), CHAR(9)))&"♦"&
TRANSPOSE(SPLIT(CONCATENATE(REPT(C1:C&CHAR(9), COUNTA(A1:A))), CHAR(9)))}),
"where Col1 is not null"), "♦"),,1)}, SPLIT(QUERY(IFNA(
{TRANSPOSE(SPLIT(REPT(CONCATENATE(A1:A&CHAR(9)), COUNTA(B1:B)), CHAR(9)))&"♦"&
TRANSPOSE(SPLIT(CONCATENATE(REPT(B1:B&CHAR(9), COUNTA(A1:A))), CHAR(9)));
TRANSPOSE(SPLIT(REPT(CONCATENATE(B1:B&CHAR(9)), COUNTA(C1:C)), CHAR(9)))&"♦"&
TRANSPOSE(SPLIT(CONCATENATE(REPT(C1:C&CHAR(9), COUNTA(B1:B))), CHAR(9)));
TRANSPOSE(SPLIT(REPT(CONCATENATE(A1:A&CHAR(9)), COUNTA(C1:C)), CHAR(9)))&"♦"&
TRANSPOSE(SPLIT(CONCATENATE(REPT(C1:C&CHAR(9), COUNTA(A1:A))), CHAR(9)))}),
"where Col1 is not null"), "♦")), "where Col1<>Col2")),,9^9)),
"select Col1,count(Col1)
group by Col1
order by count(Col1) desc
label count(Col1)''"),,1), "♥"))
