es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Es posible hacer referencia a información que actualmente solo se encuentra dentro de una consulta de hoja de cálculo de Google?

Tengo una consulta (=QUERY(A9:N,"Select C,D,E,F,G,H,I where B contains """&L3&"""")) que devuelve una fila de encabezado y una fila donde las respuestas son verdaderas o falsas, dependiendo de las casillas de verificación en la matriz de consulta.

Estoy intentando encontrar cualquier columna que tenga verdaderos y devolver el encabezado en un TEXTJOIN, para que obtenga una celda con todos los encabezados verdaderos, si eso tiene sentido.

Mi intento actual es con una fórmula de matriz

=TEXTJOIN(" | ",true ,ArrayFormula(if(QUERY(A9:N,"Select C,D,E,F,G,H,I where B contains """&L3&"""")=true,[AYUDA],"")))

pero no sé cómo devolver el encabezado o más bien, devolver el valor de la celda justo encima de verdadero. Sería bastante fácil si dejara que se llenara una caja de 7×2, pero de nuevo, preferiría una respuesta de una sola celda.

https://docs.google.com/spreadsheets/d/1e3FtvRGlefL154GCAYg8LpU_3jJOADZJVFBNBaOrDwQ/edit?usp=sharing
La hoja de cálculo es bastante grande, pero la hoja en cuestión es “Resource Node Overview”.

¡Cualquier ayuda es apreciada!

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para devolver el encabezado de la columna con valores verdaderos, puede utilizar las funciones INDEX y MATCH en combinación con su fórmula existente.

    Primero, modifiquemos su fórmula para devolver los encabezados de columna en lugar de [HELP]:

    =IF(QUERY(A9:N,"Select C,D,E,F,G,H,I where B contains """&L3&"""")=TRUE,C$8:I$8,"")
    

    Esto devolverá los encabezados de columna donde la consulta tenga un valor verdadero. A continuación, podemos utilizar las funciones INDEX y MATCH para encontrar el primer valor verdadero y devolver su encabezado correspondiente.

    =INDEX(C$8:I$8,1,MATCH(TRUE,TRANSPOSE(QUERY(A9:N,"Select C,D,E,F,G,H,I where B contains """&L3&"""")),0))
    

    Esta fórmula utiliza la función MATCH para encontrar la columna con el primer valor verdadero en la consulta. La función TRANSPOSE se usa para convertir los resultados en una fila, lo cual es necesario para que funcione la función MATCH. La función INDEX devuelve el encabezado correspondiente al número de columna encontrado por la función MATCH.

    Luego, puede combinar esta fórmula con su fórmula original utilizando TEXTJOIN:

    =TEXTJOIN(" | ",TRUE,INDEX(C$8:I$8,1,MATCH(TRUE,TRANSPOSE(QUERY(A9:N,"Select C,D,E,F,G,H,I where B contains """&L3&"""")),0)))
    

    Esto debería devolver una sola celda con todos los encabezados donde hay un valor verdadero en la consulta.

    Nota: si hay varios valores verdaderos en la consulta, esta fórmula solo devolverá el encabezado del primer valor verdadero encontrado.

Comments are closed.