Przejdź do głównej zawartości

Jak utworzyć dynamiczny nazwany zakres w programie Excel?

Zazwyczaj Nazwane zakresy są bardzo przydatne dla użytkowników programu Excel, możesz zdefiniować serię wartości w kolumnie, nadać tej kolumnie nazwę, a następnie możesz odwoływać się do tego zakresu według nazwy zamiast odwołań do komórek. Ale przez większość czasu musisz dodać nowe dane, aby w przyszłości rozszerzyć wartości danych z zakresu, którego dotyczy odwołanie. W takim przypadku musisz wrócić do Wzory > Menedżer nazw i przedefiniuj zakres, aby uwzględnić nową wartość. Aby tego uniknąć, możesz utworzyć dynamiczny nazwany zakres, co oznacza, że ​​nie musisz dostosowywać odwołań do komórek za każdym razem, gdy dodajesz nowy wiersz lub kolumnę do listy.

Utwórz dynamiczny nazwany zakres w programie Excel, tworząc tabelę

Utwórz dynamiczny nazwany zakres w programie Excel za pomocą funkcji

Utwórz dynamiczny nazwany zakres w programie Excel za pomocą kodu VBA


strzałka niebieski prawy bąbelek Utwórz dynamiczny nazwany zakres w programie Excel, tworząc tabelę

Jeśli używasz programu Excel 2007 lub nowszych wersji, najłatwiejszym sposobem utworzenia dynamicznego nazwanego zakresu jest utworzenie nazwanej tabeli programu Excel.

Powiedzmy, że masz zakres następujących danych, które muszą stać się dynamicznym nazwanym zakresem.

doc-dynamic range1

1. Najpierw zdefiniuję nazwy zakresów dla tego zakresu. Wybierz zakres A1: A6 i wprowadź nazwę Data do Nazwa Box, A następnie naciśnij przycisk Wchodzę klucz. Aby zdefiniować nazwę dla zakresu B1: B6 jako Saleprice w ten sam sposób. W tym samym czasie tworzę formułę = suma (cena sprzedaży) w pustej komórce, zobacz zrzut ekranu:

doc-dynamic range2

2. Wybierz zakres i kliknij wstawka > Stółzobacz zrzut ekranu:

doc-dynamic range3

3, w Utwórz tabelę pole zachęty, zaznacz Moja tabela ma nagłówki (jeśli zakres nie ma nagłówków, odznacz go), kliknij OK przycisk, a dane zakresu zostały przekonwertowane na tabelę. Zobacz zrzuty ekranu:

doc-dynamic range4 -2 doc-dynamic range5

4. Gdy wprowadzisz nowe wartości po danych, nazwany zakres zostanie automatycznie dostosowany, a utworzona formuła również zostanie zmieniona. Zobacz poniższe zrzuty ekranu:

doc-dynamic range6 -2 doc-dynamic range7

Uwagi:

1. Nowe wprowadzane dane muszą sąsiadować z powyższymi danymi, co oznacza, że ​​nie ma pustych wierszy ani kolumn między nowymi danymi a istniejącymi danymi.

2. W tabeli możesz wstawiać dane między istniejącymi wartościami.


strzałka niebieski prawy bąbelek Utwórz dynamiczny nazwany zakres w programie Excel za pomocą funkcji

W programie Excel 2003 lub wcześniejszej wersji pierwsza metoda nie będzie dostępna, więc oto inny sposób dla Ciebie. Następujące PRZESUNIĘCIE () funkcja może wyświadczyć ci tę przysługę, ale jest to nieco kłopotliwe. Przypuśćmy, że mam zakres danych zawierający nazwy zakresów, które zdefiniowałem, na przykład A1: A6 nazwa zakresu to Data, B1: B6 nazwa zakresu to Cena sprzedażyw tym samym czasie tworzę formułę dla Cena sprzedaży. Zobacz zrzut ekranu:

doc-dynamic range2

Możesz zmienić nazwy zakresów na nazwy zakresów dynamicznych, wykonując następujące czynności:

1. Przejdź do kliknięcia Wzory > Menedżer nazwzobacz zrzut ekranu:

doc-dynamic range8

2, w Menedżer nazw w oknie dialogowym wybierz element, którego chcesz użyć, i kliknij Edytuj przycisk.

doc-dynamic range9

3. W wyskoczył Edytuj imię wprowadź tę formułę = PRZESUNIĘCIE (Arkusz1! $ A $ 1, 0, 0, COUNTA ($ A: $ A), 1) do Odnosi się do pole tekstowe, patrz zrzut ekranu:

doc-dynamic range10

