用Google表格将字符串中的逗号分隔值对ID

问题描述 投票:0回答:1

Sample Google Sheet

我有一些数据保存在Google表格中,并已连接到Google Data Studio。其中一些数据用逗号分隔在字符串中。上面是一些数据样本的链接。

我将尽力解释,但是这部有关如何在Excel中使用Power Query解析视频的视频正是我正在尝试做的,仅在Google表格中。 Instructional Video on YouTube

在上面的样本表中,“数据”标签的A列中有一个受访者ID,而在“数据”标签的B列中有一个逗号分隔的字符串。

在B列的“解决方案”标签中,您会看到我使用以下代码将B列的内容从“数据”标签拆分并转置为“解决方案”标签。 =transpose(split(join(" ",arrayformula(Data!B2:B&",")),","))可以很好地将值分成该列中自己的行

但是我需要将ID映射到“解决方案”标签中A列中的各个值。对于我的一生,我无法弄清楚。

任何帮助将不胜感激。谢谢!

更新:

我还为我认为可以使用的自定义函数找到了该脚本,但是我不确定如何使它起作用。我收到一条错误消息:“ TypeError:无法读取属性长度...”

function myFunction(range) {
delimiter = ", ";
targetColumn = 1;
targetColumn2 = 2;

var output2 = [];
for(var i=0, iLen=range.length; i<iLen; i++) {
    var s = range[i][targetColumn].split(delimiter);    
    var s2 = range[i][targetColumn2].split(delimiter);
    for(var j=0, jLen=s.length; j<jLen; j++) {
       var output1 = []; 
       for(var k=0, kLen=range[0].length; k<kLen; k++) {
       if(k == targetColumn) {
          output1.push(s[j]);
       } 
       else if (k == targetColumn2) {
           output1.push(s2[j]);
       } else {
            output1.push(range[i][k]);
       }
    }
    output2.push(output1);
  } 
 }
return output2;

}

google-sheets google-sheets-formula spreadsheet google-sheets-query google-sheets-macros
1个回答
0
投票

方法

我将在此处使用自定义函数:

/**
* @customfunction
*/
function covid(range) {
  let delimiter = ", ";
  let newRows = [];
  for (let i in range) {
    let row = range[i];
    let id = row[0];
    let strings = row[1].split(delimiter); // split the responses
    for (let j in strings) {
      newRows.push([id, strings[j]]); // links the responder id to its splitted response
    }
  }
  return newRows; // prints the rows
}

输入参数在您的情况下是A1表示法范围,它是:=covid(Data!A2:B383)

© www.soinside.com 2019 - 2024. All rights reserved.