estrai numeri da una cella



  • estrai numeri da una cella
    di contebaldi (utente non iscritto) data: 21/07/2013 21:33:46

    come prendere il numero di 'n' cifre da una cella sommarlo es (456)=15,
    se è divisibile per 'n' mettere il risultato in altra cella ,altrimenti "messaggio "
    grazie



  • di Raffaele_53 (utente non iscritto) data: 21/07/2013 23:55:23

    >>>es (456)=15
    =SOMMA(STRINGA.ESTRAI(A1;1;1)+STRINGA.ESTRAI(A1;2;1)+STRINGA.ESTRAI(A1;3;1))

    Se 'n' = 3
    =SE(RESTO(SOMMA(STRINGA.ESTRAI(A1;1;1)+STRINGA.ESTRAI(A1;2;1)+STRINGA.ESTRAI(A1;3;1));LUNGHEZZA(A1))=0;SOMMA(STRINGA.ESTRAI(A1;1;1)+STRINGA.ESTRAI(A1;2;1)+STRINGA.ESTRAI(A1;3;1));"messaggio")

    Se la cifra ed 'n' fosse un numero composto da quasi dieci cifre....
    Oltre ad incrementare la formula puoi usare colonne d'appoggio.

    A1 = 9876543210
    B1 =SE(RIF.COLONNA()-1<=LUNGHEZZA($A1);STRINGA.ESTRAI($A1;RIF.COLONNA(A1);1)*1;"") e trascini a destra sino alla colonna J.
    K1 =SE(RESTO(SOMMA(B1:J1);LUNGHEZZA(A1))=0;SOMMA(B1:J1);"messaggio")



  • di paolomath data: 22/07/2013 08:43:30

    Buongiorno,

    se il n° di cifre è variabile ti conviene utilizzare del codice.

    Seleziona la cella con il numero in oggetto ed esegui la Sub, scrive il risultato nella cella a destra di quella selezionata.

    Bye
     
    Sub dividi()
    Dim lunghezza As Integer
    Dim somma As Long
    
    lunghezza = Len(CStr(ActiveCell.Value))
    somma = 0
    
    Select Case lunghezza
    Case 0
        MsgBox "Dato mancante"
    Case 1
        If ActiveCell.Value = 1 Then ActiveCell.Offset(0, 1) = 1
    Case Is > 1
        For i = 1 To lunghezza
        somma = somma + Mid(ActiveCell.Value, i, 1)
        Next
        
        If (ActiveCell.Value Mod lunghezza) = 0 Then
        ActiveCell.Offset(0, 1) = (ActiveCell.Value) / lunghezza
        Else
        MsgBox "inserire messaggio"
        End If
    End Select
    
    End Sub