Wie wird die Adresse in Excel von der Formel zurückgegeben?

496
user823527

Ich habe ein Datenblatt, in dem die angezeigten Daten auf Auswahlmöglichkeiten der Combobox basieren. Die Werte werden mit einer Formel wie folgt berechnet:

INDEX(INDIRECT($Q61),SUMPRODUCT((INDIRECT($O$5)=$B$1)*(INDIRECT($O$6)=$B$2)*(INDIRECT($O$3)=$B$3)*(INDIRECT($O$7)=B$4)*ROW(INDIRECT($O$8)))-5),"") 

Bei Q61 handelt es sich um einen Bereich in einem anderen Blatt: 'Data'! $ AO $ 6: $ AO $ 104000 SUMPRODUCT erfüllt vier weitere Kriterien, die auf Combobox-Auswahlen basieren.

Die Formel sollte die Zeile im Bereich berechnen und einen Wert zurückgeben. Gibt es eine Möglichkeit in VBA, die durch diese Formel gefundene Adresse zu ermitteln. Es sollte so etwas wie 'Data' sein! $ AO $ 90. Ich muss die Adresse erhalten, da ich nach dem Hyperlink in dieser Adresse suche.

Die INDEX-Formel gibt den Wert in 'Data' korrekt zurück! $ AO $ 90. Ich möchte den Hyperlink zurücksetzen.

Dies ist ein Bild des Blattes. Jeder Wert wird mit einer INDEX-Formel wie oben gezeigt berechnet. Einige Werte sollten Hyperlinks enthalten. Ich muss die ursprüngliche Adresse in den 'Daten' bekommen! Blatt, um sie mit VBA zurückzusetzen, wenn der Benutzer eine neue Auswahl trifft.

Wie wird die Adresse in Excel von der Formel zurückgegeben?

0
Sie erhalten Excel, um Ihnen das `row_num` anzuzeigen, das vom` INDEX () `verwendet wird. Wählen Sie die Zelle mit der Formel aus und klicken Sie in der Formelleiste auf das Wort INDEX. Klicken Sie in der Dropdown-Liste auf "row_num" und drücken Sie die Taste "F9". Es gibt Abbildungen in einer Antwort auf [diese Frage] (https://superuser.com/questions/1315726/excel-getting-false-when-the-value-is-in-the-row-array/1315832#1315832) . Bandersnatch vor 6 Jahren 0
Sie können auch `= CELL (" Adresse ", Ihre Formulare) verwenden. Bandersnatch vor 6 Jahren 1

1 Antwort auf die Frage

0
p._phidot_

Aus dem 'Data'!$AO$6:$AO$104000Bereich erhalten Sie den Wert in 'Data'!$AO$90. Auf diese Weise funktionieren standardmäßige index () - Funktionen.

Da Sie nur die Adresse benötigen 'Data'!$AO$90, können Sie sie erhalten, indem Sie die Funktion index () halbieren, die Sie verwenden, um sie zu erhalten. Die Idee ist .. da index(<range>,<RowNumber>,<ColNumber>), und für diesen Fall ließ sich die 85 setzen. Also ist die "Adresse" die Sie brauchen

= "'Data'!$AO$"&(<RowNumber>+5) 

Probieren Sie es aus, ich hoffe, das hilft. (: