繁体   English   中英

Excel公式,该公式可让我根据另一个单元格中的值在一个单元格中显示数据范围

[英]Excel formula that will let me show a data range in a cell based on the value in another cell

我正在尝试创建一个表单,在该表单中,某人可以从下拉列表中选择一个值,然后它将根据第一个单元格的值在下一个单元格中创建另一个下拉列表。 下一个单元格下拉列表将需要引用单独工作表上的单元格范围,并且仅将第4-30行显示为下拉列表。

这可能吗? 我尝试使用带有间接公式的数据验证,但由于代码以数字开头,因此无法定义单元格范围。

任何的意见都将会有帮助?

这是一个使用VBA的非常简单的示例

将此事件宏放在工作表代码区域中:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim A1 As Range, B1 As Range
    Set A1 = Range("A1")
    Set B1 = Range("B1")
    If Intersect(A1, Target) Is Nothing Then Exit Sub
    Select Case A1.Value
        Case "animals"
            Call SetupDV(B1, "dog,cat,bird")
        Case "days"
            Call SetupDV(B1, "monday,tuesday,wednesday")
        Case "months"
            Call SetupDV(B1, "january,february,march")
    End Select
End Sub

并将此宏放在标准模块中:

Sub MAIN()
    Cells.Validation.Delete
    Call SetupDV(Range("A1"), "animals,days,months")
End Sub

Sub SetupDV(MyCells As Range, st As String)
    With MyCells.Validation
            .Delete
            .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
            Operator:=xlBetween, Formula1:=st
            .IgnoreBlank = True
            .InCellDropdown = True
            .InputTitle = ""
            .ErrorTitle = ""
            .InputMessage = ""
            .ErrorMessage = ""
            .ShowInput = True
            .ShowError = True
    End With
End Sub

然后运行

每当您从单元格A1中的下拉菜单中进行选择时,单元格B1中的下拉菜单都会相应地进行调整:

在此处输入图片说明

没有VBA代码,仅使用公式就可以解决此问题。

假设您的数据如下所示:

动态验证清单

  • 第一列选择列表是A2:A4中的Catgories。
  • 第二列选择列表将被选择为C2:C6 |之一。 D2:D6 | E2:E6,通过选择类别。
  • 在G2:G3中,您可以选择一个类别。
  • H2:H3将分别根据G中选择的类别显示列表。

H2:H3的验证列表源将使用以下公式定义:

=CHOOSE(MATCH(G2,$C$1:$E$1,0),$C$2:$C$6,$D$2:$D$6,$E$2:$E$6)

选择H2:H3,转到“数据验证”,选择“列表”,然后将此公式放在“源”中。 (范围参考将针对H3自动更新)。

公式:

MATCH部分为C1:E1中的类别名称返回1,2或3。 CHOOSE根据函数中提供的顺序分别返回范围C,D或E。

备注:

通过在验证列表公式中简单说明工作表名称Sheet2!C2:C6 ,范围可以引用另一个工作表中的单元格。 在早期版本的Excel中,您需要命名这些外部范围才能使其在验证列表中工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM