Excel:非常长的IF($ Cell =键,值)列表的替代品?

时间:2012-04-26 21:49:54

标签: excel arraylist excel-formula

我的公式看起来如下:

=(IF(ISBLANK(B1),1, (IF($B1="Banana", 2.23, IF($B1="Cherry",3.5))) )*C1*A1)

此处,单元格B1的值是从数据验证下拉列表中提取的,与上面的示例不同,该列表变得非常非常长,具有许多IF和OR运算符。我很快就不可能宣布维持所有bannans和樱桃在它自己的配方中的关系。使用大致相同的信息更新列表和公式的重点是什么 - 只是为了给用户一个下拉列表:/

我可以选择将乘数值放在下拉列表中,然后使用VALUE(RIGHT(B1,LEN(B1)-FIND("x",B1)) to pull it out。但在这种情况下,乘数是一个非常长的小数,会让最终用户感到困惑,例如:“Banana 0.000000d325001”

我看到两种可能性:

1.找到一种方法,通过某种预处理隐藏乘法器在下拉菜单中显示给用户,或者

  1. 找到一种方法将香蕉和樱桃关联在某种数组中键:不会在下拉菜单中显示的价值关系。
  2. 有谁知道如何实现这一目标 - 这是可行还是只是一个受伤的世界?

    感谢大家的帮助。

2 个答案:

答案 0 :(得分:1)

基本上,您只需要一张包含水果/价格信息的表格,然后您的查询和验证就会跟随该表格。

Screen capture of Excel spreadsheet showing VLOOKUP formula and data

现在我看到你的第二个评论,问题有点棘手。我会使用命名范围。不要使用=VLOOKUP(B1,G$1:H$3,2,FALSE),而是使用=VLOOKUP(B1,FruitTable,2,FALSE)

FruitTable是一个命名范围。您可以通过选择G1:H3,然后在公式栏左侧的框中键入FruitTable来创建命名范围(在上图中,这是包含“C1”的框;如果您点击该框,可以输入名称。

您还可以在验证菜单中使用此“命名范围”技术,但您只想选择G1:G3并为其指定其他名称,例如FruitList。然后,在设置验证时,请使用=FruitList作为源。

现在,当您向列表中添加新项目时,您只需调整命名范围(使用公式/名称管理器)。

答案 1 :(得分:0)

=(IF(ISBLANK(B1), 1, VLOOKUP(B1,YOUR_NAMED_RANGE,2,FALSE)*C1*A1)

其中YOUR_NAMED_RANGE是一个两列命名范围,包含Col1中的Banana,Cherry等,以及Col2中的乘数

相关问题