Jaka jest funkcja pobierania bieżącego numeru wiersza i bieżącej nazwy kolumny dla komórki w programie Excel?
30
Jaka jest funkcja pobierania bieżącego numeru wiersza i bieżącej nazwy kolumny dla komórki w programie Excel?
LIN
iCOL
ale problem jest wrócą numery i muszę literę kolumny doINDIRECT
niego.OFFSET
funkcji w połączeniu zINDIRECT
formułą lub zamiast niej . Jeśli jednak chcesz używać ciągów, zaktualizowałem również swoją odpowiedź.Odpowiedzi:
Można użyć
ROW
iCOLUMN
funkcje, aby to zrobić. Pominięcie argumentu dla tych formuł powoduje użycie bieżącej komórki. Te mogą być bezpośrednio wykorzystane z tejOFFSET
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ść toD
. 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łabyB
.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:
Nie jestem pewien, czy jest to łatwiejszy sposób, ale nie wiem, ale wiem, że działa od komórki
A1
doZZ99
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 zOFFSET
).źródło
OFFSET
zamiast tego, który pozwala określić kolumny jako liczby. Niezależnie od tego zaktualizowałem odpowiedź formułą, aby rozszerzyć ją do pracy z kolumnami dwuliterowymi.However, this will not work with two-letter columns. In that case, you need the following formula to properly parse two-letter columns:
Wypróbuj następującą funkcję:
Objaśnienie:
ADDRESS(row_num, column_num, [abs_num])
.[abs_num] = 4
= adres względny. Oznacza to, że w zwracanej wartości nie ma znaków „$”. W przypadku kolumny „AB”ADDRESS
zwróci „AB1”. Zastępca usuwa „1”.źródło
Spróbuj tego
To daje dokładny nagłówek kolumny, bez żadnych $ itp.
źródło
Wpisz to w dowolnej komórce:
Español :
Angielski :
Możesz zastąpić kolumnę () numerem wiersza.
źródło
Aby uzyskać nazwę kolumny, użyłem następujących wzorów.
Dla konkretnej komórki:
Dla bieżącej komórki:
Wypróbuj tę odmianę. Działa na 3-literowych kolumnach i nie pozostawia znaku „$” na interfejsie:
źródło
Nieznacznie manualny, ale mniej VBA i prostsza formuła:
=column()
=Address(1,A1)
$A$1
Po skopiowaniu wartości znajdź i zamień
$
oraz1
puste.źródło
To też zadziała
źródło
Innym możliwym sposobem byłoby użycie czegoś takiego:
Gdzie
colid
odnosi się do nazwanego zakresu, który utworzyłbyś gdzie indziej w skoroszycie zawierającym dwie sąsiednie kolumny z wieloma wierszami: pierwsza kolumna zawierająca liczby od 1 do n odpowiadająceCOLUMN()
liczbie, druga zawierająca litery A - ZZ lub jak wiele kolumn odnosi się do ciebie chcę pomieścić. PozostałoROW()
dobrze, ponieważ ma zwrócić numer wiersza.Tak więc, jeśli skopiujesz powyższy ciąg do komórki A1 „MySheet2”, zostanie on oceniony jako
=MySheet1!A1
i zwróci wartość znalezioną w odpowiedniej komórceMySheet1
.Umożliwi to na przykład użycie
MySheet1
jako obszaru roboczego do usuwania i ponownego wstawiania nowych danych, podczas gdy wszelkie formatowanie lub obliczeniaMySheet2
odnoszące się do tych treści będą nadal działać poprawnie z nowymi zestawami danych z docelowego arkusza z kartami.źródło
Rozwiązanie dla polskiej wersji Excela:
źródło
Oto VBA, formuła zdefiniowana przez użytkownika, rozwiązanie. Działa z 1, 2 i 3 literowymi kolumnami.
Umieść następujące elementy w module kodu:
= COLUMNLETTER () w dowolnej komórce zwróci literę kolumny komórki.
= COLUMNLETTER (B3) w dowolnej komórce powróci B .
Ta funkcja zdefiniowana przez użytkownika działa świetnie podczas tworzenia ogólnych formuł w funkcji POŚREDNIEJ.
źródło
Formuła adresu działa, zwracając nazwę kolumny i wiersza. Zwracanym formatem zawsze będzie
$(Column Letters)$(Row Numbers)
- np.$AA$2
Lub$XAA$243556
Jeśli wiemy, że $ zawsze będzie występować przy pierwszym znaku, możemy użyć pierwszej środkowej formuły, aby zacząć ciągnąć znaki po pierwszym znaku $ (tj. Drugim znaku).
Następnie znajdujemy następny znak $ (jak wiemy, będą tylko dwa) i wiemy, ile znaków jest między pierwszym a drugim znakiem dolara. Reszta to proste odejmowanie.
źródło
Oto jak znaleźć nagłówek kolumny (tj. Literę):
źródło
Spróbuj tego:
źródło
Poniższa formuła działa bez względu na to, gdzie ją umieścisz (zwróci Ci nazwę kolumny).
źródło
Spróbuj tego:
funkcja działa do momentu „ZY1” lub kolumny = 701
źródło
źródło