Excel:是否存在可以用来根据下拉值粘贴特定值的公式/代码?

Excel:是否存在可以用来根据下拉值粘贴特定值的公式/代码?

我是一名新用户,正在寻求有关 Excel 公式/宏代码的帮助。

为了演示我的场景,假设我有一个下拉列表,其值为“早餐、午餐和晚餐”。如果用户从下拉列表中选择早餐,则下面会出现一个独特的早餐菜单,其项目和价格为列。如果用户选择午餐或晚餐,下拉单元格下方会出现不同的菜单。

我希望公式简单一点:IF(A1=“Breakfast”,PASTE(BreakfastMenu) )

预先感谢您的帮助!

答案1

您使用的是哪个版本的 Excel?较新的版本允许一个单元格中的公式溢出到整个单元格区域。这非常接近您想要的效果:

=IF(A1="Breakfast",Menu!A1:F38)

不过,这太粗糙了,输入每个选项会很麻烦。让我们将其结合起来,IFS()这样我们就可以停在第一个真实结果上。

=IFS(A1="Breakfast",Menu!A1:F38,A1="Lunch",Menu!G1:L38,A1="Dinner",Menu!M1:R38,TRUE,"(Please select a meal)")

不过,由于所有空格都存在,因此将返回很多0值。让我们将所有这些汇总到一个变量中,然后将所有空格替换为实际空格,而不是 0。

=LET(result,IFS(A1="Breakfast",Menu!A1:F38,A1="Lunch",Menu!G1:L38,A1="Dinner",Menu!M1:R38,TRUE,"(Please select a meal)"),IF(result="","",result))

答案2

要获取具有单元格格式的值的副本,您可以使用Range.Value(11)UDF 中的属性。这是一个不寻常的函数。它将参数从一个单元格复制到另一个单元格,但函数调用本身放在另一个未使用的单元格中。通用模块中的代码。

Function VAL_11(src As Range, dst As Range) As String
      dst.Value(11) = src.Value(11)
End Function

函数有两个参数,第一个是源范围地址,第二个是目标地址。
两个范围都可以是单个单元格或具有相同尺寸的矩形区域。
此函数需要范围(引用)作为参数,因此它可以与函数一起使用IFS,但不能与FILTER函数一起使用。它的返回值是一个空字符串(前提是没有错误)。
上一篇文章中 IFS 函数的使用示例

=VAL_11(IFS(A1="Breakfast",Menu!A1:F38,A1="Lunch",Menu!G1:L38,A1="Dinner",Menu!M1:R38,TRUE, Menu!S1:X38), C1:H38)

示例文件在这里

相关内容