Chcę uzyskać zawartość komórki, podając jej numer wiersza i kolumny. Numer wiersza i kolumny są przechowywane w komórkach (tutaj B1, B2). Wiem, że poniższe rozwiązania działają, ale wydaje się, że są trochę zepsute.
Sol 1
=CELL("contents",INDIRECT(ADDRESS(B1,B2)))
Sol 2
=CELL("contents",OFFSET($A$1, B1-1,B2-1))
Czy nie ma mniej szczegółowej metody? (na przykład = CellValue (row, col) lub cokolwiek)?
Edycja / wyjaśnienie: Chcę tylko użyć formuł arkusza programu Excel. Brak VBA. Krótko mówiąc, szukam odpowiednika metody VBA Cells () jako formuły programu Excel.
excel
excel-formula
Philipp
źródło
źródło
Odpowiedzi:
Nie potrzebujesz części CELL () w swoich formułach:
lub
będą działać. Zauważ, że obie
INDIRECT
iOFFSET
są funkcjami nietrwałymi. Funkcje ulotne mogą spowolnić obliczenia, ponieważ są obliczane przy każdym przeliczeniu.źródło
INDIRECT
+ADDRESS
to droga do zrobienia. Excel w moim języku tłumaczy sięOFFSET
na 2 słowa oddzielone kropką. To jest najgorsze (razem z umlautami w nazwach funkcji)!Try = index (ARRAY, ROW, COLUMN)
gdzie: Array: wybierz cały arkusz. Row, Column: Twoje odwołania do wierszy i kolumn
Powinno to być łatwiejsze do zrozumienia dla tych, którzy patrzą na wzór.
źródło
Zajęło mi to trochę czasu, ale oto jak nadałem mu dynamikę. Nie zależy od posortowanej tabeli.
Najpierw zacząłem od kolumny nazw stanów (kolumna A) i kolumny samolotów w każdym stanie (kolumna B). (Wiersz 1 to wiersz nagłówka).
Znalezienie komórki zawierającej numer samolotu wyglądało następująco:
Włożyłem to do komórki, a następnie nadałem tej komórce nazwę „StateRow”. Następnie, korzystając ze wskazówek z góry, skończyłem z tym:
Zwraca nazwę stanu z wartości dynamicznej w wierszu „StateRow”, kolumna 1
Teraz, gdy wartości w kolumnie zliczania zmieniają się w czasie wraz z wprowadzaniem większej ilości danych, zawsze wiem, w którym stanie jest najwięcej samolotów.
źródło