MS Excel 2016 - restar letra de columna

MS Excel 2016 - restar letra de columna

Tengo la fórmula actual a continuación en la celda A1 donde necesito restar/menos la letra de la columna en una nueva celda B1. Revisé esta publicación pero no pude resolverla: ¿Cómo sumar, restar o incrementar letras de columnas en Excel?

por ejemplo, necesita una fórmula o macro para crear valores de la columna B; que son iguales a la columna A pero restan/menos una letra de columna

    Column A        | Column B  
    =+Jan!$V$36     | =+Jan!$U$36
    =+Jan!$AD$36    | =+Jan!$AC$36
    =+Jan!$AH$36    | =+Jan!$AG$36

Respuesta1

El contenido +en sus fórmulas es superfluo y no es necesario.

Aquí hay una UDF que colocará la fórmula modificada en la columna adyacente.

Supuestos:

  • sus fórmulas son simples como las muestra con una sola referencia de celda
  • La referencia de la celda siempre estará al final de la fórmula.
  • La referencia de celda siempre utilizará el modo de direccionamiento absoluto.
  • Para hacer las cosas más simples
    • Usamos la notación R1C1 en VBA
    • Buscamos desde el final de la cadena a la inversa para elC
    • Esto nos da el número de columna, del cual restamos 1para obtener la fórmula modificada.

Esto debería brindarle suficiente información para que pueda cambiarla en caso de que los datos publicados no coincidan con los datos reales.

*tenga en cuenta que cuando lo volvamos a escribir en la hoja de trabajo, se volverá a convertir a A1notación.

Option Explicit
Sub prevCol()
    Dim R As Range, C As Range
    Dim WS As Worksheet
    Dim sForm As String
    Dim lColPos As Long, lColNum As Long

Set WS = Worksheets("sheet3") 'or wherever you have the formulas
With WS
    Set R = .Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp))
End With

For Each C In R
    If C.HasFormula Then
        sForm = C.FormulaR1C1

        'assuming column number is at the end
        lColPos = InStrRev(sForm, "C")
        lColNum = Mid(sForm, lColPos + 1, 9)
        C.Offset(0, 1).FormulaR1C1 = Left(sForm, lColPos) & lColNum - 1
    End If
Next C

End Sub

ingrese la descripción de la imagen aquí

información relacionada