2014-05-16 4 views
0

J'ai une feuille de calcul Google sur Google Drive qui capture des données d'un formulaire en plusieurs ensembles de colonnes portant le même nom. Je dois être capable de fusionner tous les ensembles de colonnes en un ensemble de colonnes. J'utilise Google Forms pour capturer des réponses à un RSVP pour un camp de famille et demander aux participants le prénom, le nom, les repas et l'âge dans plusieurs champs. Cela produit une feuille de calcul avec plusieurs jeux de colonnes avec ces titres:Besoin de fusionner plusieurs ensembles de colonnes en un seul ensemble de colonnes

PrénomNomLes repas présentsÂge

Je ne sais pas vba mais je dois combiner tous les ensembles de colonnes en un ensemble sur une feuille séparée. Cela peut être fait dans Google Sheets (préféré) ou dans Excel. Est-ce que quelqu'un sait d'une manière que je peux rassembler ces données?

Edit: Je veux tourner quelque chose comme ceci:

JohnSmithsamedi Petit-déjeuner, samedi déjeuner, dimanche déjeuner15 et jusqu'àJaneSmithSamedi Petit déjeuner, Samedi Déjeuner, Dimanche Petit déjeuner15 et plus

Dans:

JohnSmithsamedi Petit-déjeuner, samedi déjeuner, dimanche déjeuner15 et jusqu'à
JaneSmithsamedi Petit-déjeuner, samedi déjeuner, dimanche déjeuner15 et plus

+0

utiliser le CONCAT Function.More Info: http : //www.aubrett.com/InformationTechnology/Productivity/GoogleConcatenate.aspx – neophyte

+0

Merci néophyte pour l'entrée. Ce n'est pas tout à fait ce que je cherche, voir mon edit pour une explication visuelle. – Inthedriversseat

Répondre

0

Il y a un script here qui fonctionne pour moi une fois copié dans l'éditeur de script ... et enregistré, quelque chose comme:

=vmerge(A1:D3,E1:H3,I1:L30,M1:P30) 

Script:

function VMerge() { //Vertical Merge 2.12 (release candidate) - ahab facit 2010 
    var maxw=0; 
    var l=0; 
    var minw=Number.MAX_VALUE; 
    var al=arguments.length ; 
    for(i=0 ; i<al ; i++){ 
    if(arguments[i].constructor == Array) { 
     l =arguments[i][0].length ; 
     maxw=l>maxw?l:maxw; minw=l<minw?l:minw; 
    } 
    else if ((arguments[i] != "???") && (arguments[i].length!=0)){ 
      l = 1 ; // literal values count as array with a width of one cell, empty cells are ignored! 
      maxw=l>maxw?l:maxw; minw=l<minw?l:minw; 
     }                
    } 

    if(maxw==minw) { // when largest width equals smallest width all are equal/
    var s = new Array(); 
    for(i=0 ; i<al ; i++){ 
     if(arguments[i].constructor == Array) s = s.concat(arguments[i].slice()) 
     else if ((arguments[i] != "???") && (arguments[i].length!=0)) s = s.concat([[arguments[i]]]) 
    } 
    if (s.length == 0) return null ; else return s  
    } 
    else return "#N/A: All data ranges must be of equal width!!" 
} 
+1

pnuts, qui est très proche de ce que je veux et fera très bien. Les points négatifs de ce script sont qu'il n'exclut pas les lignes vierges et que l'on doive entrer les lettres des colonnes manuellement plutôt que de chercher ou de chercher, mais je ne sais pas s'il y a un moyen de contourner cela. Cela me laissera du travail à faire, mais beaucoup moins que ce que j'aurais autrement pensé. Merci! – Inthedriversseat

Questions connexes