谷歌表格:如何提取单元格公式中的列标识(而非计算结果)
提取Excel单元格公式中的列标识方法
方法一:用内置函数组合实现
如果你的Excel版本是2013及以上,可以用FORMULATEXT函数获取单元格的公式文本,再通过文本函数提取列标识。比如要提取A1公式里的列标识,在任意空白单元格输入以下公式:
=LEFT(MID(FORMULATEXT(A1),2,LEN(FORMULATEXT(A1))-1),MIN(FIND({0,1,2,3,4,5,6,7,8,9},MID(FORMULATEXT(A1),2,LEN(FORMULATEXT(A1))-1)&"0123456789"))-1)
这个公式的逻辑是:
FORMULATEXT(A1)获取A1的原始公式文本(比如返回"=B1")MID(...,2,...)去掉开头的=,得到"B1"- 用
FIND找到第一个数字的位置,再用LEFT截取数字前的部分,就是列标识"B"
注:这个公式也支持提取多字母列标识,比如公式是=AA10时,会返回"AA"
方法二:自定义VBA函数
如果需要更灵活的处理(比如兼容旧版Excel),可以写个简单的VBA自定义函数:
- 按
Alt+F11打开VBA编辑器 - 插入一个新模块,粘贴以下代码:
Function GetColumnFromFormula(rng As Range) As String Dim formulaText As String Dim i As Integer formulaText = Mid(rng.Formula, 2) ' 移除公式开头的= ' 遍历字符,直到碰到第一个数字 For i = 1 To Len(formulaText) If IsNumeric(Mid(formulaText, i, 1)) Then GetColumnFromFormula = Left(formulaText, i - 1) Exit Function End If Next i ' 处理公式里没有数字的极端情况(比如=B) GetColumnFromFormula = formulaText End Function
- 返回Excel界面,在单元格输入
=GetColumnFromFormula(A1),就能直接得到A1公式中的列标识。
内容的提问来源于stack exchange,提问作者Matheus
相关产品推荐
相关产品推荐

