我有 1 列資料要拆分為單位和產品名稱。


在所需的格式中,標題并不是真正需要的,所以如果我們需要省略它們,那很好。我通常有大約 200 多行要拆分的資料。目前我通過將列粘貼到excel并通過固定列寬拆分來做到這一點。它可以按我的意愿完成作業,并且在新列之前也沒有任何空格。但如果可能的話,我希望能夠在作業表本身中做到這一點。
我在 stackoverflow 中發現了這個很棒的應用程式腳本,非常適合我的需求。但唯一的問題是它似乎以某種方式在某些資料行上放置了額外的空格。那么是否可以將第二個子字串設定為從第一個字母而不是計數字符開始。 將文本拆分為列腳本
for (var i=startrow-1;i<LR;i ){
var outputrow=[];
var unit = values[i][0].substring(0,1);
var name = values[i][0].substring(**SET TO FIRST TEXT CHARACTER**);
我的樣本表:https ://docs.google.com/spreadsheets/d/1uO6mw6T9vK9mN8ZRtCJXX5UT8yV_rL-4_fD2TZbiDbk/edit?usp=sharing
uj5u.com熱心網友回復:
在 D2 我進入
=ArrayFormula(if(len(DATA!A2:A), trim(regexextract(DATA!A2:A, "^(\d )\s(.*)$")),))
如果您想將第一列格式化為數字,您可以嘗試
=ArrayFormula(if(len(DATA!A2:A), {regexextract(DATA!A2:A, "^(\d )\s") 0, trim(regexextract(DATA!A2:A, "\s(.*)$"))},))
或使用腳本嘗試類似
function myFunction() {
const ss = SpreadsheetApp.getActive()
const values = ss.getRange('DATA!A2:A').getValues().filter(String).flat().map( c => {
const splitted = c.split(" ");
const num = splitted.shift();
return [Number(num), splitted.join(" ").trim()]
})
ss.getSheetByName('Result').getRange(2, 1, values.length, 2).setValues(values);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/487915.html
