Można użyć ROWi COLUMNfunkcje, aby to zrobić. Pominięcie argumentu dla tych formuł powoduje użycie bieżącej komórki. Te mogą być bezpośrednio wykorzystane z tej OFFSETfunkcji , lub jakiejkolwiek innej funkcji, gdzie można określić zarówno wiersza i kolumny jako wartości liczbowych.
Na przykład, jeśli wpiszesz =ROW()w komórce D8, zwrócona wartość to 8. Jeśli wpiszesz =COLUMN()w tej samej komórce, zwrócona wartość to 4.
Jeśli chcesz literę kolumny, możesz użyć CHARfunkcji. Nie polecam używania liter do reprezentowania kolumny, ponieważ sytuacja staje się trudna przy przechodzeniu do dwuliterowych nazw kolumn (gdzie używanie liczb jest i tak bardziej logiczne).
Niezależnie od tego, jeśli nadal chcesz uzyskać literę kolumny, możesz po prostu dodać 64 do numeru kolumny (64 to mniej niż jeden znak A), więc w poprzednim przykładzie, jeśli ustawisz wartość komórki na =CHAR(COLUMN()+64), zwracana wartość to D. Jeśli chcesz, aby wartość komórki była samą lokalizacją komórki, byłaby to pełna formuła =CHAR(COLUMN()+64) & ROW().
Po prostu FYI, mam 64 z tabeli ASCII. Możesz także użyć CODEformuły, więc zaktualizowana formuła, która by to wykorzystała, byłaby =CHAR(COLUMN() + CODE("A") - 1). Musisz odjąć 1, ponieważ minimalna wartość COLUMNto zawsze 1, a wtedy minimalna wartość zwracana dla całej formuły byłaby B.
Nie będzie to jednak działać w przypadku kolumn dwuliterowych. W takim przypadku potrzebujesz następującej formuły, aby poprawnie przeanalizować dwuliterowe kolumny:
=IF(COLUMN()>26,IF(RIGHT(CHAR(IF(MOD(COLUMN()-1,26)=0,1,MOD(COLUMN()-1,26))+64),1)="Y",CHAR(INT((COLUMN()-1)/26)+64) & "Z",CHAR(INT((COLUMN()-1)/26)+64) & CHAR(IF(MOD(COLUMN(),26)=0,1,MOD(COLUMN(),26))+64)),CHAR(COLUMN()+64))&ROW()
Nie jestem pewien, czy jest to łatwiejszy sposób, ale nie wiem, ale wiem, że działa od komórki A1do ZZ99bez problemów. Jednak ilustruje to, dlaczego najlepiej unikać używania kolumnowych identyfikatorów kolumn i trzymać się formuł opartych na liczbach (np. Używając numeru kolumny zamiast litery z OFFSET).
LINiCOLale problem jest wrócą numery i muszę literę kolumny doINDIRECTniego.