You are here:Home-Domande su Formule e Funzioni-[RISOLTO] FORMULA_UNICA
[RISOLTO] FORMULA_UNICA2019-02-02T12:33:21+01:00

Home Forum Domande su Formule e Funzioni [RISOLTO] FORMULA_UNICA

Taggato: 

Visualizzazione 22 filoni di risposte
  • Autore
    Post
    • Avatargiorgioantonio
      Partecipante
        Post totali: 436

        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 topic è stato modificato 1 anno, 5 mesi fa da sidsid.
      • BySalvBySalv
        Amministratore del forum
          Post totali: 737

          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:

          Ciao By Sal (8-)
          se ti piace la soluzione aiuta a sostenere il Forum con una DONAZIONE a piacere, Grazie

        • Avatargiorgioantonio
          Partecipante
            Post totali: 436

            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: 749

              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: 436

                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: 749

                  …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: 436

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

                  • sidsid
                    Moderatore
                      Post totali: 749

                      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: 436

                        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: 749

                          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 1 anno, 5 mesi fa da sidsid.
                        • Avatargiorgioantonio
                          Partecipante
                            Post totali: 436

                            Salve

                            ora va meglio,
                            faccio qualche altra prova.

                          • Avatargiorgioantonio
                            Partecipante
                              Post totali: 436

                              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: 749

                                Ma è quello che fa

                              • Avatargiorgioantonio
                                Partecipante
                                  Post totali: 436

                                  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: 737

                                    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

                                    Ciao By Sal (8-)
                                    se ti piace la soluzione aiuta a sostenere il Forum con una DONAZIONE a piacere, Grazie

                                  • sidsid
                                    Moderatore
                                      Post totali: 749

                                      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: 436

                                        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: 436

                                          Si col underscore

                                        • sidsid
                                          Moderatore
                                            Post totali: 749
                                            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: 436

                                              Salve Sid,

                                              questa versione è quella che volevo.

                                              Grazie

                                            • Avatargiorgioantonio
                                              Partecipante
                                                Post totali: 436

                                                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: 737

                                                  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:

                                                  Ciao By Sal (8-)
                                                  se ti piace la soluzione aiuta a sostenere il Forum con una DONAZIONE a piacere, Grazie

                                                • Avatargiorgioantonio
                                                  Partecipante
                                                    Post totali: 436

                                                    Saalve,

                                                    Grazie dell’aiuto

                                                Visualizzazione 22 filoni di risposte
                                                • Il topic ‘[RISOLTO] FORMULA_UNICA’ è chiuso a nuove risposte.