4. Następnie kliknij OK, a następnie powtórz krok 2 i krok 3, aby skopiować tę formułę = PRZESUNIĘCIE (Arkusz1! $ B $ 1, 0, 0, COUNTA ($ B: $ B), 1) do Odnosi się do pole tekstowe dla Cena sprzedaży nazwa zakresu.

5. Zostały utworzone dynamiczne nazwane zakresy. Gdy wprowadzisz nowe wartości po danych, nazwany zakres zostanie automatycznie dostosowany, a utworzona formuła również zostanie zmieniona. Zobacz zrzuty ekranu:

doc-dynamic range6 -2 doc-dynamic range7

Uwaga: Jeśli w środku zakresu znajdują się puste komórki, wynik formuły będzie nieprawidłowy. Dzieje się tak, ponieważ niepuste komórki nie są liczone, więc Twój zakres będzie krótszy niż powinien, a ostatnie komórki w zakresie zostaną pominięte.

Wskazówka: wyjaśnienie tego wzoru:

  • = OFFSET (odwołanie, wiersze, kolumny, [wysokość], [szerokość])
  • -1
  • = PRZESUNIĘCIE (Arkusz1! $ A $ 1, 0, 0, COUNTA ($ A: $ A), 1)
  • odniesienie odpowiada początkowej pozycji komórki w tym przykładzie Arkusz1! 1 $ A $ XNUMX;
  • rząd odnosi się do liczby wierszy, które zamierzasz przesunąć w dół w stosunku do komórki początkowej (lub w górę, jeśli użyjesz wartości ujemnej), w tym przykładzie 0 oznacza, że ​​lista rozpocznie się od pierwszego wiersza w dół
  • kolumna odpowiada liczbie kolumn, które przesuniesz w prawo w stosunku do komórki początkowej (lub w lewo, używając wartości ujemnej), w powyższym przykładowym wzorze 0 oznacza rozszerzenie 0 kolumn w prawo.
  • [wysokość] odpowiada wysokości (lub liczbie rzędów) zakresu począwszy od ustawionej pozycji. $ A: $ A, policzy wszystkie pozycje wprowadzone w kolumnie A.
  • [szerokość] odpowiada szerokości (lub liczbie kolumn) zakresu począwszy od ustawionej pozycji. W powyższym wzorze lista będzie miała szerokość 1 kolumny.

Możesz zmienić te argumenty według swoich potrzeb.


strzałka niebieski prawy bąbelek Utwórz dynamiczny nazwany zakres w programie Excel za pomocą kodu VBA

Jeśli masz wiele kolumn, możesz powtórzyć i wprowadzić indywidualną formułę dla wszystkich pozostałych kolumn, ale byłby to długi, powtarzalny proces. Dla ułatwienia możesz użyć kodu do automatycznego tworzenia dynamicznego nazwanego zakresu.

1. Aktywuj swój arkusz.

2. Przytrzymaj ALT + F11 klucze i otwiera plik Okno Microsoft Visual Basic for Applications.

3. Kliknij wstawka > Modułi wklej następujący kod w Okno modułu.

Kod VBA: utwórz dynamiczny nazwany zakres

Sub CreateNamesxx()
'Update 20131128
Dim wb As Workbook, ws As Worksheet
Dim lrow As Long, lcol As Long, i As Long
Dim myName As String, Start As String
Const Rowno = 1
Const Colno = 1
Const Offset = 1
On Error Resume Next
Set wb = ActiveWorkbook
Set ws = ActiveSheet
lcol = ws.Cells(Rowno, 1).End(xlToRight).Column
lrow = ws.Cells(Rows.Count, Colno).End(xlUp).Row
Start = Cells(Rowno, Colno).Address
wb.Names.Add Name:="lcol", RefersTo:="=COUNTA($" & Rowno & ":$" & Rowno & ")"
wb.Names.Add Name:="lrow", RefersToR1C1:="=COUNTA(C" & Colno & ")"
wb.Names.Add Name:="myData", RefersTo:="=" & Start & ":INDEX($1:$65536," & "lrow," & "Lcol)"
For i = Colno To lcol
    myName = Replace(Cells(Rowno, i).Value, " ", "_")
    If myName <> "" Then
        wb.Names.Add Name:=myName, RefersToR1C1:="=R" & Rowno + Offset & "C" & i & ":INDEX(C" & i & ",lrow)"
    End If
Next
End Sub

4. Następnie naciśnij F5 klucz do uruchomienia kodu, a zostaną wygenerowane dynamiczne nazwane zakresy, które są nazwane wartościami pierwszego wiersza, a także utworzy zakres dynamiczny o nazwie Moje dane który obejmuje wszystkie dane.

