0

我试图弄清楚是否可以从列表中选择一个 Excel 项目——当该列表在单个单元格中时——使用预定义的函数,或者我是否必须编写自己的 VBA 来制作它发生了。

类似于该=CHOOSE()函数的东西似乎是我需要的,因为如果所有值都在单独的单元格中,它就可以工作:

      A                            B                       
1alpha  =CHOOSE(2,A1,A2,A3,A4,A5)
2beta                                                     
3gamma                                                 
4delta                                                     
5epsilon                                                 

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

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

                          A                                   B             
1alpha,beta,gamma,delta,epsilon=CHOOSE(2,A1)

而在这个结构中,B1中的公式会导致#VALUE!错误。我确实理解为什么会发生此错误 - 但我想知道是否有:

  1. 使 Excel 将单元格A1中的逗号分隔值解释为五个单独值的某种方法,或
  2. 我应该使用一些替代功能来实现这一目标。

如果 Excel 无法处理它,我将编写自己的函数——但这似乎是一个非常直接的需求,我假设该程序已将它内置在某个地方。

4

2 回答 2

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
于 2013-10-28T17:27:08.070 回答
0

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

在 Text to Columns 功能中,您需要在第一页上专门选择“分隔”选项,然后在第二页上选择“逗号”,如果您的数据与您在上面的示例中完全一样。

于 2017-01-09T23:15:48.617 回答