Google 脚本 - 重新替换、转置和拆分数据

Google Scripts - Regreplace, Transpose and split Data

我有一个 google sheet 用来记录销售数据。我将我的原始数据粘贴到SheetA!A1中,原始数据包含文本、数字和'unusable'字符,它们在拆分公式中用于定义列。

然后我使用转置脚本将此数据拉到 sheet B,水平粘贴数据 +1 最后一行。

我的问题是,拆分数据时,我的定义字符是 ][ - 这很有效,但是,销售中记录的项目不会从数量中拆分 - 它仍然如下 Item xQuantity#。如果我将分隔符更改为 #x,这会导致脚本拆分包含字母 x 的文本,并执行将 "Item xQuantity" 拆分为 "Item, Quantity"

的所需功能

任何建议都会有所帮助!

需要将数据提炼成只读的值,然后归档到二级sheet

应要求,这里是一些数据样本:

这被粘贴到 SheetA!A1:

Total price ,864,910. Breakdown per item: [Bag of Chocolate Kisses x200 @ 450 = 90,000] [Box of Tissues x1 @ 300 = 300] [Jacket x66 @ 200 = 13,200]

上述数据可以是单个单元格中的 1 行文本到 100 多行文本。

然后我使用下面的公式来删除不需要的字符,并分成所需的列:

=SPLIT( REGEXREPLACE(Front!A3,"^A-Za-z+]. Breakdown per item:, x#"," "),"[]@=")

我目前正在使用它来将数据拉入存档 sheet,完善后:

  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});

}

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

Archive Sheet

解决方案

由于您的项目数量指标是小写字母 x 在空白 space 之后并且您始终以大写开头每个项目命名 X 您可以嵌套另一个REGREPLACE[blank space] x 替换为您设置为拆分字符串的字符之一。以下公式按照您的意图执行:

=SPLIT( REGEXREPLACE(REGEXREPLACE(A1,"Breakdown per item:"," "), " x", "@"),"[]@=")

希望对您有所帮助。让我知道您是否需要其他任何东西或者您不明白什么。 :)