Function Google Sheets-创建SKU,自动将内容分为不同的列
我想在我的Google sheets CSV中创建一个列(SKU),当在每个单元格中手动输入数据时,它将自动填充其他3列(标题、颜色、大小)中的内容 我创建了一个CSV示例,其中突出显示了必要的列Function Google Sheets-创建SKU,自动将内容分为不同的列,function,google-sheets,automation,sku,Function,Google Sheets,Automation,Sku,我想在我的Google sheets CSV中创建一个列(SKU),当在每个单元格中手动输入数据时,它将自动填充其他3列(标题、颜色、大小)中的内容 我创建了一个CSV示例,其中突出显示了必要的列 B列-产品名称I列-颜色K列-尺寸N列-SKU SKU输入示例(手动输入N列) L24-1-000C-2-150 分配给每个部分的值的细分: L24=轻质运动鞋S24=凉鞋 1=蓝色2=红色 000=0 150=1.5 输出(在B、I和K列中自动执行) “轻量级训练器”、“蓝色”、“0” “凉鞋”、“
B列-产品名称
I列-颜色
K列-尺寸
N列-SKU
SKU输入示例(手动输入N列)
L24-1-000
C-2-150
分配给每个部分的值的细分:
L24=轻质运动鞋
S24=凉鞋
1=蓝色
2=红色
000=0
150=1.5
输出(在B、I和K列中自动执行)
“轻量级训练器”、“蓝色”、“0”
“凉鞋”、“红色”、“1.5”
链接到CSV
请尝试以下方法:
B1:=数组公式(如果(A1:A=“手柄”、“标题”、如果(索引(拆分(N1:N)”,,1)=“L32”、“轻型训练器”、如果(索引(拆分(N1:N)”,,1)=“S24”、“凉鞋”、“靴子”))
I1:=arrayformula(IF(A1:A=“Handle”,“Option1 Value”,IF(LEN(索引)(拆分(N1:N,“-”),2))>1,“多色”,IF(索引(拆分(N1:N,“-”),2)=1,“蓝色”,IF(索引(拆分(N1:N,“-”),2)=2,“红色”,IF(索引(拆分(拆分(N1:N,“-”,2)=“C”,“奶油”,”),“))”)
K1:=arrayformula(如果(A1:A=“句柄”,“选项2值”,中间(N1:N,LEN(N1:N)-2,3))
请尝试以下方法:
B1:=数组公式(如果(A1:A=“手柄”、“标题”、如果(索引(拆分(N1:N)”,,1)=“L32”、“轻型训练器”、如果(索引(拆分(N1:N)”,,1)=“S24”、“凉鞋”、“靴子”))
I1:=arrayformula(IF(A1:A=“Handle”,“Option1 Value”,IF(LEN(索引)(拆分(N1:N,“-”),2))>1,“多色”,IF(索引(拆分(N1:N,“-”),2)=1,“蓝色”,IF(索引(拆分(N1:N,“-”),2)=2,“红色”,IF(索引(拆分(拆分(N1:N,“-”,2)=“C”,“奶油”,”),“))”)
K1:
=arrayformula(如果(A1:A=“Handle”,“Option2 Value”,MID(N1:N,LEN(N1:N)-2,3))
我想为您的问题提出一个替代解决方案。您可以使用来修改和更新电子表格。使用此方案,您可以轻松添加标题和颜色的新代码,以及仅使用应用程序脚本可用的不同新功能
在这种情况下,您需要打开应用程序脚本,单击Tools>scripteditor
,您将看到脚本编辑器。它基于并允许您使用名为的服务创建、访问和修改GoogleSheets文件
在我随附的代码中,有一个名为[onEdit]的函数,每当用户修改电子表格中任何单元格的值时都会调用该函数。由于该触发器,您可以在列SKU
中写入新值,其他值可以同时更新。您只需将初始函数替换为以下代码,并修改一些内容,我添加了一些注释以帮助您理解所有内容:
函数onEdit(e){
const sheetName='abc'//主工作表的名称
const col=SpreadsheetApp.getActive().getRange('N:N').getColumn()//sku列
//调用只更新sku列中已更新列的函数
如果(
e、 source.getSheetName()==sheetName&&
e、 range.columnStart==列&&
e、 range.columnEnd==列)
{
main(sheetName)//更新函数
}
}
函数主(sheetName){
//sku
var ss=SpreadsheetApp.getActive().getSheetByName(sheetName)
var sku=ss.getRange('N2:N').getValues().filter(String)//N:列ok sku
var last_row=库存单位长度+1
//头衔
标题=[…sku]
title.forEach(title_func)
ss.getRange('I2:I'+最后一行)。设置值(标题)
//颜色
颜色=[…sku]
color.forEach(color\u func)
ss.getRange('K2:K'+最后一行)。设置值(颜色)
//大小
大小=[…sku]
size.forEach(size\u func)
ss.getRange('M2:M'+最后一行).setNumberFormat('@').setValues(大小)
}
函数标题_func(项、索引、arr){
常量代码=项[0]。拆分('-')[0]
变量标题={
“L32”:“轻量级训练器”,
‘S24’:‘凉鞋’,
“T19”:“靴子”,
“T1”:“Test”
}
arr[索引]=[标题[代码]]
}
函数颜色函数(项、索引、arr){
常量代码=项[0]。拆分('-')[1]
变量颜色={
“1”:“蓝色”,
“2”:“红色”,
“1M”:“多色”,
C:“奶油”,
“O”:“橙色”,
‘T’:‘Test’
}
arr[index]=[colors[code]]
}
函数大小函数(项、索引、arr){
常量代码=项[0]。拆分('-')[2]
arr[索引]=[代码]
}
参考文献
- 我想为您的问题提出另一种解决方案。您可以使用来修改和更新电子表格。使用此方案,您可以轻松添加标题和颜色的新代码,以及仅使用应用程序脚本可用的不同新功能
在这种情况下,您需要打开应用程序脚本,单击
Tools>scripteditor
,您将看到脚本编辑器。它基于并允许您使用名为的服务创建、访问和修改GoogleSheets文件
在我随附的代码中,有一个名为[onEdit]的函数,每当用户修改电子表格中任何单元格的值时都会调用该函数。由于该触发器,您可以在列SKU
中写入新值,其他值可以同时更新。您只需将初始函数替换为以下代码,并修改一些内容,我添加了一些注释以帮助您理解所有内容:
函数onEdit(e){
const sheetName='abc'//主工作表的名称
const col=SpreadsheetApp.getActive().getRange('N:N').getColumn()//sku列
//调用只更新sku列中已更新列的函数
如果(
e、 source.getSheetName()==sheetName&&
e、 range.columnStart==列&&
e、 range.columnEnd==列)
{