如何解决Google Sheets - 创建将内容自动化到单独列的 SKU
我想在我的 Google 表格 CSV 中创建一个列 (SKU),当在每个单元格中手动输入数据时,它会自动填写其他 3 个列(标题、颜色、大小)中的内容。
Column B - Product title
Column I - Colour
Column K - Size
Column N - SKU
SKU 输入示例(手动输入到 N 列)
L24-1-000
C-2-150
分配给每个部分的值的细分:
L24 = Lightweight trainers
S24 = Sandals
1 = Blue
2 = Red
000 = 0
150 = 1.5
'Lightweight trainers','Blue','0'
'Sandals','Red','1.5'
CSV 链接
https://docs.google.com/spreadsheets/d/1E6NypRcWk4kR7WGsyEzt7Uuja8dU7SaszT9lvJPpHcg/edit?usp=sharing
解决方法
请试试这个:
B1:=arrayformula(IF(A1:A="Handle","Title",IF(INDEX(SPLIT(N1:N,"-"),1)="L32","Lightweight Trainers",1)="S24","Sandals","Boots"))))
I1:=arrayformula(IF(A1:A="Handle","Option1 Value",IF(LEN(INDEX(SPLIT(N1:N,2))>1,"Multicoloured",2)=1,"Blue",2)=2,"Red",2)="C","Cream",))))))
K1:=arrayformula(IF(A1:A="Handle","Option2 Value",MID(N1:N,LEN(N1:N) - 2,3)))
我想向您提出一个替代解决方案来解决您的问题。您可以使用 Google Apps Script 来修改和更新您的电子表格。借助此提案,您可以轻松地为 titles 和 colors 添加新代码,以及只能使用 Apps 脚本才能使用的不同新功能。
在这种情况下,您需要点击 Tools > Script editor
打开 Apps 脚本,您将看到脚本编辑器。它基于 JavaScript,允许您使用名为 Spreadsheet Service
在我随附的代码中,有一个名为 [onEdit] 的函数,每次用户修改电子表格中任何单元格的值时都会调用该函数。由于该触发器,您可以在列 SKU
中写入新值,而其他值可以同时更新。你只需要用下面的代码替换初始函数,并调整一些东西,我已经添加了注释来帮助你理解一切:
function onEdit(e) {
const sheetName = 'abc' // name of your main sheet
const col = SpreadsheetApp.getActive().getRange('N:N').getColumn() // sku column
// call the function that updates the columns only in the sku column has been updated
if (
e.source.getSheetName() == sheetName &&
e.range.columnStart == col &&
e.range.columnEnd == col)
{
main(sheetName) // update function
}
}
function main(sheetName){
// sku
var ss = SpreadsheetApp.getActive().getSheetByName(sheetName)
var sku = ss.getRange('N2:N').getValues().filter(String) // N: column ok sku
var last_row = sku.length+1
// Title
title = [...sku]
title.forEach(title_func)
ss.getRange('I2:I'+last_row).setValues(title)
// Color
color = [...sku]
color.forEach(color_func)
ss.getRange('K2:K'+last_row).setValues(color)
// Size
size = [...sku]
size.forEach(size_func)
ss.getRange('M2:M'+last_row).setNumberFormat('@').setValues(size)
}
function title_func(item,index,arr){
const code = item[0].split('-')[0]
var titles = {
'L32':'Lightweight Trainers','S24':'Sandals','T19':'Boots','T1':'Test'
}
arr[index] = [titles[code]]
}
function color_func(item,arr){
const code = item[0].split('-')[1]
var colors = {
'1':'Blue','2':'Red','1M':'Multicoloured','C':'Cream','O':'Orange','T':'Test'
}
arr[index] = [colors[code]]
}
function size_func(item,arr){
const code = item[0].split('-')[2]
arr[index] = [code]
}
参考
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。