2016-08-03 17 views
1

Ich habe eine Tabelle in Excel wie folgt formatiert:Variable benannte Bereiche in Excel

Date  Asset Return 
1/3/2005 0.003582399 
1/4/2005 -0.01908258 
1/5/2005 0.002080625 
1/6/2005 0.005699497 
1/7/2005 -0.008040505 
1/10/2005 -0.00339116 
1/11/2005 -0.009715187 
1/12/2005 0.002371855 
1/13/2005 -0.00580783 
1/14/2005 0.001058481 
1/18/2005 0.015483842 
1/19/2005 -0.014690715 
1/20/2005 -0.015714799 
1/21/2005 -0.010796326 

Ich brauche einen benannten Bereich jede Spalte zu verweisen. Die Arbeitsmappe ist eine Vorlage, sodass der benannte Bereich je nach Daten nicht immer die gleiche Anzahl von Zeilen umfasst. Ich möchte es so einstellen, dass der benannte Bereich "Date" und der benannte Bereich "Asset Return" automatisch so bemessen werden, dass sie die gesamte Spalte vom ersten bis zum letzten Wert abdecken, ohne den letzten Wert in der Spalte zu überschreiten.

Es wird immer bei Zelle B8 beginnen, aber möglicherweise in einer anderen Zeile enden, abhängig von der Größe der Daten.

Wie kann ich einen dynamischen benannten Bereich festlegen, um dies zu erreichen?

Antwort

3

Diese benannten Bereich Formel wird es tun:

=Sheet1!$B$8:INDEX(Sheet1!$B:$B,COUNTA(Sheet1!$B:$B)+8) 

Erinnern Sie sich die Blattnamen als der benannte Bereich sonst auf dem aktiven Blatt arbeiten wird hinzuzufügen.

Die Formel beginnt nimmt B8 wie es Ausgangspunkt ist: Sheet1!$B$8
dann zählt es, wie viele Zellen in Spalte B nicht leer sind: COUNTA(Sheet1!$B:$B)
Es fügt 8 der Zählung (Ihre ersten Zeilen sind leer vorausgesetzt).
Es verwendet dann INDEX und COUNTA, um die letzte Zelle zu referenzieren.

https://support.office.com/en-gb/article/INDEX-function-a5dcf0dd-996d-40a4-a822-b56b061328bd
https://support.office.com/en-gb/article/COUNTA-function-7dc98875-d5c1-46f1-9a82-53f3219e2509

+0

Ich würde es vorziehen '= OFFSET (Sheet1 $ B $ 8,0,0, COUNTA (Sheet1 $ B +! $ B), 1)' – PaichengWu

+2

Wow, wusste nie, Artikel im Kolon Bereichsnotation könnte berechnet werden !! Groß! – Taosique

+1

Sie können 'OFFSET' verwenden, aber das ist eine' volatile' Funktion im Gegensatz zu 'INDEX'. Das bedeutet, dass es jedes Mal neu berechnet wird, wenn Excel neu berechnet, unabhängig davon, ob vorhergehende Daten geändert wurden (so ziemlich das Wort für Wort kopiert, also hier der Link: http://www.decisionmodels.com/calcsecretsi.htm). –

1

starten VBA-Code

Sub test() 
    application.DisplayAlerts = false 
    Range("B8").currentregion.createnames _ 
     top:true, right:=false, left:=false, bottom:=false 
    application.DisplayAlerts = true 
end sub 
Verwandte Themen