Google 工作表 - 将多个 IF 函数合并到一个单元格中

Google Sheets - Combine multiple IF Functions into one cell

我正在尝试使用三个变体的值在 Google 表格中为产品生成 SKU (标题、颜色和尺寸)

该产品是 'Lightweight trainers',颜色有 'Red' 和 'Blue',尺码范围为 5 - 12。

Link 到电子表格

https://docs.google.com/spreadsheets/d/1trq0X3MjR-n2THFnT8gYYlwKscnQavCeeZ8L-ifYaHw/edit?usp=sharing

瞄准

我希望有一个显示产品、颜色变体和鞋码的 SKU。 示例:LW-1-8 (轻便运动鞋,红色,尺码 8)

产品是价值 LW 的轻量级运动鞋。

颜色变体 'Red' 值为 1,'Blue' 值为 2。

鞋码变体 = 数字从 5 到 12。

这是我目前拥有的,加入了颜色和尺寸变体。

=IFS(I2="Red",1,I2="Blue",2)&"-"& IFS(K2="5",5,K2="6",6,K2="7",7,K2="8",8,K2="9",9,K2="10",10,K2="11",11,K2="12",12)

但是,我无法使用此函数连接 B 列中的数据。

对于将来自多个单元格的这些数据合并为一个单元格的任何帮助,我们将不胜感激。

在 N2 中尝试:

=IFS(I2="Red",1,I2="Blue",2)&"-"& 
 IFS(K2=5,5,K2=6,6,K2=7,7,K2=8,8,K2=9,9,K2=10,10,K2=11,11,K2=12,12)

或使用:

=IF(I2="red", 1, IF(I2="blue", 2, )&IF((K5>=5)*(K5<=12), "-"&K5, )

TL;DR

=ARRAYFORMULA(IF(B2:B<>"", IFS(B2:B="Lightweight Trainers", "LW")&"-"&IFS(I2:I="Blue", 1, I2:I="Red", 2)&"-"&K2:K,))

回答

你想要的基本上是:

<title>-<color number>-<shoe size>

要将其转换为函数,我们可以将其拆分为每个部分并逐步执行:

第 1 步:标题 对于第一部分 - 标题 - 我们需要将值与 shorthand 相匹配。 IFS 中的一个简单列表就足够了。

IFS(B2="Lightweight Trainers", "LW")

显然现在它只有一个值(轻量级训练师),但您可以添加更多:

IFS(B2="Lightweight Trainers", "LW", B2="Heavyweight Trainers", "HW")

第二步:色号 和上一步类似,是使用ifs的映射:

IFS(I2="Blue", "-1", I2="Red", "-2")

破折号已添加,因此在添加所有内容时只有在

时才会有破折号

第 3 步:鞋码 在这种情况下,我们可以简单地获取值:

K2

第 4 步:将所有内容相加 我们只需要在中间添加破折号:

=IFS(B2="Lightweight Trainers", "LW")&"-"&IFS(I2="Blue", 1, I2="Red", 2)&"-"&K2

第 5 步:自动扩展整个列

我们将使用 ARRAYFORMULA 将单个公式添加到第一个单元格并使其自动扩展到整列。我们首先将它添加到我们已有的公式中,然后将范围扩展到整列:

=ARRAYFORMULA(IFS(B2:B="Lightweight Trainers", "LW")&"-"&IFS(I2:I="Blue", 1, I2:I="Red", 2)&"-"&K2:K)

记得删除列中的所有值,这样数组公式就不会覆盖它们(否则会产生错误)。

如您所见,公式为没有值的行生成错误。处理这种情况的一个好方法是过滤没有标题的行。在一行中将是:

=IF(B2<>"", [the entire formula],)

注意最后一个逗号。

所以将所有内容放在一起并将其范围扩展到列,是:

=ARRAYFORMULA(IF(B2:B<>"", IFS(B2:B="Lightweight Trainers", "LW")&"-"&IFS(I2:I="Blue", 1, I2:I="Red", 2)&"-"&K2:K,))

将此添加到 N2 应该有效。

最后的笔记

大小不是整数的时候好像用了150。如果您想保留该功能,您可以使用:

IF(K2-int(K2)=0, K2, 150)

在最后一个组件上,用同样的方式展开。

您可能还想防止在缺少值时出现两个破折号(LW-5 而不是 LW--5)。为此,我建议将它添加到每个组件中,而不是将它们添加到一起的公式。

参考资料