我在Google云端硬盘上有一个Google电子表格,它将表单中的数据捕获到多组具有相同名称的列中。我需要能够将所有列集合成一组列。
我正在使用Google表格捕获家庭营地的RSVP,并在多个字段中向与会者询问名字,姓氏,就餐和年龄。这将生成一个包含多组列的电子表格,其中包含以下标题:
名字 姓氏 参加的膳食 年龄
我不知道任何vba,但我需要将所有列集合在一个单独的工作表上。这可以在Google表格(首选)或Excel中完成。有谁知道我可以收集这些数据的方式吗?
编辑: 我想转过这样的话:
John Smith 周六早餐,周六午餐,周日早餐 15岁及以上 Jane Smith 周六早餐,周六午餐,周日早餐 15岁以上
分为:
约翰 史密斯 周六早餐,周六午餐,周日早餐 15及以上
Jane Smith 周六早餐,周六午餐,周日早餐 15岁以上
答案 0 :(得分:0)
有一个脚本here,一旦复制到脚本编辑器中,对我有用...并保存,然后像:
=vmerge(A1:D3,E1:H3,I1:L30,M1:P30)
脚本:
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!!"
}