2011-01-27 15 views
76

Chcę uzyskać zawartość komórki ze względu na jej numer wiersza i kolumny. Numer wiersza i kolumny są przechowywane w komórkach (tutaj B1, B2). Wiem, że działają poniższe rozwiązania, ale czują się trochę odurzone.Uzyskiwanie zawartości komórki z podaniem numeru wiersza i kolumny:

Sol 1

=CELL("contents",INDIRECT(ADDRESS(B1,B2))) 

Sol 2

=CELL("contents",OFFSET($A$1, B1-1,B2-1)) 

Czy istnieje żadna metoda mniej gadatliwy? (like = CellValue (row, col) lub cokolwiek innego)?

Edycja/doprecyzowanie: Po prostu chcę użyć formuł arkusza programu Excel. Bez VBA. Krótko mówiąc, ja w zasadzie szukam odpowiednika metody VBA Cells() jako formuły Excel.

+0

Czy możemy uzyskać trochę więcej kontekstu? Czy używasz tylko formuł Excela? VBA? Jakiś inny sposób? –

Odpowiedz

118

Nie trzeba komórce() część swojego wzorów:

=INDIRECT(ADDRESS(B1,B2)) 

lub

=OFFSET($A$1, B1-1,B2-1) 

będzie zarówno praca. Zauważ, że zarówno INDIRECT, jak i są funkcjami lotnymi. Funkcje lotne mogą spowolnić obliczenia, ponieważ są obliczane przy każdym ponownym obliczeniu.

+0

Jest to przydatne na tyle, że chciałbym, aby został zmodyfikowany tak, aby miał odpowiednią liczbę nawiasów zamykających. – Wyck

+6

Biorąc pod uwagę popularność tego pytania/odpowiedzi, byłoby wspaniale mieć małe zdanie na temat tego, co jest funkcją lotną (https://msdn.microsoft.com/en-us/library/office/bb687891.aspx # sectionSection2) to. – LondonRob

+0

Pamiętaj, że w przypadku drugiego formularza, w zależności od $ 1, wymagane jest, aby nie przenosić $ 1 w jakikolwiek sposób w późniejszych edycjach arkusza. – Erk

20

Spróbuj = wskaźnik (array, wiersz, kolumna)

gdzie: Array: zaznaczyć cały arkusz wiersz, kolumna: Twój wiersz i kolumna odwołuje

które powinny być łatwiejsze do zrozumienia dla tych, którzy szukają na wzór.

1

Zajęło mi to trochę czasu, ale oto jak zrobiłem to dynamicznie. Nie zależy od posortowanego stołu.

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órkę, która zawiera liczbę samolotów było:

=MATCH(MAX($B$2:$B$54),$B$2:$B$54,0)+MIN(ROW($B$2:$B$54))-1 

kładę, że do komórki, a następnie dał, że komórka nazwę „StateRow” Następnie stosując wskazówki od powyższego, likwidacji z tego:

=INDIRECT(ADDRESS(StateRow,1)) 

ta zwraca nazwę państwa od wartości dynamicznego w wierszu „StateRow”, kolumna 1

teraz, jak wartości w morfologii zmiana kolumny w czasie, gdy wprowadzanych jest więcej danych, zawsze wiem, który stan ma najwięcej samolotów.

Powiązane problemy