Hay una manera de conseguir que las células se refieran a sus propias posiciones

Estoy usando una fórmula para clasificar una larga lista en subtítulos. EG:

Letter     | A              | B
| -------- | -------------- |
| A        | 1              |0
| B        | 0              |1

y así sucesivamente. Estoy usando una fórmula de compensación de coincidencias =IF(ISNUMBER(SEARCH(B$1$,A2)),1,0)donde A2 es la célula que quiero ver si contiene la carta contenida en B1

Ahora tengo aproximadamente 70 categorías diferentes para pasar, y no quiero tener que cambiar B$1$ para cada uno. Esperaba poder hacerlo automáticamente. Sin embargo, no puedo dejarlo sin señales de dólares, ya que entonces dejará de buscar "A" cuando se arrastra hacia abajo.
¿Hay una manera de arrastrar las células a través y abajo sin tener que cambiar cada fila, pero cambiar para cada cambio de columna? i.e B$1$ turn to C$1$ when going across, but while dragging down only A2 changes

He intentado usar cell("address"(b$1$ pero eso empuja el tema más adelante.

Cualquier ayuda sería muy apreciada.

Pregunta hecha hace 3 años, 5 meses, 1 días - Por algoarchitect


3 Respuestas:

  • Así que estás usando referencias celulares absolutas para evitar que tus fórmulas cambien cuando las arrastras o las copias alrededor - esto es correcto en lo que puedo decir.

    Note que hay dos $ signos - por ejemplo, la referencia absoluta a la célula A1 sería $A$1. El primer $ hace la columna absoluta, y el segundo fija la fila.

    Así que, si tienes una fórmula donde quieres que la columna cambie pero no la fila, usa A$1. Si desea fijar la referencia a la columna A pero posiblemente cambiar filas, sería $A1.

    ver Aquí. para la página oficial de microsoft.

    Respondida el Dec 16, 2020 a las 11:49 - por gitguru

    Votos positivos: 0 | Votos negativos: 0

  • Para lograr que la referencia a la celda se ajuste automáticamente al arrastrar una fórmula hacia abajo pero no hacia la derecha, puedes usar la función INDIRECT en combinación con ROW y COLUMN.

    Por ejemplo, podrías modificar tu fórmula de la siguiente manera:

    excel
    =IF(ISNUMBER(SEARCH(INDIRECT("B$"&ROW()),A2)),1,0)
    

    En esta fórmula, "B$"&ROW() crea la referencia a la columna B y la fila correspondiente a la celda en la que se encuentra la fórmula, mientras que A2 sigue siendo la celda que se compara con la letra en la columna B.

    Al arrastrar esta fórmula hacia abajo, la referencia a la columna B se mantendrá constante, pero la fila se ajustará dinámicamente a medida que la fórmula se arrastra a través de las filas.

    Espero que esta solución te ayude a automatizar el proceso y evitar tener que cambiar manualmente las referencias de las celdas. ¡Déjame saber si necesitas más ayuda!

    Respondida el Dec 17, 2020 a las 11:54 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • Sí, hay una manera de hacer que las celdas se refieran a sus propias posiciones al arrastrar fórmulas. Puedes utilizar la función INDIRECTO junto con la función DESREF para lograr esto.

    Aquí tienes los pasos para hacerlo:

    • Crea una celda de referencia: Crea una celda en la hoja de cálculo que contenga la letra de columna de la celda que quieres referenciar. Por ejemplo, si quieres referenciar la celda B1, crea una celda que contenga la letra "B".
    • Utiliza la función INDIRECTO: En la celda donde quieres mostrar el resultado, utiliza la función INDIRECTO para referenciar la celda de referencia. Por ejemplo, si la celda de referencia contiene la letra "B" y quieres referenciar la celda B1, utiliza la siguiente fórmula:
    
    =INDIRECTO(A1 & "$1$")
    
    • Utiliza la función DESREF: Dentro de la función INDIRECTO, utiliza la función DESREF para desplazarte a la celda correcta basada en la posición de la celda actual. Por ejemplo, si quieres desplazarte una columna hacia la derecha, utiliza la siguiente fórmula:
    
    =INDIRECTO(A1 & "$1$") + 1
    

    Aplicando estos pasos a tu ejemplo, puedes crear una fórmula que se refiera automáticamente a la celda correcta al arrastrar hacia abajo y a través:

    
    =IF(ISNUMBER(SEARCH(INDIRECTO(A1 & "$1$") + 1, A2)),1,0)
    

    Esta fórmula buscará la letra en la celda a la derecha de la celda de referencia en cada fila y devolverá 1 si se encuentra y 0 si no.

    Nota: Debes asegurarte de que la celda de referencia esté bloqueada con signos de dólar ($) para que no cambie al arrastrar la fórmula.

    Respondida el Dec 17, 2020 a las 11:58 - por Gemini

    Votos positivos: 0 | Votos negativos: 0