Excel’s lookup functions recently welcomed the addition of XLOOKUP and XMATCH. However, neither these new functions or the existing ones don’t support image lookup. In this guide, we’re going to show you how to make image lookup in Excel.
Download Workbook
Preparing the images
First, we need to place the images into corresponding cells. Make sure that each image is completely inside their cells — there shouldn’t be any overflow. Otherwise, you can only display the part of the image that fits inside of the cell area.
Setting up a user interface for image lookup
At this point, we are ready to build an interface for image lookup. In our example, we are going to update an image, based on a value from a dropdown selection.
To make the formulas and references easier to read we will using the names in the table, which were also used to generate named ranges.
- Select the cell containing the dropdown
- Activate the Data tab in the Ribbon
- Click on the Data Validation icon
- In the Data Validation dialog, set Allow to List
- Select the names in the table under Source
- Click OK
The dynamic image
This is the last and the most important step for doing image lookups in Excel. Although the lookup formulas do not support images, some of them can actually support this when the formula is used within an image.
Unfortunately, you can not simply click on an image and type in a formula. However, you can refer a named range, and that named range can contain a formula.
Start by opening the New Name dialog under Formulas > Defined Names.
Give a friendly name to the input, and move onto to the Refers to section to enter the lookup formula. You can use either XLOOKUP or INDEX-MATCH formulas. If your version of Excel doesn’t have support for these formulas, use the INDEX-MATCH combination instead — VLOOKUP won’t work with this method.
Choose one of the following based on your data:
=XLOOKUP(X!$C$2,Data!$B$3:$B$6,Data!$C$3:$C$6)=INDEX(Data!$C$3:$C$6,MATCH(IM!$C$2,Data!$B$3:$B$6,0))
Place an image where you want to display your dynamic content. The most important thing here is the size of the image: It needs to fit in the cell.
After placing the image, click on the image and activate the formula bar. Enter the name you created for the lookup formula.
Now, every time the Name dropdown is updated, the image will be updated as well. Excel simply returns an image of the cell into the image object.
0 / 0 / 0 Регистрация: 22.11.2011 Сообщений: 18 |
|
1 |
|
01.05.2012, 18:39. Показов 15848. Ответов 5
Проблема такая. Программа (макрос) в EXCEL генерирует несколько документов, в которые автоматически вставляет подпись (ФИО выбирается в форме, в зависимости от этого на листе с образцами подписей в виде рисунков .GIF выбирается нужная подпись и вставляется в документ). Рисунок на листе с образцами меньше размера ячейки, поэтому получается делать так: в буфер просто копируется выбранная по Select ячейка, а затем выбирается на нужном листе нужная ячейка и делается ActiveSheet.Paste. Образцы подписей есть не для всех ФИО в списке, если ячейка не содержит образец подписи — так и не вставляется ничего, ошибка не генерируется.
0 |
Programming Эксперт 94731 / 64177 / 26122 Регистрация: 12.04.2006 Сообщений: 116,782 |
01.05.2012, 18:39 |
5 |
Watcher_1 356 / 162 / 27 Регистрация: 21.06.2011 Сообщений: 350 |
||||
01.05.2012, 21:16 |
2 |
|||
Наличие рисунка можно определить так
0 |
SlavaRus 1121 / 229 / 36 Регистрация: 15.03.2010 Сообщений: 698 |
||||
02.05.2012, 09:25 |
3 |
|||
Наверное самое простое в момент загрузки рисунка ячейке присвоить булево значение. True рисунок есть, False нет.
1 |
15136 / 6410 / 1730 Регистрация: 24.09.2011 Сообщений: 9,999 |
|
02.05.2012, 11:19 |
4 |
После вставки рисунок желательно обработать (слегка сместить, повернуть и т.д.), но нужно знать — есть ли он? Обрабатывайте, как будто рисунок есть, но включите обработку ошибок (On Error …).
0 |
0 / 0 / 0 Регистрация: 22.11.2011 Сообщений: 18 |
|
06.05.2012, 18:20 [ТС] |
5 |
Всем большое спасибо!
0 |
1121 / 229 / 36 Регистрация: 15.03.2010 Сообщений: 698 |
|
07.05.2012, 11:08 |
6 |
Конструкция Cell.Worksheet.Shapes — это означает, что у объекта типа Range есть такой метод? Такого метода у Range нет. Объекты Shape лежат на листе, Cell.Worksheet — обращение к листу на котором находится ячейка и соответственно Shapes. В противном случае будет искать в рисунках на активном листе, а ячейка Cell может быть на другом листе. И вообще, в приведенном примере фунции если я передам ей как аргумент область Range (непример, одну ячейку), поиск рисунков будет вестись только в ней, а не во всем листе? Функция пробегает по всем объектам Shapes на листе и если это рисунок сравнивает адрес ячейки Cell в параметре фукции с адресом левого верхнего угла рисунка т.к. Рисунок на листе с образцами меньше размера ячейки… Проверяет одну ячейку и все рисунки. Если передать в функцию область будет бессмысленный результат. По условию вроде надо было проверять одну ячейку.
1 |
Предназначение программы: вставка изображений в таблицу Excel, поиск картинок в папке или в Google, экспорт картинок из таблицы в папку.
Основные функции программы:
- вставка фото из папки (поиск по имени файла)
- вставка картинок по ссылкам из таблицы
- поиск изображений в гугл по данным с листа Excel
- экспорт изображений с листа в файлы
- сжатие изображений перед вставкой (получается файл минимального размера)
- поиск картинок в подпапках (глубина поиска по подпапкам не ограничена)
- добавление гиперссылок к вставляемым изображениям
- 3 варианта поиска файлов в папке (по точному совпадению имени файла и значения ячейки, или по частичному вхожению)
- 2 режима вставки картинок — подгонка размеров под ячейку, или соблюдение пропорций исходного изображения
- возможность вставки изображений в примечания к ячейкам
- поиск недостающих фотографий товара в Google (в т.ч. поиск по заданным сайтам)
- режим вставки изображений сразу в несколько столбцов
- экспорт полноразмерных изображений (в каком виде они хранятся внутри файла Excel)
Подробнее — в разделе Справка по программе
Подробные инструкции и описание функционала также можно найти в разделе Справка по программе
Подробные инструкции и описание функционала также можно найти в разделе Справка по программе
Надстройка позволяет искать в выбранной папке изображения, основываясь на содержимом ячеек таблицы Excel, и производить вставку найденных изображений в соседние ячейки (или в примечания к этим ячейкам).
Кроме того, надстройка умеет скачивать изображения по ссылкам, сохраняя загруженные изображения в заданной папке, и вставлять картинки в примечания к ячейкам.
Принцип работы с программой:
- Скачиваем файл программы (по ссылке выше), и сохраняем его куда-нибудь себе на диск. (например, на Рабочий Стол)
- Запускаем файл надстройки PastePictures.xla(как любой другой файл Excel — двойным щелчком)
- Открываем файл с названиями картинок (пример файла вы увидите при тестировании программы)
- На панели инструментов программы нажимаем кнопку «Настройки», выставляем нужные параметры
- На форме настроек выбираем путь к папке, содержащей картинки (изображения)
- Выставляем необходимые размеры для ячеек с картинками, выбираем первую ячейку на листе с именем файла
- Указываем номер столбца, в который будут помещены изображения
- и т.д. и т.п. — настроек там много разных, но разобраться в них совсем не сложно
- Нажимаем в меню «Изображения» — «Вставить картинки из папки», и через несколько секунд получаем результат.
- Если в исходной таблице — не имена файлов, а ссылки (URL) на картинки в интернете, то используем для запуска пункт меню «Изображения» — «Вставить картинки по ссылкам».
В Excel легко найти и выделить все изображения на активном листе. Но знаете ли вы, как в Excel проверить, есть ли в ячейке изображение? Вам может помочь метод, описанный в этой статье.
Проверьте, есть ли в ячейке изображение с кодом VBA
Проверьте, есть ли в ячейке изображение с кодом VBA
Приведенный ниже код VBA может помочь вам проверить, содержит ли ячейка изображение. Пожалуйста, сделайте следующее.
1. Откройте рабочий лист, в котором необходимо проверить, существует ли изображение в указанной ячейке, затем нажмите кнопку другой + F11 , чтобы открыть Microsoft Visual Basic для приложений окно.
2. в Microsoft Visual Basic для приложений окна, нажмите Вставить > Модули. Затем скопируйте и вставьте код VBA в окно кода.
Код VBA: проверьте, содержит ли ячейка изображение в Excel
Sub CellHasPicture()
Dim xRg As Range
Dim xShape As Shape
Dim xFlag As Boolean
On Error Resume Next
Set xRg = Application.InputBox("Please enter the cell address:", "KuTools For Excel", Selection.Address, , , , , 8)
If xRg Is Nothing Then Exit Sub
xFlag = False
For Each xShape In ActiveSheet.Shapes
If xShape.TopLeftCell.Address = xRg.Address Then
xFlag = True
End If
Next
If xFlag Then
MsgBox "Image exists!"
Else
MsgBox "Image does not exist"
End If
End Sub
3. Press the F5 key to run the code. In the popping up Kutools for Excel dialog box, please enter the cell which you want to check if it contains a picture, and then click the OK button. See screenshot:
4. Then a dialog box will pop up as below screenshot shown if a picture exists or not in the specified cell.
Related Articles:
- How to automatically change all pictures to move and size with cells in Excel?
- How to center a picture in an Excel cell?
- How to insert image or picture dynamically in cell based on cell value in Excel?
- How to enlarge image when click on it in Excel?
The Best Office Productivity Tools
Kutools for Excel Solves Most of Your Problems, and Increases Your Productivity by 80%
- Reuse: Quickly insert complex formulas, charts and anything that you have used before; Encrypt Cells with password; Create Mailing List and send emails…
- Super Formula Bar (easily edit multiple lines of text and formula); Reading Layout (easily read and edit large numbers of cells); Paste to Filtered Range…
- Merge Cells/Rows/Columns without losing Data; Split Cells Content; Combine Duplicate Rows/Columns… Prevent Duplicate Cells; Compare Ranges…
- Select Duplicate or Unique Rows; Select Blank Rows (all cells are empty); Super Find and Fuzzy Find in Many Workbooks; Random Select…
- Exact Copy Multiple Cells without changing formula reference; Auto Create References to Multiple Sheets; Insert Bullets, Check Boxes and more…
- Extract Text, Add Text, Remove by Position, Remove Space; Create and Print Paging Subtotals; Convert Between Cells Content and Comments…
- Super Filter (save and apply filter schemes to other sheets); Advanced Sort by month/week/day, frequency and more; Special Filter by bold, italic…
- Combine Workbooks and WorkSheets; Merge Tables based on key columns; Split Data into Multiple Sheets; Batch Convert xls, xlsx and PDF…
- More than 300 powerful features. Supports Office / Excel 2007-2021 and 365. Supports all languages. Easy deploying in your enterprise or organization. Full features 30-day free trial. 60-day money back guarantee.
Read More… Free Download… Purchase…
Office Tab Brings Tabbed interface to Office, and Make Your Work Much Easier
- Enable tabbed editing and reading in Word, Excel, PowerPoint, Publisher, Access, Visio and Project.
- Open and create multiple documents in new tabs of the same window, rather than in new windows.
- Increases your productivity by 50%, and reduces hundreds of mouse clicks for you every day!
Read More… Free Download… Purchase…
Comments (0)
No ratings yet. Be the first to rate!
ДЛД Пользователь Сообщений: 23 |
Добрый день! В ячейке xls есть рисунок. Как через vba узнать его Item чтобы потом обратиться к нему через Index, например ActiveSheet.Shapes(4)?. |
Андрей VG Пользователь Сообщений: 11878 Excel 2016, 365 |
#2 09.05.2018 10:50:49
Не верное утверждение. В отличии от Word, в ячейке не размещаются рисунки. Они лежат поверх неё. Следовательно это у рисунка нужно спрашивать — над какой ячейкой он лежит. BottomRightCell и TopLeftCell в помощь. |
||
БМВ Модератор Сообщений: 21385 Excel 2013, 2016 |
Андрей VG, Андрей, приветвую, с Праздником. Опередили чуток. ДЛД, по сути Вам придется сперва перебрать все объекты и проверить на то, что они находятся в области целевой ячейки, и если да, то получить , ID, имя … и тогда с ним работать. По вопросам из тем форума, личку не читаю. |
ДЛД Пользователь Сообщений: 23 |
Андрей VG
, скажите чтобы узнать Item рисунка «лежащего над ячейкой» — правильным ли будет алгоритм: |
Андрей VG Пользователь Сообщений: 11878 Excel 2016, 365 |
#5 09.05.2018 11:18:17 В принципе, видится такой алгоритм.
Привет, Михаил. |
||
ДЛД Пользователь Сообщений: 23 |
Андрей VG
, «смысл задачи» такой. На листе (только в одном столбце «B») в ячейках есть текст и рисунки, но имеются также пустые ячейки в этом столбце. Циклом For удаляются пустые строки, но только те, над которыми не «лежат» рисунки. Через Item я хотел узнать «габариты» рисунка (BottomRightCell.Row) чтобы под ним не удалять строки |
Андрей VG Пользователь Сообщений: 11878 Excel 2016, 365 |
Ну, тогда можно чуть по другому. |
ДЛД Пользователь Сообщений: 23 |
Андрей VG
, спасибо. Буду пытаться. |
ДЛД Пользователь Сообщений: 23 |
Поставленную задачу (не ту что в заголовке) можно решить так: сначала удалить ВСЕ строки с пустыми ячейками в столбце «B», а потом добавить строки ТОЛЬКО «под» рисунками. |
ДЛД Пользователь Сообщений: 23 |
Почему-то не загрузился файл |
vikttur Пользователь Сообщений: 47199 |
#11 10.05.2018 22:54:25
Размер какой? Код в сообщении нужно оформлять с посмощью кнопки <…>. Попробуйте, не кусается. |
||