Można użyć ROW
i COLUMN
funkcje, aby to zrobić. Pominięcie argumentu dla tych formuł powoduje użycie bieżącej komórki. Te mogą być bezpośrednio wykorzystane z tej OFFSET
funkcji , 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ć CHAR
funkcji. 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ć CODE
formuł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ść COLUMN
to 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 A1
do ZZ99
bez 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
).
LIN
iCOL
ale problem jest wrócą numery i muszę literę kolumny doINDIRECT
niego.