Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

Moltiplicazione di Colonne

Ultimo Aggiornamento: 23/03/2020 18:41
Post: 1
Registrato il: 02/04/2018
Città: PESCARA
Età: 75
Utente Junior
EXCEL 2016 - SPREAD32
OFFLINE
21/03/2020 21:34

Salve, sono nuovo sia del Forum che di Excel, pur avendone un minimo di esperienza.
Non riesco a immaginare per Excel la soluzione del problema di cui allego un esempio, credo semplice da capire.
(ma non capisco se mi è stato caricato).
Vorrei moltiplicare un gruppo di 2 colonne in A e B per una gruppo di 3 colonne in D,E,F, ricavandone come risultato, che dovrebbe comparire piu' a destra, per esempio in H,I,L,M,N, un incolonnamento di 5 campi sviluppato in 6 righe.
Non si tratta di moltiplicazione di numeri ma solo e proprio delle colonne con il loro contenuto, come se partendo da ambi e terni si volesse costruire una cinquina.
Immagino che ci voglia una macro, che spero possa essere utilizzata anche per gruppi diversi da 2 e 3
In ogni caso ringrazio anticipatamente.
L2018

LEO
https://t.me/LordBrum
Post: 553
Registrato il: 15/01/2016
Città: ROMA
Età: 51
Utente Senior
2016
OFFLINE
22/03/2020 10:26

Buongiorno
in H1 da trascinare a destra fino a L1 e in basso fino a riga 6

=INDICE($A$1:$F$3;SCEGLI(SE(RIF.COLONNA(A$1)<=2;1;2);QUOZIENTE(RIF.RIGA(A1)-1;3)+1;RESTO(RIF.RIGA($A1)-1;3)+1);SE(RIF.COLONNA(A$1)>=3;RIF.COLONNA(A$1)+1;RIF.COLONNA(A$1)))
Post: 1
Registrato il: 02/04/2018
Città: PESCARA
Età: 75
Utente Junior
EXCEL 2016 - SPREAD32
OFFLINE
22/03/2020 11:43

Moltiplicazione di Colonne
Grazie, gentilissimo, ho appena visto e provato, funziona, ma mettendo qualche ambo e/o terno in più dà errore #RIF!.
Cercherò di capire le formule e adattarle.
Tuttavia, immaginando di avere per esempio una decina di ambi e una cinquantina di terni...forse sarebbe meglio una macro.
Certo non uso tale materia ne' per lavoro nè per giocare, e mi vergogno nel fare richieste, ma una macro generale, che possa gestire anche parametri diversi da 2 e 3, proprio per moltiplicare colonne di contenuto qualsiasi....sarebbe molto complicata ?
Hai eventuali link a cui indirizzarmi ?
Nel frattempo ti ringrazio ancora.

LEO
https://t.me/LordBrum
Post: 556
Registrato il: 15/01/2016
Città: ROMA
Età: 51
Utente Senior
2016
OFFLINE
22/03/2020 11:54

Ciao
purtroppo io non scrivo codice ma solo formule...se hai uno schema diverso e lo alleghi mettendo il risultato da ottenere ci posso provare con le formule se invece vuoi risolvere con VBA devi attendere l'intervento di esperti in materia

Saluti
Post: 2
Registrato il: 02/04/2018
Città: PESCARA
Età: 75
Utente Junior
EXCEL 2016 - SPREAD32
OFFLINE
22/03/2020 11:58

OK, bene, grazie ancora

LEO
https://t.me/LordBrum
Post: 920
Registrato il: 16/08/2015
Città: CORDENONS
Età: 67
Utente Senior
Excel 2016-32bit Win11
OFFLINE
23/03/2020 16:39

Un saluto a tutti.
Vedo che con le formule (non ci sguazzo volentieri) hai risolto pertanto ti propongo questa mia soluzione con una macro dove dovrai selezionare nella giusta sequenza i due gruppi più una cella destinazione sullo stesso foglio.
L'operazione va eseguita così:
1) selezionare l'area del primo gruppo;
2) premere e tener premuto il tasto CTRL e selezionare l'area del secondo gruppo;
3) sempre tenendo premuto il CTRL selezionare la prima cella dell'area di destinazione;
4) rilasciare il CTRL e lanciare la macro.
Non ho fatto 'mille' prove tipo aree accavallate o altre cose 'turche' tipo su fogli separati. Pertanto, ne garantisco il funzionamento se usata in modo 'semplice'. Eventualmente, se ti soddisfa la puoi usare come base di partenza per tuoi sperimenti/sviluppi.
Option Explicit

