Triangulo De Pascal En Excel

Comunidad de Todoexpertos; quiero pedirles una ayuda con este triangulo que quiero hacer en excel, que llamare Pascal. Ya que es muy parecido al famoso triangulo de Pascal.

La idea es la siguiente:

a). Primero que todo al numero en rojo ( 2314 ), llamaremos numero base.

b). A la columna B3:B12 llamaremos Números de Referencia.

Acuerdo a la anterior imagen. Necesito la diferencia o el numero que me falta, del primer dígito ( 2 ) del numero base (2314), para llegar a el segundo dígito del numero base ( 3 ).

Esto, de acuerdo o con respecto a los números de referencia ( B3:B12 ), en este caso del 2 al 3 me falta 1, y quedaría asi:

Ahora bien, como ya tengo un valor que es el 1 (E4), necesito buscar la diferencia o el numero que me falta para llegar al tercer dígito del numero base (F3), con respecto a los números de referencia ( B3:B12 ). En este caso seria 0 (cero), porque de 1 a 1 hay cero de diferencia. Quedando asi:

Ahora como ya tenemos otro valor que es el 0 (cero), necesito buscar la diferencia o el numero que me falta para llegar al cuarto dígito del numero base (G3), con respecto a los números de referencia ( B3:B12 ). En este caso seria de 0 a 4 = 4. Quedando asi:

Bien sigamos ahora con el siguiente numero base que seria 104.

Necesito la diferencia o el numero que me falta, del primer dígito ( 1 ) del numero base (104), para llegar a el segundo dígito del numero base ( 0 ). Esto, de acuerdo o con respecto a los números de referencia ( B3:B12 ), en este caso del 1 al 0 = 9, por que si contamos del 1 hasta el 0 ( B3:B12 ) los separan 9 dígitos. Quedando asi:

Ahora con el numero 9,

Necesito buscar la diferencia o el numero que me falta para llegar de 9 (nueve) hasta el tercer dígito del numero base (G4), de acuerdo o con respecto a los números de referencia ( B3:B12 ), seria 9 a 4 = 5. Por que seria 9-01234 hay cinco dígitos de diferencia. Asi:

>

Y para terminar necesito buscar la diferencia o el numero que me falta para llegar de 9 (nueve) hasta el 5 (cinco G5), de acuerdo o con respecto a los números de referencia ( B3:B12 ), en este caso nos sirve el numero 6 ya que de 9-012345 hay 6 dígitos de diferencia quedando asi:

>

Muchas gracias por atender mi solicitud, si en excel no se puede agradecería que mi pregunta la resolvieran en cualquier otra categoría.

Office professional plus 2010.

1 Respuesta

Respuesta
1

Puedes hacerlo con una macro. Esta macro hace el proceso para cualquier cantidad de números base, pero no hace una validación de los datos, es decir no valida que sean números de un solo dígito, que sean números, etc.

SubPascal()    DimNumerosBaseAsString    DimHojaAsString    Dim i AsInteger    Dim j AsInteger    DimValorActualAsInteger    DimValorSiguienteAsInteger    DimDiferenciaAsInteger    DimNumeroColumnasAsInteger    DimContadorAsInteger    NumerosBase="D3:G4"    Hoja="Hoja1"    NumeroColumnas=ThisWorkbook.Sheets(Hoja).Range(NumerosBase).Columns.Count    WithThisWorkbook.Sheets(Hoja)        i =1        j =1        DoWhile i NumeroColumnas            ValorActual=Val(.Range(NumerosBase).Cells(i, j))            ValorSiguiente=Val(.Range(NumerosBase).Cells(i, j +1))            DoWhile j NumeroColumnas                IfValorSiguienteValorActualThen                    Diferencia=10-(ValorActual-ValorSiguiente)                Else                    Diferencia=ValorSiguiente-ValorActual                EndIf                IfDiferencia>9Then                    ExitSub                EndIf                .Range(NumerosBase).Cells(i +1, j +1)=Diferencia                j = j +1                ValorActual=Val(.Range(NumerosBase).Cells(i +1, j))                ValorSiguiente=Val(.Range(NumerosBase).Cells(i, j +1))            Loop            i = i +1            j = i        Loop    EndWithEndSub

Muchas gracias señor Experto, pues una macro me parece genial, pero resulta que al crear la macro cuando la ejecuto me aparece una ventana que dice

Error de compilación:

Error de sintaxis


dejo la imagen para que me corrija si tal ves estoy haciendo mal el procedimiento de crear la macro de ser asi pido amablemente me explique muchas gracias:

Creo que hubo un error al guardarse mi respuesta anterior. Te vuelvo a poner la macro

Sub Pascal()
    Dim NumerosBase As String
    Dim Hoja As String
    Dim i As Integer
    Dim j As Integer
    Dim ValorActual As Integer
    Dim ValorSiguiente As Integer
    Dim Diferencia As Integer
    Dim NumeroColumnas As Integer
    Dim Contador As Integer
    NumerosBase = "D3:G4"
    Hoja = "Hoja1"
    NumeroColumnas = ThisWorkbook.Sheets(Hoja).Range(NumerosBase).Columns.Count
    With ThisWorkbook.Sheets(Hoja)
        i = 1
        j = 1
        Do While i < NumeroColumnas
            ValorActual = Val(.Range(NumerosBase).Cells(i, j))
            ValorSiguiente = Val(.Range(NumerosBase).Cells(i, j + 1))
            Do While j < NumeroColumnas
                If ValorSiguiente < ValorActual Then
                    Diferencia = 10 - (ValorActual - ValorSiguiente)
                Else
                    Diferencia = ValorSiguiente - ValorActual
                End If
                If Diferencia > 9 Then
                    Exit Sub
                End If
                .Range(NumerosBase).Cells(i + 1, j + 1) = Diferencia
                j = j + 1
                ValorActual = Val(.Range(NumerosBase).Cells(i + 1, j))
                ValorSiguiente = Val(.Range(NumerosBase).Cells(i, j + 1))
            Loop
            i = i + 1
            j = i
        Loop
    End With
End Sub

Muchas gracia señor experto, su ayuda es mucho mejor que excelente...

quedo completamente satisfecho por su ayuda hasta una nueva oportunidad.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas