Excel使用公式返回表名?

问题描述 投票:3回答:3

我想知道是否还有使用公式返回表的名称?

我正在努力将几千个地址分解为信息透视列。即..#,街道,城市,州,邮政编码和电话#。地址不是Text to Columns可以使用的任何一致格式。我终于想出了完成工作的公式,但是很长。在一篇文章中,我发现它建议使用公式的重复部分作为定义名称。它使它变得如此简单。现在问题出在这里。

表名为“Table1”的公式在“Table2”中不起作用。或任何其他表名称。每个表的列标题相同。

MAX(SEARCH(Table1[@State],Table1[@Origin]))

需要一种返回表名的方法。通过公式或公式作为定义名称。

MAX(SEARCH(GetTableName[@State],GetTableName[@Origin]))

我更喜欢它是一个公式。我不确定VBA解决方案是否是这个问题的正确答案,所以即使它确实有效,我也无法选择它作为答案。仍将不胜感激。如果我找不到配方溶液,我会在另一个帖子中询问。

公司

我发现这篇帖子有VBA解决方案,但我无法使用它。我会张贴,所以有人可以解决这个问题。 Portland Runner发布此代码以获取表名。

Function GetTableName(shtName As String) As String
    GetTableName = Worksheets(shtName).ListObjects(1).Name
End Function

在该函数中,我输入名为“SheetName”的My Defined Name公式

=MID(CELL("filename"),FIND("]",CELL("filename"))+1,100)

所以我可以像这样使用它。

=MAX(SEARCH(INDIRECT(GetTableName(SheetName)&"[@State]"),INDIRECT(GetTableName(SheetName)&"[@Origin]")))

但是我仍然需要这个只有Formula。虽然我可以在我的电脑上运行宏,但它们不会在拥有所有数据的PC上运行。

这是我使用UDF的最后一件事。不幸的是我仍然无法使用它。加上它得到第一个表的名称,而不是单元格所在的实际表格。如果这是表格中唯一的表格,或者第一个表格是您想要的表格,那就太好了。

Function GetTableName() As String 
    GetTableName = Worksheets(ActiveSheet.Name).ListObjects(1).Name
End Function
excel formula defined tablename
3个回答
3
投票

这是一个VBA解决方案,因为你说你想看到它。这是您使用VBA创建的UDF(用户定义函数),但在单元格内用作公式。将代码保存在标准代码模块中,而不是表单模块或“ThisWorkbook”模块中。

Function GetTableName(cellInTable As Range) As String
    Dim tblName As String
    tblName = vbNullString
    On Error Resume Next
    tblName = cellInTable.ListObject.Name
    GetTableName = tblName
End Function

保存到模块后,您可以在单元格公式中使用它,如下所示:

=GetTableName(A1)

或这个

=GetTableName(B:B)

或这个

=GetTableName(B2:W900)

如果使用与多个表重叠的范围,则将返回第一个表的名称。


3
投票

您将需要两个单元格来获取表名称。我的表标题从第2行开始,第3行开始表数据,因此我将两个公式分别放在单元格A1和B1中。

第一个单元格应该引用表格的左上角标题单元格。对我来说,公式最终阅读:

=My2016Data[[#Headers],[State]]

并等同于“国家”。

第二个细胞的公式应该是:

=MID(FORMULATEXT(A1),2,FIND("[",FORMULATEXT(A1))-2)

并等同于“My2016Data”。


0
投票
=MID(
    FORMULATEXT(<CurrentCell>),
    53+2*<LengthOf<CurrentCell>>),
    LEN(FORMULATEXT(<CurrentCell>))-(53+2*<LengthOf<CurrentCell>>))-3
)&IF(0,<TableName>,"")
© www.soinside.com 2019 - 2024. All rights reserved.