Посвещавам тази статия на Стефан Атанасов (известен като Stefan Wolf и Брадли). Един младеж, който често ме е вдъхновявал с отдадеността хъм своето хоби и щедростта, с която споделяше знание и помагаше на другите да учат. Почивай в мир, друже! А ти, уважаеми читателю, не слушай знайни и незнайни експерти, а се пази. КОВИД-19 е коварен
Използването на динамични изображения в Excel може да бъде много полезно при създаването на отчети, оферти, инфографики и т.н. За мнозина това е една техника за напреднали, но всъщност се състои от няколко прости стъпки, които ще демонстрирам с настоящата статия.
Какво са динамични изображения в Excel?
Това са изображения, които се променят в зависимост от стойността в дадена клетка. Например имаме имената и пред тях емблемите на всички 14 отбора от нашата елитна А Професионална Футболна Група (колко е елитна е друг въпрос).
Искаме, когато въведем в някоя клетка „Арда (Кърджали)“ да се появи емблемата на този отбор. Съответно, когато в клетката е въведено „Ботев (Пловдив)“ да се появи емблемата на най-стария футболен клуб в България. А при избор на „Черно Море“ – настоящата емблема на наследника на първия футболен шампион на България.
Ето и как се правят такива динамични изображения в Excel
Стъпка1: Подреждане на изображенията
Най-напред определяме къде ще бъдат имената на отборите и клетката, чиято стойност ще се променя динамично. За удобство можем да създадем падащо меню в тази клетка, което ще даде възможност за избор на стойност от списък. Вместо с падащ списък, клетката може да се променя чрез формула или макрос. Също така, променящата се клетка може да не е разположена до списъка с изображенията, а дори в друг работен лист.
Оразмеряваме клетките, където ще поставим изображенията на емблемите на отборите. Всяка клетка трябва да е достатъчно голяма, за да побере съответното изображение. Не е задължително, но би било по-добре изображенията да са с еднакви размери, което означава, че и клетките трябва да са с еднакви размери.
В случая клетките са оградени с черна линия, за да се види по-ясно техният размер. Но имайте предвид, че тази линия ще се вижда, когато започнем да използваме динамичните изображения. Ако не желаете това – не слагайте линия
Следва най-досадната и времеотнемаща операция – да оразмерим и поставим всяко изображение срещу името на съответния отбор
Стъпка2: Създаване на динамична наименована област (Dynamic Name Range)
Това на този етап изглежда не много логично, но смисълът ще се изясни като завършим процеса. За момента с CTRL + F3 извикваме менюто Name Manager и избираме New
В менюто, което се появява задаваме име (Name). То трябва да започва с буква и да не съдържа интервал. Аз съм избрал оригиналното DPic, съкратено от Dynamic Picture
В полето Comment можем да напишем кратък коментар за тази наименована област. Това не е задължително, но може да бъде полезно и удобно. Особено, ако използвате повече такива области във вашия файл.
В Refers to записваме следната формула:
=INDEX(Sheet1!$B$3:$B$17;MATCH(Sheet1!$E$2;Sheet1!$C$3:$C$17;0))
Оцветеното в червено е областта, където са изображенията. В моя случай – Sheet1!$B$3:$B$17
В синьо е клетката, която ще се променя – в примера това е клетка Е2 на Sheet1
И накрая в зелено е областта, в която са имената на отборите, т.е. C$3:$C$17 в Sheet1
Точно така това е един класически случай на употреба на Index/Match – формулата „вижда“ стойността в клетка Е2, отива в областта С3:С17, намира я и връща това, което се намира в колона В срещу тази стойност.
Стъпка3: Създаване на динамично изображение
Вече сме почти на финала. Това, което трябва да направим е да копираме някое от изображенията и да го поставим, където искаме да бъде. Няма значение кое ще бъде, аз съм взел емблемата на Арда Кърджали.
След като я нагласим, където трябва, маркираме я и кликаме във формула бара, където записваме: = DPic
Точно така – Ексел позволява всяко картинка да показва стойността в дадена клетка.
Вижте какво се получава, когато натисна Enter
Така и трябва да бъде, защото:
- в клетка Е2 пише Ботев (Пловдив), което м/у другото съвсем случайно се получи
- тогава динамичната област DPic търси в С2:С17 стойността „Ботев (Пловдив)“, намира я в клетка С6 и връща съдържанието на клетката в колона В6
- Но там се намира емблемата на Ботев (Пловдив) и затова нашата картинка автоматично показва нея
А като изберем Царско Село, резултатът е това:
Ами … това беше. Както виждате – създаването на динамични изображения в Excel не е особено сложно, макар да е доста ефектно. Доста се постарах да го обясня нагледно и разбираемо, но ако не съм се справил – вижте това видео на Лейла Гарани.
В интерес на истината това не е единственият начин да се направят динамични изображения в Ексел. Срещал съм поне още 2 начина, но те изискват VBA.