我在 Excel 中有一个表格,其中有一个标题行,单元格 A2(文本)、B2(文本)、C2(文本)、D2(文本)和 E2(数字)中有数据。A2、B2、C2、D2 是下拉列表,其中有不同的可选数据。E2 是一个公式,每次向表格中添加新行时都会自动生成一个增量数字。
我想在单元格 N2 中自动生成一个引用,该引用由 A2、B2、C2、D2、E2 中的数据组成。例如:
A2=苹果 B2=绿色 C2=成熟 D2=位置 E2=0001
单元格 N2 中的期望结果将是 APP-GRE-RIP-LOC-0001
我取得了一些成功:
=IF(A2=”苹果”,”APP-“&E2)
单元格 N2 中的结果将是 APP-0001。但是我不确定如何嵌套这些,因此结果会根据单元格中的数据而不同。此外,是否有更灵活的公式,因为下拉列表中的数据可能会随着时间的推移而扩大。
提前致谢!
2
最佳答案
2
不要使用Concatenate()
。它不是必需的,而且输入起来太多。您可以直接使用&
字符。
您似乎想要取出单元格的前三个字符并将它们串在一起,用破折号“-”分隔,然后是 E2 中的值。为此,您可以使用:
=UPPER(LEFT(A2,3)&"-"&LEFT(B2,3)&"-"&LEFT(C2,3)&"-"&LEFT(D2,3)&"-"&E2)
该公式使用 LEFT() 函数从单元格 A2 到 D2 中提取前三个字符,在它们之间添加破折号,连接 E2,然后使用 UPPER() 将整个内容转换为大写
或者更短
=UPPER(CONCAT(LEFT(A3:D3,3)&"-",E3))
1
-
1太棒了!效果非常好。谢谢。
–
|
另一个选项是 TEXTJOIN:
=TEXTJOIN("-",,UPPER(LEFT(B2:F2,3)))
|
=CONCAT(A2&"-"&B2&"-"&C2&"-"&D2&"-"&E2)
?如果 D2 是静态字符串值,我会通过格式化将其表示为前缀。–
–
|