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与数量分开#是期望的输出,对