Risultati da 1 a 7 di 7

Discussione: Concatenare ogni cella di una colonna con ogni cella di un'altra colonna



  1. #1
    L'avatar di Francesco2
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Londra
    Messaggi
    10
    Versione Office
    Excel 2010
    Likes ricevuti
    1

    Concatenare ogni cella di una colonna con ogni cella di un'altra colonna

    Ciao Ragazzi, questo è il mio primo post, quindi perdonatemi se non è la sezione adatta per questa domanda.

    Avrei bisogno di una mano per il probelma seguente.

    Ho 2 colonne A e B. Devo concatenare ogni valore in colonna A con ogni valore in colonna B e viceversa:

    A
    coral
    orange
    ao

    B
    cardigans
    cardigan
    coat

    Il risultato devono essere 2 colonne, C e D che abbiano tutte le combinazioni possibili:

    C
    coral cardigans
    orange cardigans
    ao cardigans
    coral cardigan
    orange cardigan
    ao cardigan
    coral coat
    orange coat
    ao coat

    D
    cardigans coral
    cardigans orange
    cardigans ao
    cardigan coral
    cardigan orange
    cardigan ao
    coat coral
    coat orange
    coat ao


    Ho molte piu righe di quelle usate per l'esempio, quindi mi chiedevo se esista un moto per automatizzare il tutto.
    Secondo voi, qual'è la soluzione piu veloce?


    Grazie mille,


    F
    Invia MPPM 

  2. #2
    L'avatar di GiuseppeMN
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Mantova
    Messaggi
    864
    Versione Office
    2000 - 2013
    Likes ricevuti
    285
    Likes dati
    160
    Buona giornata, Francesco;
    così, a braccio, affiderei il mio destino a VBA, ma, prima di procedere, vedrai che qualche "Guru" delle Formule tira fuori dal cilindro una "Soluzione" senza VBA.


    A disposizione.

    Buona serata.

    Giuseppe
    Windows XP Excel 2000 - Windows 10 Excel 2013
    Invia MPPM 

  3. #3
    L'avatar di Francesco2
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Londra
    Messaggi
    10
    Versione Office
    Excel 2010
    Likes ricevuti
    1
    Ciao Giuseppe!

    Grazie mille per il parere. Sono assolutamente aperto alla soluzione VBA ma, ahime, ho appena iniziato ad affacciarmi al linguaggio e non ho le competenze necessarie (ancora:242:). Avevo pensato ad utilizzare una Macro Relativa ma prima volevo appuntoconsultare gli esperti :)

    Grazie,

    F
    Invia MPPM 

  4. #4
    L'avatar di rollis13
    Clicca e Apri
    Data Registrazione
    Nov 2015
    Località
    Cordenons
    Messaggi
    823
    Versione Office
    2016 64bit
    Likes ricevuti
    150
    Likes dati
    55
    Credo che una soluzione l'abbiano già trovata qui: http://freeforumzone.leonardo.it/d/1...scussione.aspx
    Invia MPPM 

  5. I seguenti utenti hanno dato un "Like"


  6. #5

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4046
    Versione Office
    2013
    Likes ricevuti
    1239
    Likes dati
    931
    Ciao a tutti,
    @Francesco

    Certo che con VBA sarebbe più semplice...
    un codice possibile potrebbe essere questo:

    Codice: 
    Option Explicit
    
    
    Sub Abbina()
    Dim uRiga1 As Long, uRiga2 As Long, i As Long, j As Long, x As Long
    Dim uRigaC As Long, urigaD As Long
    
    
    uRiga1 = Range("A" & Rows.Count).End(xlUp).Row
    uRiga2 = Range("B" & Rows.Count).End(xlUp).Row
    Range("C2:C" & Rows.Count).ClearContents
    Range("D2:D" & Rows.Count).ClearContents
    
    
    x = 2
    For i = 2 To uRiga1
        For j = 2 To uRiga2
            Range("C" & x).Value = Cells(i, 1).Value & " " & Cells(j, 2).Value
            x = x + 1
        Next j
    Next i
    
    
    x = 2
    For i = 2 To uRiga2
        For j = 2 To uRiga1
            Range("D" & x).Value = Cells(i, 2).Value & " " & Cells(j, 1).Value
            x = x + 1
        Next j
    Next i
    End Sub
    Mentre con le formule (a seconda di come sono posizionati i dati, io ho supposto che iniziassero dalla riga 2), nella cella C2:

    =SE(RIF.RIGA()>(CONTA.VALORI(A:A)-1)*(CONTA.VALORI(B:B)-1)+1;"";CONCATENA(INDICE(A:A;SE(RESTO((RIF.RIGA()-1);(CONTA.VALORI(B:B)-1))=0;(RIF.RIGA()-1)/(CONTA.VALORI(B:B)-1)+1;INT((RIF.RIGA()-1)/(CONTA.VALORI(B:B)-1))+2));" ";INDICE(B:B;RESTO(RIF.RIGA()-2;CONTA.VALORI(B:B)-1)+2)))

    nella cella D2:

    =SE(RIF.RIGA()>(CONTA.VALORI(A:A)-1)*(CONTA.VALORI(B:B)-1)+1;"";CONCATENA(INDICE(B:B;SE(RESTO((RIF.RIGA()-1);(CONTA.VALORI(A:A)-1))=0;(RIF.RIGA()-1)/(CONTA.VALORI(A:A)-1)+1;INT((RIF.RIGA()-1)/(CONTA.VALORI(A:A)-1))+2));" ";INDICE(A:A;RESTO(RIF.RIGA()-2;CONTA.VALORI(A:A)-1)+2)))

    Da copiare entrambe le celle verso il basso, fin dove serve.

    Ti lascio un file di esempio (nel primo foglio c'è il pulsante con il codice assegnato, nel secondo foglio le formule).

    [EDIT]
    Scusa rollis,
    leggo solo ora la tua risposta....

    [EDIT 2]
    Francesco, il CROSS-POSTING non è consentito, senza contare che nell'altro forum non hai nemmeno dato una risposta a chi ha cercato di aiutarti.... hai semplicemente abbandonato!!!
    Non mi sembra per niente un comportamento corretto! Ti consiglio di leggere il regolamento
    :275:

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."
    Invia MPPM 

  7. #6
    L'avatar di Francesco2
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Londra
    Messaggi
    10
    Versione Office
    Excel 2010
    Likes ricevuti
    1
    Ciao a tutti,

    per prima cosa, ringrazio sia Rollis che Cromagno per l'aiuto. Non potete immaginare il tempo che mi avete risparmiato, grazie davvero!!!

    In secondo luogo, mi scuso per non aver letto il regolamento, la prossima volta faro' piu' attenzione.
    In mia difesa, come ho scritto all'inizio della mia domanda, questo è il mio primo post. Non avevo idea che i due forum fossero collegati quindi ho postato in entrambi per avere un metro di paragone.

    Inoltre, non mi pare di meritare il seguente commento:

    Citazione Originariamente Scritto da cromagno Visualizza Messaggio
    senza contare che nell'altro forum non hai nemmeno dato una risposta a chi ha cercato di aiutarti.... hai semplicemente abbandonato!!!
    Non mi sembra per niente un comportamento corretto! Ti consiglio di leggere il regolamento
    :275:
    Non credo che sia passato cosi' tanto tempo da pensare che abbia abbandonato! Solo ora ho avuto il tempo di rispondere a questa conversazione e altrettanto faro' per l'altro forum.

    In ogni,

    grazie ancora per il velocissimo aiuto.

    F
    Invia MPPM 

  8. #7
    L'avatar di Gerardo Zuccalà
    Clicca e Apri
    Data Registrazione
    May 2015
    Località
    Milano, Italy
    Età
    49
    Messaggi
    4920
    Versione Office
    2013
    Likes ricevuti
    1117
    Likes dati
    1127
    Buongiorno Francesco
    In questo forum il crossposting è vietato come da regolamento che puoi leggere qui sotto
    Leggi tutto il regolamento del forum per non incappare in ulteriori avvertimenti
    Discussione chiusa

    Regola nr.9 "Crossposting"
    Non è consentito postare lo stesso messaggio o parti di esso in più aree del forum o su altri forum di excel, salvo casi di particolare interesse che dovranno comunque essere autorizzati da un Admin
    Messaggi crossposting verranno chiusi e quando possibile riuniti.
    Se ripetuti potranno portare all'allontanamento dell'utente.
    Invia MPPM 

Discussioni Simili

  1. Risposte: 2
    Ultimo Messaggio: 30/01/17, 16:19
  2. [Risolto] Creare un nuovo file per ogni colonna presente in un file excel
    Di gianluca26 nel forum Domande su Excel VBA e MACRO
    Risposte: 10
    Ultimo Messaggio: 10/11/16, 18:50
  3. [Risolto] crea un file per ogni colonna escluso una
    Di mb63 nel forum Domande su Excel VBA e MACRO
    Risposte: 2
    Ultimo Messaggio: 10/11/16, 17:39
  4. Risposte: 10
    Ultimo Messaggio: 14/07/16, 01:08
  5. incrementare di 1 ora ogni cella in una colonna
    Di Loretta nel forum Domande su Excel in generale
    Risposte: 17
    Ultimo Messaggio: 16/02/16, 20:35

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •