我有一些数据保存在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;
}
我将在此处使用自定义函数:
/**
* @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)