W programie Excel 2010 w jaki sposób mogę utworzyć szablon z funkcją automatycznie kończącą się w ostatniej komórce danymi?


0

Chcę utworzyć szablon w programie Excel z funkcją, która zawiera zakres, ale liczba komórek w tym zakresie zmieni się przy każdym zastosowaniu szablonu.

Jak mogę zidentyfikować, że chcę, aby zakres zaczynał się od powiedzenia B2 i kończył na ostatniej komórce tekstem w kolumnie B?


Planuję wprowadzać nowe dane dotyczące zapasów do tego szablonu na innej karcie (Raport1) co tydzień i generować formuły na osobnej karcie, która byłaby szablonem. Ta informacja posłuży do wygenerowania wykresów. Przykładem formuły, której używam, jest „= LICZ.JEŻELI (Raport1! $ F $ 3: $ F 2383 $,„ BRA ”, Raport1! $ O 3 $: $ O 2383, A5)”, gdzie chciałbym końcową komórkę w każdym z zakresy, które mają być automatycznie ostatnią komórką z danymi wprowadzonymi w tej kolumnie.
user238728

Odpowiedzi:


0

Zależy to od tego, co robisz i jako takie byłoby pomocne, gdybyś dodał nieco więcej szczegółów do pytania. Ponieważ nie możemy powiedzieć, co próbujesz zrobić, ani dlaczego.

Jako taki mogę tylko doradzić, jak tworzyć automatyczne (dynamiczne) zakresy:


1

Użyj tabeli - tabele Excela są niezwykle potężne i automatycznie liczą się jako zakres, jeśli chcesz odwołać się do każdej komórki w kolumnie, po prostu wprowadź [ Nazwa kolumny ] zamiast tradycyjnego odniesienia do komórki. Tabele Excel automatycznie rozszerzają się, gdy dodawane są nowe wiersze, co jest bardzo przydatne.

Dodatkowa tabela przywołuje nas z powrotem do pytania o to, czym jest ten szablon i co ma robić: jeśli użytkownik ma mieć dostęp do płyty tamplate, to wcześniejsze tabele nie będą działać.


2

Co prowadzi mnie do opcji 2: Dynamiczne nazwane zakresy.

  • Wybierz kolumnę, którą chcesz ustawić za pomocą automatycznego zakresu, klikając pierwszą komórkę danych (zwykle wiersz 2) i przejdź do Formuły> Definiuj nazwę & gt; Zdefiniuj nazwę

  • Nadaj nazwie wyraźną nazwę, na przykład ColumnNameRange

  • opuść Scope jako Workbook i dodaj komentarz, jeśli chcesz

  • W Odwołuje się do: wprowadź tę formułę (w razie potrzeby zastępując odniesienia do komórek i arkuszy)
=OFFSET(SheetName!$A$2,0,0,COUNTA(SheetName!$A$2:$A$500),)


Ten nazwany zakres Dyanmic, o którym mowa w formule, zwróci wszystko z zakresu podanego w przesunięciu do drugiej połowy zakresu podanego w COUNTA. Formuła sprawdza cały zakres w COUNTA, aby uzyskać liczbę nie pustych komórek, a następnie tworzy wybór zakresu przesunięcia od pierwszej komórki, aż do liczby znalezionych komórek.

Więcej informacji o dynamicznych nazwanych zakresach tutaj: http://www.ozgrid.com/Excel/DynamicRanges.htm
Więcej informacji o tabelach tutaj: http://www.ozgrid.com/Excel/data-tables.htm

Kilka rzeczy, o których warto pamiętać RE Dynamic Named Ranges:

  • Jeśli ustawisz tę drugą część COUNTA na 500, jak to jest powyżej, a następnie skończysz z ponad 500 wierszami danych, nie będzie liczył dodatków, więc miej to na uwadze

  • Jeśli w danych, na które patrzy COUNTA, są puste, będzie odliczane tylko do pierwszego pustego miejsca. Aby tego uniknąć, zawsze ustaw COUNTA na pierwszą kolumnę (która powinna być twoją kolumną id, więc nigdy nie powinna mieć pustych), a następnie ustaw komórkę, do której odwołuje się OFFSET, na kolumnę, którą chcesz (dla kolumny D ustaw COUNTA na $ 2) : $ 500 $ i OFFSET na $ 2 $

  • Zawsze poprawiaj wszystkie zakresy komórek za pomocą $ (F4) lub nie będzie to działać poprawnie. Wszystkie zakresy komórek powinny wyglądać jak ta $ kolumna $ wiersz

  • Możesz utworzyć dynamiczny nazwany zakres obejmujący kolekcję kolumn, dodając kolejną COUNTA po pierwszym: = OFFSET ($ A 1,0,0, COUNTA ($ A1: $ A500), COUNTA ($ B1: $ B500)) . Możesz to zrobić w tabelach, podając niektóre kolumny: = Tabela1 [[Kolumna1]: [Kolumna2]] lub podając całą tabelę: = Tabela1

Planuję wprowadzać nowe dane dotyczące zapasów do tego szablonu na innej karcie (Raport1) co tydzień i generować formuły na osobnej karcie, która byłaby szablonem. Ta informacja posłuży do wygenerowania wykresów. Przykładem formuły, której używam, jest „= LICZ.JEŻELI (Raport1! $ F $ 3: $ F 2383 $,„ BRA ”, Raport1! $ O 3 $: $ O 2383, A5)”, gdzie chciałbym końcową komórkę w każdym z zakresy, które mają być automatycznie ostatnią komórką z danymi wprowadzonymi w tej kolumnie.
user238728

OK, więc moja odpowiedź na to zadziała, najlepiej użyć tabel, =COUNTIFS(ReportTable[ColumnF],"BRA",ReportTable[ColumnO],ThisTable[@[ColumnA]] w którym [kolumna] odnosi się do całej kolumny, a [@ [kolumna]] odnosi się do komórki w tej kolumnie w tym wierszu. Jeśli tabele nie są opcją, skonfiguruj zakresy: =COUNTIFS(FirstRange,"BRA",SecondRange,A5)
CLockeWork

0

Oto makro, które dokona wyboru

Public Sub SelectRange()

Cells(2, 2).Select
Range(Selection, Selection.End(xlDown)).Select

*do stuff*

End Sub

Teraz wystarczy wymienić robić coś z tym, co chcesz zrobić z zaznaczeniem i wyprowadzić wyniki do dowolnej komórki, w której chcesz umieścić wzór

Jeśli powiesz nam wzór, możemy dodać go do vba. Jeśli potrzebujesz danych wprowadzonych przez użytkownika przed uruchomieniem formuły, możesz dodać go do przycisku lub innej czynności.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.