【问题标题】:Display a column of data in a new column, using column heading使用列标题在新列中显示一列数据
【发布时间】:2019-01-13 11:57:35
【问题描述】:

我正在尝试根据下拉列表在 Excel 中创建可调用的数据列。

这个想法是在列末尾的标题单元格中创建所有列名的列表,使用 Excel 中数据菜单中的数据验证。

然后,当您从列表中选择列名时,整个列将使用您引用的名称中的列值填充。

它应该看起来像这样。

当只有少数列要调用时,使用 IF 语句很容易做到这一点。当您希望能够引用数百列时。 IF 语句方法意味着您将不得不编写数百个 IF 语句。

有没有办法使用 VBA 或其他方式对许多列执行此操作?

【问题讨论】:

    标签: excel vba drop-down-menu excel-formula


    【解决方案1】:

    我不完全确定您现在想做什么,但这将是一个如何存储您的值或只是将它们从工作表中的另一个地方复制过来的想法

    Sub Test()
    
        Dim Column_1 As Variant
    
            Column_1 = Range("B1:B500")
        'You could use "Column_1" to get your values whereever you need 
    End Sub
    
    Sub Test_2()
        If Sheets("OneOfYourSheets").Range("B1") = Sheets("OneOfYourSheets").Range("xyz1") Then
            Sheets("OneOfYourSheets").Range("B2:B501") = Sheets("OneOfYourSheets").Range("xyz2:xyz501")
        End If
    End Sub
    

    【讨论】:

    • 当下拉列表选择该列名时是否会调用此数据?
    • 我试图从下拉菜单中选择的数据是从工作表中的其他列中抓取的,如下所示... =IF($F$1=$A$1,$A2,IF( $F$1=$B$1,$B2,IF($F$1=$C$1,$C2,IF($F$1=$D$1,$D2,)))))
    【解决方案2】:

    这是INDEX/MATCH的教科书案例。

    F2 中,输入以下公式:=INDEX(A:D,ROW(),MATCH(F$1,$A$1:$D$1,0)),其中ROW() 为您提供行号,MATCH 为您提供列号。

    【讨论】:

    • 这正是我想要的。谢谢。
    猜你喜欢
    • 2013-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多