Concatenamento di colonne in Excel


0

Hai bisogno di aiuto per concatenare le colonne 1 e 2 come si vede nello screenshot.

enter image description here

Ci saranno ulteriori voci nella colonna 2, forse "Blu". Vorrei "1 Blu" "2 Blu" "3 Blu", ecc. Partendo da sotto la voce "6 Indigo".

Spero che abbia senso! Molto nuovo per eccellere, e ha bisogno di risolverlo presto.

EDIT: ho bisogno di combinare tutta la colonna A con tutta la colonna B.


Solo per chiarimenti: vuoi combinare tutto nella colonna A con tutto nella colonna B?
LDC3

Sì :) Aggiunto al post.
mj_s

Dovrebbe essere un compito piuttosto facile in VBA. È un'opzione per te?
TheUser1024

Non saprei nemmeno come usarlo, potrebbe dargli un colpo.
mj_s

Risposte:


0

Nella cella C2 puoi inserire la formula seguente e riempire la formula fino a C13 (o qualsiasi altra cosa).

=OFFSET($A$2,MOD(ROW()-2,COUNTA(A:A)-1),0)&" "&OFFSET($B$2,INT((ROW()-2)/(COUNTA(A:A)-1)),0)

Spiegazione:

La prima parte OFFSET($A$2,MOD(ROW()-2,COUNTA(A:A)-1),0) cerca la cella appropriata dalla colonna A. COUNTA(A:A)-1 conta il numero di elementi nella colonna A (meno uno per l'intestazione, cioè la riga 1). MOD(ROW()-2,COUNTA(A:A)-1) calcola il resto quando la riga corrente (C2 ... C13) viene divisa per il numero di elementi nella colonna A. Questo valore appare come (0,1,2,3,4,5,0,1,2,3, 4,5) nelle cellule (C2 ... C13); compensare questi valori come riferimento $A$2 restituisce la riga corretta nella colonna A.

&" "& inserisce uno spazio nel mezzo.

La seconda parte OFFSET($B$2,INT((ROW()-2)/(COUNTA(A:A)-1)),0) è simile alla prima parte. Tuttavia calcola il quoziente anziché il resto. Valori rilevanti per (C2..C13) sarebbero (0,0,0,0,0,0,1,1,1,1,1,1,1). Compensare questi per riferimento $B$2 restituisce "Viola" o "Indaco" o qualsiasi testo che segue.


0

L'unico modo che posso pensare per completare questo sarebbe scrivere uno script VBA (Visual Basic for Applications) che è il linguaggio di programmazione dietro Macro in Excel.

La logica dietro (scusate non conosco il codice dalla mia testa) sarebbe:

x = 0 
ForEach entry in column a
    ForEach entry in column b
         Set value of cell c1 + x
         x + 1

Yikes! Non ho idea di VBA. Grazie comunque!
mj_s
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.