You are here:--[RISOLTO] FORMULA_UNICA
[RISOLTO] FORMULA_UNICA2019-02-02T12:33:21+02:00

Home Forum Domande su Formule e Funzioni [RISOLTO] FORMULA_UNICA

Tag: 

  • Autore
    Articoli
  • Avatargiorgioantonio
    Partecipante
      Post totali: 348

      Salve e buona sera,

      cortesemente se possibile una formula
      da trascinare per 10 celle a destra.
      cerco di spiegare cosa vorrei sperando
      che esista una formula del genere:
      ho 5 numeri in 5 celle una di
      di seguito all’altra,
      per combinare i 5 numeri a 2 a 2
      per ottenere 10 risultati.
      Per ipotesi i 5 risultati li ho al rigo
      6 in b6, c6; d6; e6; f6
      per combinarli sono costretto a fare le combinazioni
      manualmente.
      Esiste una formula in cui trascinandola per 10
      celle si ottiene il risultato in altrettante celle.
      Allego il file con l’esempio e il risultato da ottenere.
      Grazie
      Giorgioantonio
      https://www.dropbox.com/s/tt1jeev60c0xlo9/FORMULA.xlsb?dl=0

      • Questo argomento è stato modificato 6 mesi, 2 settimane fa da sid sid.
    • BySalvBySalv
      Amministratore del forum
        Post totali: 477

        Ciao Giorgioantonio, ma è un semplice concatena di dati dovresti essere in grado di farla

        = B6 & " - " & C6

        scrivi a mano solo le prime 10 poi selezioni tutte le 10 celle con le formule e trascini in basso

        Ciao By Sal :bye:

      • Avatargiorgioantonio
        Partecipante
          Post totali: 348

          Salve Bay Sal,

          faccio ammenda per non essermi spiegato.
          faccio l’esempio devo fare il calcolo
          di addizione tra B e C; tra B e D; tra B e E; tra B e F;
          poi tra C e D; tra C e E; tra C e F;
          poi tra D e E; tra d e F;
          poi tra E e F.
          Se metto la formula =somma(B6+C6) e trascino a destra
          mi da solo 4 coppie cioè B+C; c+D; D+E; E+F.
          Quindi il resto delle combinazioni le devo fare
          manualmente (in formula) quindi il trascinamento
          fa solo una parte.
          Per la difficoltà che trovo di sbagliare lettere di colonne
          faccio un altro esempio,
          Foglio1 e Foglio2 foglio1 dati in C-D-E-F-G;
          Foglio2 Z-AA-AB-AC-AD.
          Nelle formule è facile sbagliare a combinare e lettere
          poi ho fatto l’esempio di 5 numeri se ne devo combinare 7
          fare le combinazioni per 21 volte sicurissimo di fare l’errore.
          In parte se possibile vorrei una formula e fin quando non
          c’è qualche guru delle formule mi accontenterei anche di
          qualche riga di VBA ma se possibile anche la formula.
          Salve

        • sidsid
          Moderatore
            Post totali: 718

            Ciao
            Se vuoi farlo con le formule, per la prima cella va preso il riferimento assoluto della colonna.
            Inoltre non basta un solo tarscinamento, ma ben 4 visto che abbiamo 5 colonne
            Esempio per B+C B+D B+E B+F
            Abbiamo la B fissa quindi la formula in G è
            =$B6+C6
            da trascinare fino a colonna J (4 colonne)

            In K
            =$C6+D6
            da trascinare fino a colonna M (3 colonne)

            In N
            =$D6+E6
            da trascinare fino a = (2 colonne)

            Infine in P basta una sola formula senza riferimenti assoluti
            =E6+F6

            ——————

            Oppure devi usare vba

          • Avatargiorgioantonio
            Partecipante
              Post totali: 348

              Salve Sid,

              La speranza era l’ultima a morire,
              speravo esistesse una formula.

              Visto che in formula non è possibile
              mi starebbe bene il VBA

              Grazie anticipato.

            • sidsid
              Moderatore
                Post totali: 718

                …poi ho fatto l’esempio di 5 numeri se ne devo combinare 7
                fare le combinazioni per 21 volte sicurissimo di fare l’errore.

                7 è il numero maximo per le combinazioni, oppure possono eserci più numeri?

              • Avatargiorgioantonio
                Partecipante
                  Post totali: 348

                  se mi metti in condizione di poter fare fino a 20 numeri.
                  Qualche volta lo faccio.

                • sidsid
                  Moderatore
                    Post totali: 718

                    Quando attivi la macro ti appariranno 2 inputbox: nella prima selezioni le celle che vuoi far combinare; nel tuo esempio B6:F6
                    Nella seconda devi selezionare una cella in cui iniziare la copia dei dati; sempre seguendo il tuo esempio, selezioni G6.
                    Questo il codice:

                    Sub COMBINAZIONI()
                    Dim rng As Range, cella As Range
                    Dim arr As Variant, matrix() As Variant
                    Dim n As Integer
                    Dim j As Long, jj As Long, k As Long
                    
                    On Error Resume Next
                    Set rng = Application.InputBox("seleziona il range di celle da combinare", Type:=8)
                    If rng Is Nothing Then GoTo USCITA
                    Set cella = Application.InputBox("seleziona la cella da dove cominciare la copia", Type:=8)
                    If cella Is Nothing Then GoTo USCITA
                    On Error GoTo 0
                    
                    arr = rng.Value
                    n = UBound(arr, 2) * (UBound(arr, 2) - 1) / 2
                    ReDim matrix(1 To 1, 1 To n)
                    For j = LBound(arr, 2) To UBound(arr, 2) - 1
                        For jj = j + 1 To UBound(arr, 2)
                            k = k + 1
                            matrix(1, k) = arr(1, j) + arr(1, jj)
                        Next jj
                    Next j
                    With cella
                        .Resize(, 190).ClearContents
                        .Resize(, n).Value = matrix
                    End With
                    
                    Set rng = Nothing
                    Set cella = Nothing
                    
                    Exit Sub
                    USCITA:
                    MsgBox "Operazione annullata", vbExclamation
                    On Error GoTo 0
                    End Sub
                  • Avatargiorgioantonio
                    Partecipante
                      Post totali: 348

                      Salve Sid,

                      la macro va benissimo, quasi.
                      Convinto che si stava parlando di formula,
                      nella formula avrei messo ciò che volevo
                      ad esempio sottrazione dal > al <, addizione col fuori90.
                      Quindi mi sono accorto solo ora del problema.

                      Salve

                    • sidsid
                      Moderatore
                        Post totali: 718

                        Quindi se la somma di 2 celle è maggiore di 90, sottrarre 90 alla somma?

                        Nel caso questa è la macro corretta

                        Sub COMBINAZIONI()
                        Dim rng As Range, cella As Range
                        Dim arr As Variant, matrix() As Variant
                        Dim n As Integer, nSomma As Integer
                        Dim j As Long, jj As Long, k As Long
                        
                        On Error Resume Next
                        Set rng = Application.InputBox("seleziona il range di celle da combinare", Type:=8)
                        If rng Is Nothing Then GoTo USCITA
                        Set cella = Application.InputBox("seleziona la cella da dove cominciare la copia", Type:=8)
                        If cella Is Nothing Then GoTo USCITA
                        On Error GoTo 0
                        
                        arr = rng.Value
                        n = UBound(arr, 2) * (UBound(arr, 2) - 1) / 2
                        ReDim matrix(1 To 1, 1 To n)
                        For j = LBound(arr, 2) To UBound(arr, 2) - 1
                            For jj = j + 1 To UBound(arr, 2)
                                k = k + 1
                                nSomma = arr(1, j) + arr(1, jj)
                                matrix(1, k) = IIf(nSomma > 90, nSomma - 90, nSomma)
                            Next jj
                        Next j
                        With cella
                            .Resize(, 190).ClearContents
                            .Resize(, n).Value = matrix
                        End With
                        
                        Set rng = Nothing
                        Set cella = Nothing
                        
                        Exit Sub
                        USCITA:
                        MsgBox "Operazione annullata", vbExclamation
                        On Error GoTo 0
                        End Sub
                        • Questa risposta è stata modificata 6 mesi, 2 settimane fa da sid sid.
                      • Avatargiorgioantonio
                        Partecipante
                          Post totali: 348

                          Salve

                          ora va meglio,
                          faccio qualche altra prova.

                        • Avatargiorgioantonio
                          Partecipante
                            Post totali: 348

                            un’altra cosa se puoi inserirla
                            e se volessi la combinazione di 2 numeri?
                            Ritornando all’esempio:
                            B-c, B-D; B-E; B-F; C-D; C-E; C-F; D-E; D-F; E-F

                            sALVE

                          • sidsid
                            Moderatore
                              Post totali: 718

                              Ma è quello che fa

                            • Avatargiorgioantonio
                              Partecipante
                                Post totali: 348

                                LA PRIMA VERSIONE=
                                46 74 56 21 69
                                ESITO
                                120 102 67 115 130 95 143 77 125 90
                                MENTRE LA COMBINAZIONE SAREBBE
                                46-74 IN UNA CELLA POI 46-56 … FINO A 21-69NELL’ALTRA CELLA ECCETERA.
                                MENTRE LA SECONDA VERSIONE DA LA SOMMA COL FUORI 90.

                              • BySalvBySalv
                                Amministratore del forum
                                  Post totali: 477

                                  Ciao, eccoti la mia versione, ma scrive solo le formule e solo per le 5 cinquine fa le 10 combinazioni senza il fuori90.

                                  premi Contro+p si apre l’inputbox che chiede di inserire i parametri che sono

                                  5 = numeri
                                  6 = Riga
                                  b = colonna di partenza dei numeri, puoi anche scrivere in numero 2
                                  g = Colonna di inizio formule, oppure 7, ma puoi specificare anche P o 16 ed inizia le formule alla colonna P
                                  il tutto separate da Virgola

                                  e dai ok, nelle celle vengono scritte le formule che poi puoi trascinare in basso, quetsa un immagine

                                  Cattura

                                  ho inserito anche la macro di Sid che saluto Control+k

                                  Ciao By Sal :bye:

                                  http://www.filedropper.com/formula

                                • sidsid
                                  Moderatore
                                    Post totali: 718

                                    Quindi tu non vuoi la somma dei 2 numeri, ma il loro accoppiamento separato da trattino; corretto?
                                    Ricambio i saluti al boss

                                  • Avatargiorgioantonio
                                    Partecipante
                                      Post totali: 348

                                      Salve Bay-Sal,

                                      dalla macro mi sono usciti questi 4 numeri

                                      72-66-55-39

                                      mi ha dato anche le ruote (2 sono gratis le altre due da comprare
                                      altrimenti montarle su motoretta) eccole

                                      su Mi e Na

                                      Speriamo bene.

                                      Giorgioantonio

                                    • Avatargiorgioantonio
                                      Partecipante
                                        Post totali: 348

                                        Si col underscore

                                      • sidsid
                                        Moderatore
                                          Post totali: 718
                                          Sub COMBINAZIONI()
                                          Dim rng As Range, cella As Range
                                          Dim arr As Variant, matrix() As Variant
                                          Dim n As Integer ', nSomma As Integer
                                          Dim j As Long, jj As Long, k As Long
                                          
                                          On Error Resume Next
                                          Set rng = Application.InputBox("seleziona il range di celle da combinare", Type:=8)
                                          If rng Is Nothing Then GoTo USCITA
                                          Set cella = Application.InputBox("seleziona la cella da dove cominciare la copia", Type:=8)
                                          If cella Is Nothing Then GoTo USCITA
                                          On Error GoTo 0
                                          
                                          arr = rng.Value
                                          n = UBound(arr, 2) * (UBound(arr, 2) - 1) / 2
                                          ReDim matrix(1 To 1, 1 To n)
                                          For j = LBound(arr, 2) To UBound(arr, 2) - 1
                                              For jj = j + 1 To UBound(arr, 2)
                                                  k = k + 1
                                                  'nSomma = arr(1, j) + arr(1, jj)
                                                  'matrix(1, k) = IIf(nSomma > 90, nSomma - 90, nSomma)
                                                  matrix(1, k) = arr(1, j) & "_" & arr(1, jj)
                                              Next jj
                                          Next j
                                          With cella
                                              .Resize(, 190).ClearContents
                                              .Resize(, n).Value = matrix
                                          End With
                                          
                                          Set rng = Nothing
                                          Set cella = Nothing
                                          
                                          Exit Sub
                                          USCITA:
                                          MsgBox "Operazione annullata", vbExclamation
                                          On Error GoTo 0
                                          End Sub
                                        • Avatargiorgioantonio
                                          Partecipante
                                            Post totali: 348

                                            Salve Sid,

                                            questa versione è quella che volevo.

                                            Grazie

                                          • Avatargiorgioantonio
                                            Partecipante
                                              Post totali: 348

                                              Salve By – Sal

                                              volevo dire nel messaggio postato precedentemente
                                              numeri e ruote
                                              ho voluto scherzare.

                                              Eventualmente porgo le mie scuse.

                                              Salve

                                            • BySalvBySalv
                                              Amministratore del forum
                                                Post totali: 477

                                                Ciao Giorgioantonio, visto lo scherzo, te li do io i numeri, per Firenze solo Ambo max 4 colpi

                                                38 5 50 70 11 49 82 58 78

                                                sviluppati in 8 quartine Garanzia con 2 numeri usciti ambo e + al 100%
                                                Vincita con 1€ 38,33
                                                38 5 50 70
                                                38 5 82 58
                                                38 11 49 82
                                                50 70 49 58
                                                38 5 49 78
                                                38 50 70 11
                                                5 11 58 78
                                                50 70 82 78

                                                NON GIOCARLI è un esperimento che sto facendo su un metodo, vedi come si comportano, parti dal 31/1/19

                                                ti ho dato tutti i dati

                                                Ciao By Sal :bye:

                                              • Avatargiorgioantonio
                                                Partecipante
                                                  Post totali: 348

                                                  Saalve,

                                                  Grazie dell’aiuto

                                                La discussione ‘[RISOLTO] FORMULA_UNICA’ è chiusa a nuove risposte.

                                                Utilizzando il sito, accetti l'utilizzo dei cookie da parte nostra. maggiori informazioni

                                                Questo sito utilizza i cookie per fornire la migliore esperienza di navigazione possibile. Continuando a utilizzare questo sito senza modificare le impostazioni dei cookie o cliccando su "Accetta" permetti il loro utilizzo.

                                                Chiudi