Public Sub Crea_Matrice()

    Dim risposta As Long
    Dim gruppo1     As String
    Dim gruppo2     As String
    Dim destina     As String
    Dim pr1, ur1, pc1, uc1
    Dim pr2, ur2, pc2, uc2
    Dim pr3, pc3
    Dim x, y
    
    'verifico se sono stati selezionati i gruppi e la destinazione in numero previsto
    If Selection.Areas.Count = 3 Then
        'ricavo le coordinate numeriche delle aree selezionate
        gruppo1 = Selection.Areas(1).Address
        pr1 = Range(gruppo1).Row
        ur1 = Val(Split(gruppo1, "$")(4))
        pc1 = Range(gruppo1).Column
        uc1 = Range(Split(gruppo1, ":")(1)).Column
        gruppo2 = Selection.Areas(2).Address
        pr2 = Range(gruppo2).Row
        ur2 = Val(Split(gruppo2, "$")(4))
        pc2 = Range(gruppo2).Column
        uc2 = Range(Split(gruppo2, ":")(1)).Column
        destina = Selection.Areas(3).Address
        pr3 = Val(Split(destina, "$")(2))
        pc3 = Selection.Areas(3).Column
        'chiedo se tutto va bene
        risposta = MsgBox("Sono state selezionate le seguenti aree:" & vbCrLf & vbCrLf _
                 & "Primo gruppo:" & Chr(9) & Selection.Areas(1).Address(False, False) & vbCrLf _
                 & "Secondo gruppo:" & Chr(9) & Selection.Areas(2).Address(False, False) & vbCrLf _
                 & "Destinazione:" & Chr(9) & Selection.Areas(3).Address(False, False) & vbCrLf & vbCrLf _
                 & "corrispondono ?", vbYesNo)
        If risposta = vbYes Then
            'creo la matrice concatenata
            With ActiveSheet
                For x = pr1 To ur1
                    For y = pr2 To ur2
                        .Range(.Cells(x, pc1), .Cells(x, uc1)).Copy .Cells(pr3, pc3)
                        .Range(.Cells(y, pc2), .Cells(y, uc2)).Copy .Cells(pr3, pc3 + uc1)
                        pr3 = pr3 + 1
                    Next y
                Next x
            End With
        End If
    Else
        MsgBox "Non hai selezionato due gruppi sorgente" & vbCrLf _
             & "ed una cella destinazione." & vbCrLf & "Riprova !!"
    End If
    
End Sub
[Modificato da rollis13 23/03/2020 18:26]

______________________________________________________________
C'è chi fa le COSE a CASO e chi fa CASO alle COSE (Ignoto)
Post: 3
Registrato il: 02/04/2018
Città: PESCARA
Età: 75
Utente Junior
EXCEL 2016 - SPREAD32
OFFLINE
23/03/2020 17:05

Bestiale, Pazzesco, Grazie !
Appena avvisato del tuo messaggio ho provato con fiduciosa ansia.

Funziona !

E' vero che l'amico precedente mi aveva fornito una formula, ma tirare giù le formule va bene per piccoli esempi.
Non so davvero come ringraziarti, anche perchè non sai quale attuale grosso problema (ebbene sì, un po' paranoico) mi hai risolto in questi miei studi meccanico-numerici.
Il problema sono stato costretto a risolverlo con un programmino vero e proprio ma altro gusto è quello di poterlo seguire a vista con Excel.
Cercherò di capire la macro per vedere se posso eventualmente cambiare qualcosa, al bisogno.
Presumo di poter usare anche più di 2 gruppi, ed anche di varie grandezze (intendo dire numero di campi), giusto ?.
Ancora un grosso ringraziamento.

LEO
https://t.me/LordBrum
Post: 921
Registrato il: 16/08/2015
Città: CORDENONS
Età: 67
Utente Senior
Excel 2016-32bit Win11
OFFLINE
23/03/2020 18:24

Grazie del riscontro positivo 👍.

Per ora la macro prevede solo due gruppi + destinazione ma le macro servono proprio per questo, si possono rivoltare/rifare a proprio piacimento; l'importante è averne capito la logica.
Come avrai visto il primo If/Then verifica che le aree siano proprio 3 e le successive righe calcolano le coordinate proprio su queste precise aree.
Nulla vieta cambiarne la struttura ed implementare altri ElseIf e mettere il calcolo di ulteriori coordinate ecc. ma poi diventano un'infinità le ulteriori variabili da introdurre. Si può anche sfruttare un Select/Case per differenziare in base al numero di gruppi ma il problema delle variabili rimane. Forse a quel punto la macro andrebbe strutturata diversamente.
Ne hai da divertirti ...

______________________________________________________________
C'è chi fa le COSE a CASO e chi fa CASO alle COSE (Ignoto)
Post: 4
Registrato il: 02/04/2018
Città: PESCARA
Età: 75
Utente Junior
EXCEL 2016 - SPREAD32
OFFLINE
23/03/2020 18:41

Stavo proprio usando la tua macro.
No, per molto tempo sarà sufficiente questa, che si inserisce fra le tante routines che ho sviluppato per altre situazioni statistiche (confesso che Millionday oggi e Toto ieri sono stati per me il motore a programmare).
Il tutto però in Power Basic, col quale faccio anche io cose turche.
E però quando devo esprimere CSV e XLS, lì casca l'asino del VBA che mi è sempre risultato ostico.
Ovvio che io debba impegnarmi a capire la struttura della macro per eventuali modifiche a scopo generale.
"aree accavallate o altre cose 'turche'" sono affascinanti di per sè (mi resta da trovarne il pretesto...).
Grazie ancora


LEO
https://t.me/LordBrum
Vota:
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 01:23. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com