Excel - 从列表中选择项目

时间:2013-10-28 17:09:56

标签: excel

我正在试图弄清楚是否可以从列表中选择一个Excel项目 - 当该列表在单个单元格中时 - 使用预定义函数,或者如果我将不得不自己编写VBA实现它。

类似于=CHOOSE()函数的东西似乎就是我所需要的,因为如果所有值都在不同的单元格中,它就会起作用:

A
1 阿尔法 =选择(2,A1,A2,A3,A4,A5)
2 β
3 伽马
4 增量
5 小量

上面的单元格 B1 中的公式给出了我期望的值:“beta”。

但是构建源数据的方式,值都在同一个单元格中:

A
1 α,β,γ,δ,ε =选择(2,A1)

在此构造中, B1 中的论坛会导致#VALUE!错误。我理解为什么会出现这个错误 - 但我想知道是否有这样的错误:

  1. 使Excel将单元格 A1 中以逗号分隔的值解释为五个单独值的方法,或
  2. 我应该使用一些替代功能来实现这一目标。
  3. 如果Excel无法处理它,我会编写自己的函数 - 但这似乎是一种直截了当的需求,我认为该程序是在某个地方构建的。

2 个答案:

答案 0 :(得分:0)

如果你在A1中有csv列表,那么运行这个宏:

Sub Macro1()
    With Range("B1").Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:=Range("A1").Value
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .ShowInput = True
        .ShowError = True
    End With
End Sub

答案 1 :(得分:0)

如果您点击要拆分的单元格,请点击"数据>文字到列"然后您可以将逗号中的数据拆分为单独的单元格。然后,您可以使用您习惯使用的“选择”公式。

在Text to Columns功能中,您需要专门选择" Delimited"选项在第一页上,然后选择"逗号"在第二页上,如果您的数据与上述示例中的数据完全相同。