Die Formel gibt den definierten Namen der Zelle zurück

Die Formel gibt den definierten Namen der Zelle zurück

Ich brauche eine Formel, um die Zelladresse zu verwenden und den zelldefinierten Namen zurückzugeben, d. h.

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

Ich brauche dies, ADDRESS(ROW(),COLUMN()um auf den aktuellen Zelle definierten Namen zu verweisen,
also "Verkäufe" und nicht$A$1

Antwort1

Mir ist schnell eine Problemumgehung eingefallen, die allerdings zugegebenermaßen etwas eingeschränkt ist.

  1. Führen Sie eine Einfügen-Liste aller definierten Namen in einen freien Bereich eines Blattes durch.
  2. Die folgende Formel erstellt eine Zeichenfolge, die der gesuchten vollqualifizierten Zelladresse ähnelt, sie in der Liste abgleicht und den Zellnamen aus der angrenzenden Spalte zurückgibt: =INDEX(NameList,MATCH("='"&SUBSTITUTE(CELL("filename"),"fully_qualified_filename","")&"'!"&CELL("address"),NameReferences,0))

Es ist offensichtlich auf Namen beschränkt, die auf eine einzelne Zelle verweisen, könnte aber auf die Suche in Zellbereichen erweitert werden.

Bei mir funktioniert es, weil der Name der Zelle, die die Daten anzeigt, der Name des Datenfelds ist. Daher ist die Referenz immer korrekt, egal, wo ich es eingebe.

Während ich an dem Projekt arbeite, habe ich in ein oft ausgeführtes Makro eine Anweisung eingefügt, die die Namensliste aktualisiert, um sie auf dem neuesten Stand zu halten.

Antwort2

Ich kann mir nicht das Verdienst für das Schreiben dieses Codes zuschreiben, aber er tut genau das, was Sie brauchen. Ich brauchte vor einigen Jahren dieselbe Funktion und bin irgendwo im Cyberspace auf diesen Code gestoßen, habe ihn vielleicht ein wenig modifiziert, aber ich kann mich nicht mehr erinnern. Bei mir hat er großartig funktioniert.

Es funktioniert so:

  1. Fügen Sie den folgenden Code in ein VBA-Modul einer Excel-Arbeitsmappe mit Makros (*.xlsm) ein.
  2. Geben Sie dann in eine Excel-Arbeitsblattzelle etwas wie „=CellName(F19)“ ein und es wird etwas wie „rngSomeNamedCell“ zurückgegeben.

Hier ist der Code:

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

Antwort3

Ich glaube nicht, dass es eine integrierte Excel-Funktion gibt, die dies kann. Sie könnten eine benutzerdefinierte Funktion verwenden, um den Zellennamen zurückzugeben.

Die beiden folgenden Funktionen geben den Namen der Zelle zurück. Eine nimmt einen Zellverweis, die andere eine Zeile und Spalte. Beide sind derzeit nur für die Arbeit auf dem lokalen Blatt eingerichtet, aber Sie können bei Bedarf eine optionale Variable hinzufügen, um einen Arbeitsblattnamen anzunehmen.

Die erste Funktion wird aufgerufen mit=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

Die zweite Funktion gibt den Zellennamen aus einer gegebenen Zeile und Spalte zurück

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

Die erste Funktion wurde bearbeitet, damit sie mit der aktiven Zelle funktioniert.

verwandte Informationen