Как узнать координаты ячейки excel
Как с помощью VBA получить значение с ячейки таблицы MS Word в переменую?
Как с помощью VBA получить значение с ячейки таблицы MS Word в переменую. Range(x,y).
Можно ли получить доступ к содержимому определенной ячейки стека по адресу?
Здравствуйте, скажите пожалуйста, могу вывести по определенному адресу из стека, при этом не теряя.
Получить значение последней записи ячейки определённого столбца VBA Excel
Приветствую форумчани подскажите кто может как получить последнюю записть определёного столбца q.
Можно ли с помощью формы в одной книге Excel вносить данные в ячейки двух книг?
Можно ли с помощью формы в одной книге Excel вносить данные в ячейки двух книг?
Это понятно, просто я пользуюсь проц AddPicture (name_of_File,x,y,widht,height). И этот рисунок надо вставить напр в ячейку (2,5).
Как я понимаю, вопрос должен звучать так: 'Как привязать объект к ячейке, т.е. как получить координаты ячейки в пикселях или других физ. величинах, а затем их использовать'?
На этот вопрос я ответа не знаю: сложение ширин столбцов (так же как и высот строк), например, требуемого результата не даёт.
Поступать нужно след. образом:
1.Определить адрес ячейки Cells(k, m).Address.
2.Пересчитать в циклах суммы Columns(i).Width и Rows(j).Height
от i = 1 до i = k - 1 (аналогично For j = 1 To m - 1)
3.X = СУММАi, Y = СУММАj,
ширина и высота картинки - по размерам ячейки, если это необходимо:
Picture.Width = Columns(m).Width, Picture.Height = Rows(k).Height
ThisWorkbook.Sheets('Лист1').Shapes.AddPicture name_of_File, _
True, True, X, Y, cOLUMNS(nSTOLB).wIDTH, rOWS(nSTROK).hEIGHT
Здесь (Columns(Nstolb).Width, Rows(Nstrok).Height) размер рисунка
устанавливается равным размеру ячейки и соответственно, центрируется.
Что-то не устраивает?
Не устраивает в том плане, что я рисунок вывожу в несколько объединенных ячейках (образуют квадрат), а имейдж - прямоугольник, и происходит искажения, а этого не должно быть.
Вот так всё работает. Правда. длинновато получилось
Уважаемый, почему молчим? Погряз, решая задачу оптимизации?
Молчание удивительно, поскольку то, что я второпях набросал,
содержит несколько ошибок, что, конечно работоспособности коду не добавляет (типы объявленных переменных Long вместо Double,
использование переменной 'i' вместо 'j' в цикле
'For j = Nstolb To Nstolb1').
Держи протестированный вариант. Определение границ объединённой
ячейки теперь возложено на строковые функции, дабы ускорить
выполнение программы.
Убрано всё 'лишнее'. Теперь код короткий, прозрачный и быстрый.
Как программно определить фон определенной ячейки Excel?
Как программно определить фон определенной ячейки Excel. Заранее спасибо.
Как получить координаты определенной вкладки в QTabBar?
Я хочу получить QRect определенной вкладки в QTabBar, то есть её координаты и ширину с высотой.
Как извлечь текст примечания из определенной ячейки листа Excel?
Приложение работает с документом Excel. Как извлечь текст примечания из определенной ячейки листа.
Как получить при нажатии координаты определённой программы?
Нажав мышкой где-то на другой windows программе, получить той программы x и y, не самого windows, а.
Очень часто при работе в Excel необходимо использовать данные об адресации ячеек в электронной таблице. Для этого была предусмотрена функция ЯЧЕЙКА. Рассмотрим ее использование на конкретных примерах.
Функция значения и свойства ячейки в Excel
Стоит отметить, что в Excel используются несколько функций по адресации ячеек:
Функция ЯЧЕЙКА(), английская версия CELL(), возвращает сведения о форматировании, адресе или содержимом ячейки. Функция может вернуть подробную информацию о формате ячейки, исключив тем самым в некоторых случаях необходимость использования VBA. Функция особенно полезна, если необходимо вывести в ячейки полный путь файла.
Как работает функция ЯЧЕЙКА в Excel?
Функция ЯЧЕЙКА в своей работе использует синтаксис, который состоит из двух аргументов:
- Тип_сведений – текстовое значение, задающее требуемый тип сведений о ячейке. При вводе функции вручную высвечивается выпадающий список где указаны все возможные значения аргумента «тип сведений»:
- Ссылка – необязательный аргумент. Ячейка, сведения о которой требуется получить. Если этот аргумент опущен, сведения, указанные в аргументе тип_сведений, возвращаются для последней измененной ячейки. Если аргумент ссылки указывает на диапазон ячеек, функция ЯЧЕЙКА() возвращает сведения только для левой верхней ячейки диапазона.
Примеры использования функции ЯЧЕЙКА в Excel
Пример 1. Дана таблица учета работы сотрудников организации вида:
Необходимо с помощью функции ЯЧЕЙКА вычислить в какой строке и столбце находится зарплата размером 235000 руб.
Для этого введем формулу следующего вида:
- – «строка» и «столбец» – параметр вывода;
- – С8 – адрес данных с зарплатой.
В результате вычислений получим: строка №8 и столбец №3 (С).
Как узнать ширину таблицы Excel?
Пример 2. Нужно вычислить ширину таблицы в символах. Сразу стоит отметить что в Excel по умолчанию ширина столбцов и ячеек измеряется в количестве символов, которые они умещают в своем значении доступны для отображения в ячейке без переноса строки.
Примечание. Высота строк и ячеек в Excel по умолчанию измеряется в единицах измерения базового шрифта – в пунктах pt. Чем больше шрифт, тем выше строка для полного отображения символов по высоте.
Введем в ячейку С14 формулу для вычисления суммы ширины каждого столбца таблицы:
- – «ширина» – параметр функции;
- – А1 – ширина определенного столбца.
Как получить значение первой ячейки в диапазоне
Пример 3. В условии примера 1 нужно вывести содержимое только из первой (верхней левой) ячейки из диапазона A5:C8.
Описание
ADDRESS Функция возвращает ссылку на адрес ячейки в виде текста на основе заданного номера столбца и номера строки. Например, формула =ADDRESS(1,1) возвращает $ A $ 1. В ADDRESS Функция может возвращать относительный или абсолютный адрес, а также возвращать в стиле A1 или R1C1, имя листа также может быть включено в результат.
синтаксис и аргументы
Синтаксис формулы
ADDRESS( row_num , column_num , [abs_num] , [a1] , [sheet_text] ) |
аргументы
- Array: Обязательно, диапазон ячеек или массив констант, из которых вы извлекаете. Если аргумент массива является столбцом ячеек, требуется row_num, если array - строка ячеек, col_num требуется.
- Row_num: Необходимые. Значение, указывающее номер строки для использования в ссылке на ячейку.
- Col_num: Необходимые. Значение, указывающее номер столбца для использования в ссылке на ячейку.
- Abs_num: Необязательный. Числовое значение, определяющее тип возвращаемой ссылки.
- A1: Необязательный. Логическое значение, определяющее стиль ссылки в A1 или R1C1.
- Sheet_text: Необязательный. Имя используемого рабочего листа; если оно не указано, оно будет относиться к текущему листу. Например, ADDRESS(1,1. ”Sheet2”) , возвращает Sheet2! $ A $ 1.
Примечания:
Возвращаемое значение:
ADDRESS функция возвращает ссылку на ячейку в виде текста.
Использование и примеры
Здесь приведены несколько примеров, объясняющих, как использовать функцию ИНДЕКС.
Пример 1. Базовое использование: получение адреса ячейки из заданного столбца и строки
1) Если вы просто введете аргументы строки и столбца в ADDRESS Функция,
=ADDRESS(A2,B2)
A2 и B2 - числовые значения строки и столбца, и он возвращает
1 австралийских доллара
2) Если вы вводите аргументы строки, столбца и абс в ADDRESS Функция,
=ADDRESS(A3,B3,C3)
C3 - аргументы abs, 2 указывает на отображение ссылки в виде относительной строки и абсолютного столбца, и он возвращает
A $ 1
3) Если четвертый аргумент введен в ADDRESS Функция,
=ADDRESS(A4,B4,C4,D4))
D4 контролирует стиль ссылки, A1 или R1C1, 0 или False будет отображать результат в стиле A1, 1 или True отобразит результат в стиле R1C1, здесь он вернет
R1C1
4) Если все аргументы введены в ADDRESS Функция,
=ADDRESS(A6,B6,C6,D6,E6)
E6 - пятый аргумент, указывающий на ссылку на лист, он возвращает
Базовое использование! $ A1
Пример 2 - Значение ячейки из номера строки и столбца
ADDRESS функция возвращает адрес ячейки в виде текста, если вы хотите показать значение ячейки в адресе ячейки, вы можете объединить ADDRESS функция и INDIRECT функция для достижения этой цели.
Вот формула в B4, которая будет получать значение ячейки в B1.
=INDIRECT(ADDRESS(B2,B3))
Пример 3 - Получить адрес максимального значения
В этом случае я расскажу, как использовать ADDRESS функция для получения адреса ячейки с максимальным значением.
Во-первых, вам нужно получить максимальное значение по этой формуле =MAX(B2:B6) .
Затем используйте формулу
=ADDRESS(MATCH(E1,B1:B6,0),COLUMN(B1))
MATCH(E1,B1:B6,0) найдет номер строки, E1 - максимальное значение, B1: B6 - столбец, из которого вы найдете максимальное значение;
COLUMN(B1) найдет номер столбца, B1 - это столбец, из которого вы найдете значение.
Примечание: Эта формула может найти максимальное значение только в одном столбце.
Пример 4 - Возврат буквы столбца на основе номера столбца
В этом примере я расскажу, как использовать ADDRESS функция для возврата буквы столбца на основе заданного номера столбца.
Например, вы хотите получить букву столбца для 29-го столбца, используйте следующую формулу:
=SUBSTITUTE(ADDRESS(1,A3,4),"1","")
Что означают аргументы:
ADDRESS функция: 1 - строка 1, A3 - номер столбца, относительную букву столбца которого вы хотите получить, 4 - аргумент abs, возвращающий ссылку в относительной, в этой части ADDRESS функция получает результат AC1;
SUBSTITUTE функция: замените 1 пустой строкой, чтобы окончательный результат
AC
Если вы хотите получить букву столбца текущей ячейки, вы можете использовать эту формулу
=SUBSTITUTE(ADDRESS(1,COLUMN(),4),"1","")
Лучшие инструменты для работы в офисе
Kutools for Excel - поможет вам выделиться из толпы
Хотите быстро и безупречно выполнять свою повседневную работу? Kutools for Excel предлагает мощные расширенные функции 300 (объединение книг, сумма по цвету, разделение содержимого ячеек, дата преобразования и т. Д.) И экономия 80% времени для вас.
Иногда бывает необходимо с помощью формул узнать о какой-либо ячейке подробную информацию и параметры, чтобы использовать это в расчетах. Например, выяснить число или текст в ячейке или какой числовой формат в ней установлен. Сделать это можно, используя функцию ЯЧЕЙКА (CELL) .
Синтаксис у функции следующий:
=ЯЧЕЙКА( Параметр ; Адрес )
где Адрес - это, понятное дело, ссылка на нужную ячейку, а вот Параметр - это кодовое слово, определяющее какую именно информацию о ячейке мы хотим получить. У этого аргумента несколько возможных значений:
Давайте рассмотрим пару трюков с применением этой функции на практике.
Например, можно получить имя текущего листа формулой, используя функцию ЯЧЕЙКА с параметром "имяфайла" и извлекающей все символы правее закрывающей квадратной скобки:
Или подсветить условным форматированием все незащищенные ячейки в заданном диапазоне:
Ссылки по теме
А я нашел на соседнем форуме другое решение отображения имени листа в конкретной ячейке
=--ПОДСТАВИТЬ(ПРАВБ(ЯЧЕЙКА("filename";A1);2);"]";)
Данное решение было нужно для отображения в ячейке L1 таблицы названия листа. Листы были переименованы от 1 до 53 по возможному количеству недель по ISO. На первом листе в ячейке J3 внесено начало конкретного года. Теперь внеся допустим в ячейку G4 формулу
=$J$3+L1*7-6 имеем дату начала конкретной недели, указанной в ячейке L1, а в любой другой формулой =G4+4 имеем дату окончания 5 дневной рабочей недели.
Очень удобно для составления еженедельных докладов, отчетов и тд.
А что такое ПРАВБ ? Имелось ввиду ПРАВСИМВ ?
И это будет работать только с числовыми именами листов, кстати.
Добрый день Николай! Да, изначально требовалось, чтобы имена листов имели цифровые наименования недель по ISO. Просто созданные отчетные файлы абсолютно идентичны, отличаются только годом и соответственно конкретными датами начала - окончания недель, при 5 дневной рабочей неделе.
Заметьте, если в формуле =G4+4 прибавить не 4, а 5 то получаем 6 дневную рабочую неделю, так как исходя из отображенного названия листа в виде цифры в ячейке G4 высчитывается дата начала недели (имеется в виду понедельник).
А функция ПРАВБ возвращает последний символ или несколько последних символов текстовой строки на основе заданного числа байтов.
Функция ПРАВСИМВ предназначена для языков с однобайтовой кодировкой, а ПРАВБ — для языков с двухбайтовой кодировкой.
Не буду спорить, что конкретно лучше. Но дорога была ложка к обеду.
Ага, ясно. ПРАВБ вместо ПРАВСИМВ тут исключительно для сокращения длины формулы - не использовал ее ни разу на практике, признаюсь
Николай! Добрый день!
А если есть некоторое количество ячеек, условным форматированием отображенных шрифтом с красным цветом, их можно как то подсчитать?
Прошу прощения, решил вопрос на форуме.
Николай, очень красивое решение с подсветкой незащищенных ячеек через «Условное форматирование»!
Беру на практику. Спасибо!
Еще в Excel есть функция с похожим интерфейсом ИНФОРМ
Максимум, что интересного она умеет (на мой взгляд):
=ИНФОРМ("ВЕРСИЯ") – какая версия Excel?
=ИНФОРМ("ПЕРЕВЫЧИСЛИТЬ") -- как происходим пересчет листа?
Определение версии очень полезный метод при разработке решений в Excel..
Например, сейчас в Excel 2016 появилось много аналитических инструментов уровня Self-Service BI (это надстройки Power (Query / Pivot / View / Map) которые не работают полностью или частично в предыдущих версиях Excel.
Основное назначение этой функции в том, чтобы искать позицию заданного элемента в наборе значений. Чаще всего она применяется для поиска порядкового номера ячейки в диапазоне, где лежит нужное нам значение.
Синтаксис этой функции следующий:
=ПОИСКПОЗ( Что_ищем ; Где_ищем ; Режим_поиска )
- Что_ищем - это значение, которое надо найти
- Где_ищем - это одномерный диапазон или массив (строка или столбец), где производится поиск
- Режим_поиска - как мы ищем: точно (0), с округлением в большую строну (-1) или в меньшую сторону (1)
Давайте рассмотрим несколько полезных вариантов ее применения на практике.
Точный поиск
Классический сценарий - поиск точного текстового совпадения для нахождения позиции нужного нам текста или числа в списке:
Поиск первой или последней текстовой ячейки
Если в качестве искомого значения задать звездочку, то функция будет искать первую ячейку с текстом и выдавать её позицию. Для поиска последней текстовой ячейки можно изменить третий аргумент Режим_поиска с нуля на минус 1:
Числа и пустые ячейки в этом случае игнорируются.
Поиск ближайшего числа или даты
Если последний аргумент задать равным 1 или -1, то можно реализовать поиск ближайшего наименьшего или наибольшего числа. Таблица при этом обязательно должна быть отсортирована по возрастанию или убыванию соответственно. В общем и целом, это чем-то похоже на интервальный просмотр у функции ВПР (VLOOKUP) , но там возможен только поиск ближайшего наименьшего, а здесь - есть выбор.
Например, нам нужно выбрать генератор из прайс-листа для расчетной мощности в 47 кВт. Если последний аргумент задать равным 1 и отсортировать таблицу по возрастанию, то мы найдем ближайшую наименьшую по мощности модель (Зверь):
Если же третий аргумент равен -1 и таблица отсортирована по убыванию, то мы найдем ближайшую более мощную модель (Бомба):
Связка функций ПОИСКПОЗ и ИНДЕКС
Очень часто функция ПОИСКПОЗ используется в связке с другой крайне полезной функцией - ИНДЕКС (INDEX) , которая умеет извлекать данные из диапазона по номеру строки-столбца, реализуя, фактически, "левый ВПР".
Так, в предыдущем примере получить не номер, а название модели генератора можно очень легко:
Ну, и поскольку Excel внутри хранит и обрабатывает даты как числа, то подобный подход на 100% работает и с датами. Например, мы можем легко определить на каком этапе сейчас находится наш проект:
Принципиальное ограничение функции ПОИСКПОЗ состоит в том, что она умеет искать только в одномерных массивах (т.е. строчке или столбце), но никто не запрещает использовать сразу два ПОИСКПОЗа вложенных в ИНДЕКС, чтобы реализовать двумерный поиск по строке и столбцу одновременно:
Читайте также: