Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 谷歌脚本-重新替换、转置和拆分数据_Javascript_Google Sheets_Formula_Google Sheets Formula_Google Apps Script Editor - Fatal编程技术网

Javascript 谷歌脚本-重新替换、转置和拆分数据

Javascript 谷歌脚本-重新替换、转置和拆分数据,javascript,google-sheets,formula,google-sheets-formula,google-apps-script-editor,Javascript,Google Sheets,Formula,Google Sheets Formula,Google Apps Script Editor,我有一个谷歌表,我用它来记录销售数据。我将原始数据粘贴到工作表A!A1,原始数据包含文本、数字和“不可用的”字符,这些字符在拆分公式中用于定义列 然后,我使用转置脚本将这些数据拉到表B上,水平粘贴数据+1最后一行 我的问题是,在分割数据时,我的定义字符是]或[- 这很好,但是,销售中记录的项目没有从数量中分割出来-它仍然是如下项目xQuantity#。如果我将清除器更改为#x,这将导致脚本拆分包含字母x的文本,并执行所需的功能,将“项目xQuantity”拆分为“项目,数量” 任何建议都会有帮助

我有一个谷歌表,我用它来记录销售数据。我将原始数据粘贴到工作表
A!A1
,原始数据包含文本、数字和“不可用的”字符,这些字符在拆分公式中用于定义列

然后,我使用转置脚本将这些数据拉到表B上,水平粘贴数据+1最后一行

我的问题是,在分割数据时,我的定义字符是
]
[
- 这很好,但是,销售中记录的项目没有从数量中分割出来-它仍然是如下
项目xQuantity#
。如果我将清除器更改为
#x
,这将导致脚本拆分包含字母x的文本,并执行所需的功能,将“项目xQuantity”拆分为“项目,数量”

任何建议都会有帮助

需要将数据细化为可读值,然后归档到辅助工作表中

根据要求,以下是一些数据样本:

这将粘贴到SheetA!A1中:

总价4864910美元。每件商品的明细:[一袋巧克力吻x200@450=90000][一盒纸巾x1@300=300][夹克x66@200=13200]

上述数据可以是一行文字,也可以是单个单元格内100多行文字

然后,我使用以下公式删除不需要的字符,并拆分为所需的列:

=SPLIT( REGEXREPLACE(Front!A3,"^A-Za-z+]. Breakdown per item:, x#"," "),"[]@=")
我目前正在使用它将数据拉入归档表,一旦优化:

  function CaptureData() { 
 var ss = SpreadsheetApp.getActiveSpreadsheet ();
    var source = ss.getRange ("Back!8:8");
  var destSheet = ss.getSheetByName("Data");

  var destRange = destSheet.getRange(destSheet.getLastRow()+1,1);
  source.copyTo (destRange, {contentsOnly: true});

}
下图是存档表,带有所需的输出-请注意,屏幕截图显示了我当前遇到的问题

解决方案 由于项目数量的指示符是一个小写的
x
,位于空格后,并且您总是以大写的
x
开始每个项目的命名,因此您可以嵌套另一个
重新替换
,以替换
[空格]x
到设置为拆分字符串的一个字符。以下公式按您的预期执行:

=SPLIT(REGEXREPLACE)(REGEXREPLACE(A1,“每项细分:”、“”)、“x”、“@”)、“[]@=”)


我希望这对您有所帮助。如果您还需要什么或不了解什么,请告诉我。

您能提供数据链接表或图像表并生成您想要的数据吗?您能提供一份样本表或样本字符串,说明您正在尝试做什么吗?这可以澄清您的许多问题。提前感谢:DHi,感谢您的回复-我已根据要求添加了更多信息,希望这会有所帮助。谢谢!因此,为了完全清楚,您的预期输出将是将
项目x
数量#
分开,对吗?还是希望
项目x数量#
项目x与数量分开#是期望的输出,对