
Esta es una pregunta que puede que me resulte difícil explicar, así que tengan paciencia.
En una hoja tengo una columna que tiene varias celdas, algunas de las cuales están en blanco, otras tienen un solo valor y otras tienen más de un valor. En otra hoja tengo una lista de esos valores con una vivienda adecuada. Aquí hay un ejemplo de con qué estoy trabajando:
Hoja1:
C1: Team Names
C2: crimson-tide, bulldogs
C3: bulldogs
C4: (blank)
C5: canucks
Hoja2:
A1: Football B1: Basketball C1: Hockey
A2: crimson-tide B2: celtics C2: maple-leafs
A3: bulldogs B3: mavericks C3: oilers
A4: tigers B4: gonzaga-bulldogs C4: canucks
A5: longhorns B5: warriors C5: bruins
Salida esperada en la Hoja 1:
D2: Football
D3: Football
D4: No Sport Found
D5: Hockey
Salida real:
D2: (blank)
D3: FootballBasketBall
D4: (blank)
D5: Hockey
Quiero iterar a través de la Hoja1!C2:C5 y cualquier valor que coincida con la Hoja2!A2:C5 mostrará el encabezado apropiado de la Hoja2!A1:C1. Por ejemplo, Hoja1!C2 diría "Fútbol", ya que Crimson-tide o Bulldogs están debajo del encabezado de fútbol en la Hoja2!A1.
Lo que puede o no ser importante agregar: ningún valor en la Hoja1!C tendrá un equipo que estará en otro encabezado. Crimson-tide solo estará debajo del encabezado de fútbol en la Hoja 2, no tanto en el encabezado de fútbol como en el de baloncesto, por ejemplo. Hasta ahora solo he podido mostrar un resultado Verdadero/Falso si el equipo de la Columna C coincide con un equipo de la Hoja 2. No puedo entender cómo mostrar el encabezado apropiado. ¡Por favor ayuda!
Respuesta1
Intente ingresar la siguiente fórmula en la celdaD2
=LET(
_S2Sports, Sheet2!A$2:C$5,
_Sports, TOCOL(IFS(_S2Sports<>"",Sheet2!A$1:C$1),2,1),
_Teams, TOCOL(_S2Sports,1,1),
_Match, XLOOKUP(TEXTSPLIT(C2,,", "),_Teams,_Sports,"No Team Found"),
IFERROR(TEXTJOIN("|",1,UNIQUE(_Match)),"No Sport Found"))
Usando una única fórmula de matriz dinámica:
=LET(
_S2Sports, Sheet2!A$2:C$5,
_Sports, TOCOL(IFS(_S2Sports<>"",Sheet2!A$1:C$1),2,1),
_Teams, TOCOL(_S2Sports,1,1),
BYROW(C2:C12, LAMBDA(x, LET(_Match, XLOOKUP(TEXTSPLIT(x,,", "),_Teams,_Sports,"No Team Found"),
IFERROR(TEXTJOIN("|",1,UNIQUE(_Match)),"No Sport Found")))))
Si no tienes acceso a TOCOL()
& TEXTSPLIT()
entonces:
=LET(
_Sports, Sheet2!$A$2:$C$5,
_Found, N(ISNUMBER(SEARCH(", "&_Sports&", ",", "&$C2&", "))),
_MatrixCal, MMULT(SEQUENCE(,ROWS(_Sports))^0,_Found),
_Output, FILTER(Sheet2!$A$1:$C$1,_MatrixCal,"No Team Found"),
IF(C2="","No Sport Found",TEXTJOIN("|",,_Output)))