Odpowiedź Rey Juny wyjaśnia, jak to zrobić za pomocą tabeli odnośników. Oto alternatywne podejście do uzyskiwania adresów referencyjnych bez tabeli odnośników. Ogólna struktura formuły jest podobna. Wiele z tego jest podyktowanych przez przetłumaczenie lokalizacji formuł na odwołania do komórek (zwróć uwagę, że tłumaczenia lokalizacji w moich formułach mogą teraz nieco różnić się od Reya, ponieważ opis w pytaniu nieco się zmienił).
- Chcesz, aby wiersz formuły 5 odnosił się do stycznia (miesiąc 1), więc musimy odjąć 4 od wiersza formuły.
- Chcesz pobierać dane kolumna po kolumnie, zaczynając od kolumny E, ale zawsze z wiersza 4 arkusza docelowego.
Opis w pytaniu zmienił się, więc użyję nieco innej metody dla opcji POŚREDNIE. INDIRECT ma funkcję, która pozwala na odwoływanie się do komórek w tak zwanym formacie R1C1, co jest przydatne przy tego rodzaju wymaganiach. Możesz łatwo podać numery wierszy i kolumn oraz wykonać adresowanie względne.
INDIRECT ma opcjonalny ostatni parametr używany do wskazywania stylu odwołań do komórek. Jeśli ma wartość FAŁSZ lub 0
oznacza adresowanie w stylu R1C1. W ciągu INDIRECT R4C[0]
odnosi się do wiersza 4 i tej samej kolumny co formuła (przesunięcie zera).
W przeciwnym razie główna różnica polega na tym, jak uzyskać nazwy arkuszy za pomocą formuły zamiast wyszukiwania.
Kluczem do tego jest ta formuła:
TEXT((ROW()-4)*28,"mmm")
Wiersz minus 4 został wyjaśniony powyżej, tłumacząc lokalizację formuły na liczbę miesięcy. Musimy przekształcić numer miesiąca w datę, która przypada w tym miesiącu (który może być w dowolnym roku, potrzebujemy tylko dnia w roku). Czyni to mnożenie przez 28. Wszystkie miesiące oprócz lutego w roku bez przestępowania mają więcej niż 28 dni, ale to wystarcza, aby zagwarantować, że wynikowa liczba dni będzie w odpowiednim miesiącu.
(Należy pamiętać, że ta sztuczka działa w przypadku tłumaczenia 1-12 na styczeń-grudzień, ale musiałaby zostać poprawiona, jeśli twój miesiąc początkowy jest inny niż styczeń lub masz wiele kolejnych lat; nie możesz po prostu dostosować przesunięcia wiersza. Zobacz załącznik poniżej.)
Funkcja TEKST formatuje wynik jako trzyliterowy skrót miesiąca.
Podsumowując, faktyczna formuła jest następująca:
=IF(INDIRECT(TEXT((ROW()-4)*28,"mmm")&"!R4C[0]",0)>0,INDIRECT(TEXT((ROW()-4)*28,"mmm")&"!R4C[0]",0),"")
Możesz skopiować i wkleić tę formułę do komórki E5, a następnie po prostu skopiować i wkleić lub przeciągnąć, aby wypełnić macierz. Nie trzeba dostosowywać formuły, chyba że zmieni się układ arkusza roboczego.
Dodatek: Jeśli Twoje miesiące przebiegają inaczej niż styczeń-grudzień (np. Lata obrachunkowe) i / lub masz wiele kolejnych lat, oto kolejna sztuczka polegająca na użyciu konwersji pokazanej powyżej skrótu liczby miesięcy na miesiące.
- Dokonaj korekty pierwszego wiersza, aby przełożyć numer wiersza na numer miesiąca początkowego. Powiedzmy, że pierwszy wiersz formuły to 5, a miesiącem początkowym jest październik, więc użyłbyś ROW () + 5.
- Owinąć że z funkcji MOD zostawić resztę po podzieleniu przez 12 (grudzień wyjdzie zera, ale nadal działa)
MOD(ROW()+5,12)
. Rezultat jest taki, że każdy wiersz wskazuje właściwy numer miesiąca.
- Użyj że w funkcji tekstem:
TEXT(MOD(ROW()+5,12)*28,"mmm")
.