Condividi:        

EXCEL Creare una Matrice da due colonne

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

EXCEL Creare una Matrice da due colonne

Postdi Francesco53 » 22/11/17 17:55

Un saluto a tutti, ho la seguente difficoltà,
dovrei creare una matrice riepilogativa da due colonne differenti, che potrebbero essere differenti anche come numero di dati.
Allego immagine chiarificatrice.

Immagine

Penso sia sufficientemente chiaro dall'immagine.
La matrice dovrà pertanto essere dimensionata in base al numero di dati totali.
Grazie
Francesco
S.O. Windows 10 e Office 2007
Avatar utente
Francesco53
Utente Senior
 
Post: 811
Iscritto il: 20/02/10 18:45

Sponsor
 

Re: EXCEL Creare una Matrice da due colonne

Postdi Anthony47 » 22/11/17 20:33

Se ho capito bene, tu vuoi creare un elenco (es in colonna F) partendo da una matrice (i dati in colonne B-D).

Cio' detto, credo che la cosa piu' semplice sia un Userfunction.
Ad esempio:
Codice: Seleziona tutto
Function ArrToList(ByRef L1 As Range, Optional ByRef L2 As Range) As Variant
Dim oArr(), I As Long, cInd As Long, maxR As Long
'
If L2 Is Nothing Then Set L2 = L1.Cells(1, 1).Offset(0, 1).Resize(L1.Count, 1)
ReDim oArr(1 To Parent.Caller.Rows.Count)
If L1.Count > L2.Count Then maxR = L1.Count Else maxR = L2.Count
For I = 1 To maxR
    If I <= L1.Rows.Count And L1.Cells(I, 1) <> "" Then cInd = cInd + 1: oArr(cInd) = L1.Cells(I, 1)
    If cInd >= UBound(oArr) Then
        oArr(cInd) = ". . ."
        Exit For
    End If
    If I <= L2.Rows.Count And L2.Cells(I, 1) <> "" Then cInd = cInd + 1: oArr(cInd) = L2.Cells(I, 1)
    If cInd >= UBound(oArr) Then
        oArr(cInd) = ". . ."
        Exit For
    End If
Next I
For I = cInd + 1 To UBound(oArr)
    oArr(I) = ""
Next I
ArrToList = Application.WorksheetFunction.Transpose(oArr)
End Function

Metti il codice in un Modulo standard del vba, poi sul tuo foglio seleziona F2:F10 e poi scrivi (nella barra della formula)
Codice: Seleziona tutto
=ArrToList(B2:B13;D2:D7)

Adatta i due intervalli alle lunghezze delle tue colonne dati (che possono essere di diversa lunghezza e contenere celle vuote)
La formula e' da confermare con Contr-Maiusc-Enter

Se l'intervallo della formula (F2:F10 nell'esempio) non e' sufficiente per scrivere tutti i risultati, l'ultima cella conterra' ". . ."
In questo caso:
-seleziona ulteriori celle, es F2:F30
-premi F2, poi Contr-Maiusc-Enter

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19228
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: EXCEL Creare una Matrice da due colonne

Postdi Francesco53 » 22/11/17 22:21

Grazie Anthony
S.O. Windows 10 e Office 2007
Avatar utente
Francesco53
Utente Senior
 
Post: 811
Iscritto il: 20/02/10 18:45


Torna a Applicazioni Office Windows


Topic correlati a "EXCEL Creare una Matrice da due colonne":


Chi c’è in linea

Visitano il forum: Nessuno e 125 ospiti