Съдържание
В урока се прави кратко въведение в синтаксиса на функцията ADDRESS и се показва как да я използвате, за да върнете адрес на клетка в Excel и др.
За да създадете препратка към клетка в Excel, можете да въведете ръчно координатите на колоната и реда. Алтернативно можете да получите адрес на клетка в Excel от номерата на реда и колоната, предоставени на функцията ADDRESS. Почти безсмислена сама по себе си, в комбинация с други функции тази техника може да бъде единственото решение в ситуации, когато не е възможно да се направи директна препратка към клетка.
Функция ADDRESS на Excel - синтаксис и основни приложения
Функцията ADDRESS е предназначена за получаване на адрес на клетка в Excel въз основа на зададените номера на редове и колони. Адресът на клетката се връща като текстов низ, а не като действителна препратка.
Функцията е налична във всички версии на Excel за Microsoft 365 - Excel 2007.
Синтаксисът на функцията ADDRESS е следният:
ADDRESS(row_num, column_num, [abs_num], [a1], [sheet_text])Изискват се първите два аргумента:
row_num - номерът на реда, който се използва в препратката към клетката.
номер на колона (column_num) - номера на колоната, за да се създаде препратка към клетката.
Последните три аргумента, които определят формата на препратката към клетките, не са задължителни:
abs_num - типът на препратката, абсолютна или относителна. Може да приеме някое от посочените по-долу числа; по подразбиране е абсолютна.
- 1 или пропуснато - абсолютна референция към клетка като $A$1
- 2 - смесена референция: относителна колона и абсолютен ред като A$1
- 3 - смесена референция: абсолютна колона и относителен ред като $A1
- 4 - относителна референция на клетката, например A1
a1 - референтния стил, A1 или R1C1. Ако се пропусне, се използва стилът по подразбиране A1.
- 1 или TRUE или пропуснато - връща адреса на клетката в стила за справка A1, където колоните са букви, а редовете - числа.
- 0 или FALSE - връща адреса на клетката в референтния стил R1C1, където редовете и колоните са представени с числа.
sheet_text - името на работния лист, който да се включи във външната препратка. Името на листа трябва да се предостави като текстов низ и да се загради в кавички, например "Sheet2". Ако се пропусне, не се използва име на работен лист и адресът по подразбиране е текущият лист.
Например:
=ADDRESS(1,1)
- връща адреса на първата клетка (т.е. клетката в пресечната точка на първия ред и първата колона) като абсолютна референция на клетката $A$1.
=АДРЕС(1,1,4)
- връща адреса на първата клетка като относителна референция към клетка A1.
В следващата таблица ще намерите още няколко типа справки, които могат да бъдат връщани от формулите ADDRESS.
Формула | Резултат | Описание |
=ADDRESS(1,2) | $B$1 | Абсолютна референция на клетката |
=АДРЕС(1,2,4) | B1 | Относителна референтна клетка |
=АДРЕС(1,2,2) | B$1 | Относителна колона и абсолютен ред |
=АДРЕС(1,2,3) | $B1 | Абсолютна колона и относителен ред |
=ADDRESS(1,2,1,FALSE) | R1C2 | Абсолютна референция в стил R1C1 |
=ADDRESS(1,2,4,FALSE) | R[1]C[2] | Относителна референция в стил R1C1 |
=ADDRESS(1,2,1,, "Sheet2") | Лист2!$B$1 | Абсолютна препратка към друг лист |
=ADDRESS(1,2,4,, "Sheet2") | Лист2!B1 | Относителна препратка към друг лист |
Как да използвате функцията ADDRESS в Excel - примери за формули
Примерите по-долу показват как да използвате функцията ADDRESS в по-големи формули за изпълнение на по-трудни задачи.
Връщане на стойност на клетка в даден ред и колона
Ако целта ви е да получите стойност от определена клетка въз основа на номера на реда и колоната, използвайте функцията ADDRESS заедно с INDIRECT:
INDIRECT(ADDRESS(row_num, column_num))Функцията ADDRESS извежда адреса на клетката като текст. Функцията INDIRECT превръща този текст в нормална препратка и връща стойността от съответната клетка.
Например, за да получите стойност на клетката въз основа на номера на реда в E1 и номера на колоната в E2, използвайте тази формула:
=ИНДИРЕКТЕН(АДРЕС(E1,E2))
Получаване на адреса на клетка с най-висока или най-ниска стойност
В този пример първо ще намерим най-високата и най-ниската стойност в диапазона B2:B7, като използваме функциите MAX и MIN, и ще изведем тези стойности в специални клетки:
Клетка E2: =MAX(B2:B7)
Клетка F2: =MIN(B2:B7)
След това ще използваме ADDRESS в комбинация с функцията MATCH, за да получим адресите на клетките.
Клетка с максимална стойност:
=ADDRESS(MATCH(E2,B:B,0), COLUMN(B2))
Клетка с минималната стойност:
=ADDRESS(MATCH(F2,B:B,0), COLUMN(B2))
В случай че не искате най-високата и най-ниската стойност да бъдат в отделни клетки, можете да вложите функцията MAX/MIN в първия аргумент на MATCH. Например:
Клетка с най-висока стойност:
=ADDRESS(MATCH(MAX(B2:B7),B:B,0), COLUMN(B2))
Клетка с най-ниска стойност:
=ADDRESS(MATCH(MIN(B2:B7),B:B,0), COLUMN(B2))
Как работят тези формули
За да откриете номера на реда, използвате функцията MATCH(lookup_value, lookup_array, [match_type]), която връща относителната позиция на lookup_value в lookup_array. В нашата формула стойността на lookup е числото, върнато от функцията MAX или MIN, а масивът за търсене е цялата колона. Следователно относителната позиция на стойността на lookup в масива съвпада точно с номера на реда в листа.
За да намерите номера на колоната, използвайте функцията COLUM. Разбира се, нищо не ви пречи да въведете номера директно във формулата, но COLUMN спестява ръчното броене, в случай че целевата колона е в средата на листа.
Получаване на буква от колона от номер на колона
За да превърнете дадено число в буква от колона, използвайте функцията ADDRESS в SUBSTITUTE:
SUBSTITUTE(АДРЕС(1, номер на колона ,4), "1","")Като пример, нека намерим буквата на колоната, съответстваща на числото в A2:
=SUBSTITUTE(ADDRESS(1,A2,4), "1","")
Като погледнем резултатите по-долу, можем да кажем, че първата колона на листа е A, което е очевидно; 10-ата колона е J, 50-ата колона е AX, а 100-ата колона е CV:
Как работи тази формула
Като начало настройте функцията ADDRESS така, че да връща относителна препратка към първата клетка в целевата колона:
- За номера на реда използвайте 1.
- За номера на колоната въведете препратка към клетката, съдържаща номера, в нашия пример A2.
- За аргумента abs_num въведете 4.
В резултат на това ADDRESS(1,A2,4) ще върне A1.
За да се отървете от координатата на реда, обвийте горната формула във функцията SUBSTITUTE и заменете "1" с празен низ (""). Готово!
Получаване на адреса на именуван диапазон
За да намерите адреса на именуван диапазон в Excel, първо трябва да получите референциите на първата и последната клетка и след това да ги обедините. Това работи малко по-различно в преддинамичния Excel (2019 и по-стари) и в Excel с динамични масиви (Office 365 и Excel 2021). Примерите по-долу са за Excel 2019 - Excel 2007. Инструкциите за Excel 365 и Excel 2021 са тук.
Как да получите адреса на първата клетка в даден диапазон
За връщане на препратка към първата клетка в именуван диапазон използвайте тази обща формула:
АДРЕС(РЕД( обхват ),КОЛОНА( обхват ))Ако приемем, че обхватът е наречен "Продажби", реалната формула е следната:
=АДРЕС(РЕД(Продажби), КОЛОНА(Продажби))
И връща адреса на горната лява клетка в диапазона:
В тази формула функциите ROW (ред) и COLUMN (колона) връщат масив от всички номера на редове и колони в диапазона, съответно. Въз основа на тези номера функцията ADDRESS (адрес) изгражда масив от адреси на клетки. Но тъй като формулата е въведена в една клетка, се показва само първият елемент от масива, който съответства на първата клетка в диапазона.
Как да получите адреса на последната клетка в даден диапазон
За намиране на адреса на последната клетка в именуван диапазон използвайте тази обща формула:
АДРЕС(РЕД( обхват )+КРАЙНИЦИ( обхват )-1,КОЛОНА( обхват )+COLUMNS( обхват )-1)Приложена към нашия диапазон с име "Продажби", формулата придобива следната форма:
=ADDRESS(ROW(Sales) + ROWS(Sales)-1, COLUMN(Sales) + COLUMNS(Sales)-1)
И връща препратката към долната дясна клетка на диапазона:
Както и в предишния пример, функцията ROW ни дава масив от всички номера на редове в диапазона, в нашия случай {4;5;6;7}. Трябва да "изместим" тези номера с общия брой редове минус 1, така че първият елемент в масива да стане номер на последния ред. За да намерим общия брой редове, използваме функцията ROWS иСлед това прибавяме по 3 към всеки елемент на първоначалния масив, за да направим необходимото преместване: {4;5;6;7} + 3 = {7;8;9;10}.
Номерът на колоната се изчислява по подобен начин: {2,3,4}+3-1 = {4,5,6}
От горните масиви от номера на редове и колони функцията ADDRESS събира масив от адреси на клетки, но връща само първия, съответстващ на последната клетка в обхвата.
Същият резултат може да се постигне и чрез избиране на максималните стойности от масивите на номерата на редовете и колоните. Това обаче работи само във формула за масиви, която изисква натискане на Ctrl + Shift + Enter, за да бъде завършена правилно:
=ADDRESS(MAX(ROW(Sales)), MAX(COLUMN(Sales))
Как да получите пълния адрес на именуван обхват
За да върнете пълния адрес на именуван диапазон, трябва просто да обедините двете формули от предишните примери и да вмъкнете оператора за диапазон (:) между тях.
АДРЕС(РЕД( обхват ), КОЛОНА( обхват )) & ":" & ADDRESS(ROW( обхват ) + РЕДОВЕ( обхват )-1, КОЛОНА( обхват ) + КОЛОНИ( обхват )-1)За да работи за нашия примерен набор от данни, заменяме общото "range" с истинското име на диапазона "Sales":
=ADDRESS(ROW(Sales), COLUMN(Sales)) & ":" & ADDRESS(ROW(Sales) + ROWS(Sales)-1, COLUMN(Sales) + COLUMNS(Sales)-1)
И да получите пълния адрес на обхвата като абсолютен справка $B$4:$D$7:
Връщане на адреса на обхвата като относително (без знака $, например B4:D7), задайте аргумента abs_num в двете функции ADDRESS на 4:
=ADDRESS(ROW(Sales), COLUMN(Sales), 4) & ":" & ADDRESS(ROW(Sales) + ROWS(Sales)-1, COLUMN(Sales) + COLUMNS(Sales)-1, 4)
Естествено, същите промени могат да се направят в отделните формули за първата и последната клетка и резултатът ще изглежда по подобен начин:
Как да получите адреса на именуван диапазон в Excel 365 и Excel 2021
За разлика от традиционното поведение "една формула - една клетка" в по-старите версии, в новия Excel всяка формула, която потенциално може да върне няколко стойности, прави това автоматично. Такова поведение се нарича преливане.
Например, вместо да връща адреса на първата клетка, формулата по-долу извежда адресите на всяка клетка в посочения диапазон:
=АДРЕС(РЕД(Продажби), КОЛОНА(Продажби))
За да получите адреса на първа клетка само трябва да активирате имплицитното пресичане, което се задейства по подразбиране в Excel 2019 и по-стари версии. За тази цел поставете символа @ (оператор за имплицитно пресичане) преди имената на диапазоните:
=ADDRESS(@ROW(Sales), @COLUMN(Sales))
По подобен начин можете да коригирате и други формули.
За да получите последна клетка в диапазона:
=ADDRESS(@ROW(Sales) + ROWS(Sales)-1, @COLUMN(Sales) + COLUMNS(Sales)-1)
За да получите адрес на именуван обхват :
=ADDRESS(@ROW(Sales), @COLUMN(Sales)) & ":" & ADDRESS(@ROW(Sales) + ROWS(Sales)-1, @COLUMN(Sales) + COLUMNS(Sales)-1)
Резултатите са показани на снимката по-долу:
Съвет: Когато отваряте работен лист с формули, създадени в по-стара версия в динамичен масив на Excel, Excel автоматично вмъква оператор за подразбиращо се пресичане.
Ето как връщате адрес на клетка в Excel. За да разгледате по-отблизо всички формули, разгледани в този урок, можете да изтеглите нашата примерна работна книга по-долу. Благодаря ви, че прочетохте, и се надявам да се видим в нашия блог следващата седмица!
Практическа работна тетрадка за изтегляне
Функция ADDRESS на Excel - примери за формули (.xlsx файл)