Nome definido da célula de retorno da fórmula

Nome definido da célula de retorno da fórmula

Preciso de uma fórmula para usar o endereço da célula e retornar o nome definido pela célula, ou seja

=INDIRECT(ADDRESS(ROW(),COLUMN(),1,,"SHEET 001"))

Preciso que isso ADDRESS(ROW(),COLUMN()se refira ao nome definido na célula atual
, ou seja, "vendas" e não$A$1

Responder1

Eu encontrei uma solução rápida, embora reconhecidamente um pouco limitada.

  1. faça uma lista de colagem de todos os nomes definidos em uma área limpa de uma planilha.
  2. A fórmula a seguir criará uma string semelhante ao endereço de célula totalmente qualificado que você está procurando, combinando-o na lista e retornando o nome da célula da coluna adjacente =INDEX(NameList,MATCH("='"&SUBSTITUTE(CELL(" nome do arquivo"),"nome_do_arquivo_totalmente_qualificado","")&"'!"&CELL("endereço"),NomeReferências,0))

Obviamente, está limitado a nomes que apontam para uma única célula, mas pode ser estendido para pesquisar intervalos de células.

Funciona para mim porque o nome da célula que exibe os dados é o nome do campo de dados, então não importa onde eu coloque, a referência estará sempre correta.

Enquanto trabalho no projeto, incluí uma instrução em uma macro executada com frequência que atualiza a lista de Nomes para mantê-la atualizada.

Responder2

Não posso receber o crédito por escrever este código, mas ele faz exatamente o que você precisa. Eu precisava do mesmo recurso há alguns anos e me deparei com esse código em algum lugar do ciberespaço, talvez o tenha modificado um pouco, mas não consigo me lembrar de nenhuma maneira. Funcionou muito bem para mim.

Funciona assim:

  1. Cole o código abaixo em um módulo VBA de uma pasta de trabalho habilitada para macro do Excel (*.xlsm).
  2. Em seguida, digite em uma célula da planilha do Excel algo como "=CellName(F19)" e retornará algo como "rngSomeNamedCell".

Aqui está o código:

Public Function CellName(cel As Range) As Variant
Dim nm As Name
    For Each nm In Names
        If nm.RefersTo = "=" & cel.Parent.Name & "!" & cel.Address Then
            CellName = nm.Name
            Exit Function
        End If
    Next
CellName = CVErr(xlErrNA)
End Function

Responder3

Não acredito que exista uma função integrada do Excel que faça isso. Você poderia usar uma função definida pelo usuário para retornar o nome da célula.

As duas funções abaixo retornarão o nome da célula. Um usa uma referência de célula, o outro usa uma linha e uma coluna. Ambos estão configurados apenas para funcionar na planilha local no momento, mas você pode adicionar uma variável opcional para obter um nome de planilha, se necessário.

A primeira função seria chamada com=cell_name()

Gordon

Function cell_name() As String
dim rng as Range
On Error Resume Next

set rng = activeCell

If Len(rng.Name.Name) < 0 Then
    cell_name = "No named Range"
    Exit Function
End If

cell_name = rng.Name.Name

if instr("cell_name","!")>0 then
    cell_name = Right(cell_name, Len(cell_name) - InStr(cell_name, "!"))
end if

End Function

a segunda função retorna o nome da célula de uma determinada linha e coluna

Function cell_name2(r As Long, c As Long) As String
Dim rng As Range

Set rng = Cells(r, c)
On Error Resume Next

If Len(rng.Name.Name) < 0 Then
    cell_name = "No named Range"
    Exit Function
End If

cell_name2 = rng.Name.Name

End Function

Editada a primeira função para funcionar na célula ativa.

informação relacionada