5. Gdy wprowadzisz nowe wartości po wierszach lub kolumnach, zakres również zostanie rozszerzony. Zobacz zrzuty ekranu:

doc-dynamic range12
-1
doc-dynamic range13

Uwagi:

1. W przypadku tego kodu nazwy zakresów nie są wyświetlane w Nazwa Box, aby wygodnie przeglądać i używać nazw zakresów, zainstalowałem Kutools dla programu Excel, Z siedzibą w Okienko nawigacji, zostaną wyświetlone nazwy utworzonych zakresów dynamicznych.

2. Za pomocą tego kodu cały zakres danych można rozszerzyć w pionie lub w poziomie, ale należy pamiętać, że podczas wprowadzania nowych wartości między danymi nie powinno być pustych wierszy ani kolumn.

3. W przypadku korzystania z tego kodu zakres danych powinien zaczynać się od komórki A1.


Podobne artykuły:

Jak automatycznie zaktualizować wykres po wprowadzeniu nowych danych w programie Excel?

Najlepsze narzędzia biurowe

🤖 Pomocnik AI Kutools: Zrewolucjonizuj analizę danych w oparciu o: Inteligentne wykonanie   |  Wygeneruj kod  |  Twórz niestandardowe formuły  |  Analizuj dane i generuj wykresy  |  Wywołaj funkcje Kutools...
Popularne funkcje: Znajdź, wyróżnij lub zidentyfikuj duplikaty   |  Usuń puste wiersze   |  Łącz kolumny lub komórki bez utraty danych   |   Okrągły bez wzoru ...
Super wyszukiwanie: Wiele kryteriów VLookup    Wiele wartości VLookup  |   Przeglądanie pionowe na wielu arkuszach   |   Wyszukiwanie rozmyte ....
Zaawansowana lista rozwijana: Szybko twórz listę rozwijaną   |  Zależna lista rozwijana   |  Lista rozwijana wielokrotnego wyboru ....
Menedżer kolumn: Dodaj określoną liczbę kolumn  |  Przesuń kolumny  |  Przełącz stan widoczności ukrytych kolumn  |  Porównaj zakresy i kolumny ...
Polecane funkcje: Fokus siatki   |  Widok projektu   |   Duży pasek formuły    Menedżer skoroszytów i arkuszy   |  Biblioteka zasobów (Automatyczny tekst)   |  Selektor dat   |  Połącz arkusze   |  Szyfruj/odszyfruj komórki    Wysyłaj e-maile według listy   |  Super filtr   |   Specjalny filtr (filtruj pogrubienie/kursywa/przekreślenie...) ...
15 najlepszych zestawów narzędzi12 Tekst Tools (Dodaj tekst, Usuń znaki, ...)   |   50 + Wykres rodzaje (Wykres Gantta, ...)   |   40+ Praktyczne Wzory (Oblicz wiek na podstawie urodzin, ...)   |   19 Wprowadzenie Tools (Wstaw kod QR, Wstaw obraz ze ścieżki, ...)   |   12 Konwersja Tools (Liczby na słowa, Przeliczanie walut, ...)   |   7 Połącz i podziel Tools (Zaawansowane wiersze łączenia, Podział komórki, ...)   |   ... i więcej

Zwiększ swoje umiejętności Excela dzięki Kutools for Excel i doświadcz wydajności jak nigdy dotąd. Kutools dla programu Excel oferuje ponad 300 zaawansowanych funkcji zwiększających produktywność i oszczędzających czas.  Kliknij tutaj, aby uzyskać funkcję, której najbardziej potrzebujesz...

Opis


Karta Office wprowadza interfejs z zakładkami do pakietu Office i znacznie ułatwia pracę

  • Włącz edycję i czytanie na kartach w programach Word, Excel, PowerPoint, Publisher, Access, Visio i Project.
  • Otwieraj i twórz wiele dokumentów w nowych kartach tego samego okna, a nie w nowych oknach.
  • Zwiększa produktywność o 50% i redukuje setki kliknięć myszką każdego dnia!
Comments (4)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
really, really not helpful
This comment was minimized by the moderator on the site
please help i am trying to create a dynamic named range on excel 2016 typing "=offset(DATAENTRY!$B$6,,,counta(DATAENTRY!$B$6:$B$13))" but still it gives me an error saying it is not a formula.
This comment was minimized by the moderator on the site
You are a very good teacher: 1) step-by-step approach; 2) you do not bore the student with obvious material or conclusions; 3) yet you include all necessary material. I look forward to more tutorials from you.
This comment was minimized by the moderator on the site
Thanks for good article
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations