Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    25

    Convertire una matrice in una tabella con tre colonne

    Salve a tutti,

    avrei bisogno di convertire una matrice in Excel in una tabella "esplodendone" i valori, come da esempio:

    PRIMA DOPO

    F P VALUE
    P1 P2 P3 P4 F1 P1 X
    F1 X F1 P2
    F2 X X F1 P3
    F3 X X F1 P4
    F4 X X F2 P1 X
    F2 P2 X
    F2 P3
    F2 P4
    F3 P1
    F3 P2 X
    F3 P3
    F3 P4 X
    F4 P1
    F4 P2 X
    F4 P3 X
    F4 P4
    Potete darmi una mano, possibilmente con le funzioni di Excel?

    Grazie,

    Alessandro

  2. #2
    Ciao,
    con le formule non saprei farlo anche se non escludo che si possa fare perché excel possiede tutto un set di formule molto potenti per lavorare sulle matrici mentre con VBA è uno scherzo, basta questo codice

    codice:
    Private Sub CommandButton1_Click()
       stringa = InputBox("inserire la prima e l'ultima cella delle etichette di riga e colonna e la cella in cui posizionare la tabella risultato, separate da uno spazio" & vbCrLf & "es B1 E1 A2 A5 G1")
       a = Split(stringa)
          
       r_out = Range(a(4)).Row
       c_out = Range(a(4)).Column
       Cells(r_out, c_out) = "F"
       Cells(r_out, c_out + 1) = "P"
       Cells(r_out, c_out + 2) = "VALUE"
       r_out = r_out + 1
       For Each riga In Range(a(2), a(3))
          For Each colonna In Range(a(0), a(1))
             Cells(r_out, c_out) = riga
             Cells(r_out, c_out + 1) = colonna
             Cells(r_out, c_out + 2).Value = Cells(riga.Row, colonna.Column).Value
             r_out = r_out + 1
          Next
       Next
    End Sub
    Per utilizzarlo devi salvare il foglio nel formato xlsm che prevede l'attivazione delle macro, attivare la scheda Sviluppo (se non è già attiva) dalle opzioni di excel e inserire un pulsante ActiveX poi clicchi due volte sul pulsante, inserisci il codice che ti ho dato, torni sul foglio disattivi la modalità di progettazione e clicchi sul pulsante. Tutto qui.

    Fai sapere se ci sono problemi.
    Ciao
    La democrazia rappresentativa ha fatto il suo tempo, è ora di passare alla democrazia diretta.
    www.beppegrillo.it

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.