我有一个谷歌表,用来记录销售数据。我将原始数据粘贴到工作表A!A1
中,原始数据包含文本、数字和">不可用"字符,这些字符在拆分公式中用于定义列。
然后,我使用转置脚本将这些数据拉到工作表B上,水平粘贴数据+1最后一行。
我的问题是,在分割数据时,我的定义字符是]
或[
-这很好,但是,销售中记录的项目并没有从数量中分离出来——它保持为Item xQuantity#
。如果我将deliminator更改为#x
,这将导致脚本拆分包含字母x的文本,并执行将"Item xQuantity"拆分为"Item,Quantity"的所需功能
任何建议都会很有帮助!
需要将数据细化为仅可读的值,然后归档到辅助工作表中
应要求,以下是一些数据样本:
这已粘贴到SheetA中!A1:
总价4864910美元。每件物品的明细:[一袋巧克力吻x200@450=9000][一盒纸巾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
开始命名每个项目,因此您可以嵌套另一个REGREPLACE
以将[blank space] x
替换为设置用于拆分字符串的字符之一。以下公式按您的意图执行:
=SPLIT( REGEXREPLACE(REGEXREPLACE(A1,"Breakdown per item:"," "), " x", "@"),"[]@=")
我希望这对你有所帮助。如果你还需要什么,或者你不明白什么,请告诉我。:(