Найдены возможные дубликаты

+47

"Условное форматирование" в Экселе вещь очень полезная с точки зрения визуализации. Я долго работал в экселе, но в дебри некоторых функций не лез за ненадобностью. Но как-то мне сбросили табличку где некоторые подкрашивались сами в зависимости от условия. Я сначала не понял откуда цвет берется. Потом начал разбираться. Когда разобрался стал и сам частенько использовать данную функцию таблиц.

Применений можно придумать уйму. Зависит от конкретной таблицы в Экселе и ее назначения.

Начиная от простого допустив если надо чтоб подсвечивало отрицательные ячейки одним цветом шрифта и /или заливки а положительные другим и заканчивая.. ну не знаю чем угодно.

Сделал дочке таблицу с распорядком дня - уроки, кружки всякие - много всего. Сверху шапка из дней недели первый столбец с разбивкой дн я на часы. И подсвечивает текущий день недели и время суток - чтоб видеть что сейчас. Ну и другие вариации графиков\расписаний/планов с подсветкой дат и событий в зависимости от цели. В работе надо иногда заполнять данные некоторые и к ним в соседних ячейках нужно вводить дополнительные уточнения, чтоб не забывать это сделал правило чтоб делало красной заливкой пустые ячейки дополнительных данных, если заполнена основная ячейка.

раскрыть ветку 9
+15
Условное форматирование кошмарно тормозит таблицу, если с ней работать по сети....
И группировка строк/столбцов тоже....
Атак да - удобно)
-13

Автор, а почему не пользуешься приложениями? Ajoll task попробуй в play markete

раскрыть ветку 7
+10
Вот мне даже интересно посмотреть на человека, который, имея прямые руки, рабочий компьютер с настроенной базой, удобной клавиатурой втыкать в планшет/смартфон с Т9 и там перебирать эту информацию, вглядываясь в текст. Ведь можно настроить сбор данных с разных таблиц и баз.
если бы это был большой склад, то можно еще настроить планшет, чтобы с ним ходить. Но лишь как дублирующее устройство.
раскрыть ветку 6
ещё комментарии
+12

Пните меня завтра, я тоже магию покажу. Пока что для затравки

https://docs.google.com/spreadsheets/d/1zwzSIdHi087jjRWIWcP8u8W_a4TGcHEzIFzhaakXypo/edit?usp=sharing

(для редактирования - копируйте себе), всё происходит во вкладке "крафт"

раскрыть ветку 6
+1

Чукча обещал, чукча сделяль.

https://pikabu.ru/story/nemnogo_excel_tochnee_google_spreadsheet_i_chutchut_pro_razrabotku_igr_6908363
раскрыть ветку 3
+1
Чукча, можешь вставлять работающие ссылки?
раскрыть ветку 2
+1

Интересно

Это что-то вроде таблицы для расчета крафта для ДнД или чего-то подобного?

правда мне непонятен смысл графы софт/хард/металл и единицы в которых измеряются данные в одноименных листах(правда я особо в формулы не вникал).

раскрыть ветку 1
0

Да, походе на крафт. Думаю, это чтобы рассчитать хрупкость итогового изделия, а разные таблицы для удобства.

+7

Спасибо. Полезная статья. Сохронил.

раскрыть ветку 6
+45
Чтобы ни разу не воспользоваться. Лига лени приветствует тебя.
раскрыть ветку 2
+1
Новые фильмы 2005 года лежат в загрузке, посмотрю как-нибудь, ага
+1

Пддржв

+6
Сначала прочитал "схоронил"...
раскрыть ветку 1
0

Ты не так уж далёк от истины ))

+1

Ага 1970 сохранений и 561 плюсов.

+7

Эм, а чем не подходят црм различного рода?

раскрыть ветку 4
+17

Для того чтобы так настроить црм, под себя, по своим правилам, надо так же много работать руками и создавать правила. А перед этим изучить кучу faq по их корректировке. Либо пользоваться теми что есть по умолчанию, что сильно отличается от полностью лично своих.

Кроме того црм просто безумное количество, каждый программно хочет урвать свой кусок пирога. Некоторые не удачные, некоторые чрезмерно сложные. Как выбрать? Откуда узнать? Когда прекратится поддержка? Выбрал простую но потом захотел усложнить, получиться ли?

А Эксель многие многие знают на базовом уровне, к тому же форумулы работают и в Эксель и в опен офисе и похожий на 90% синтаксис в гугл документах. Эти три инструмента покрывают практически весь "рынок" пользователей таблиц. Они знакомы всем менее или более. Сетевой faq и комьюнити просто поражают своими объемами.

Да, согласен, Эксель несколько вычурный метод, но он имеет реально много плюсов, с этим вряд ли можно поспорить.

раскрыть ветку 1
0

А приложения googleapps?

+5
Это если не знать про црм только. Можно ещё в общей тетради фломастерами дд проставлять
раскрыть ветку 1
+6

Судя по минусам любит у нас народ ездить на самоделках из говна и палок вместо серийного авто.

+2

Может кто подскажет. У меня есть 12 таблиц на 1 листе (на каждый месяц) где есть заказы и их стоимость. Можно ли какой-то формулой посчитать сумму определенных заказов, например по ключевому слову?

раскрыть ветку 6
+1

Да, даже с нескольких книг можно.

https://www.excel-vba.ru/chto-umeet-excel/vpr-s-poiskom-po-n...

Лучше, конечно, сделать плоскую таблицу, как написал @CuzMich - например, написать макрос, который будет из "удобного вида" делать такую табличку. А после одной ВПР тащить что хошь.

раскрыть ветку 2
0

Недавно коллега, умеющий в вба, показал индекс поиск позиций. Я сначала не мог понять, зачем такие сложности,впр же проще и быстрее написать . но со временем чуть получше изучил вопрос. Со смарт таблицами вообще чудеса творит. Попробуйте почитать о этой формуле на досуге.как минимум то, что не надо заморачиваться с переносом данных в первый столбец, уже облегчает жизнь)

раскрыть ветку 1
+1

Из 12 таблиц сделай одну с дополнительным столбцом "Месяц". Далее используй функцию СУММЕСЛИ. Или сводные таблицы

раскрыть ветку 1
0

Если переводить 12 таблиц в 1, теряется наглядность и простота. Наверняка можно написать какой-то запрос, который будет парсить с таблиц по ключевым словам

0
Ну да, сваяй сводную таблицу. Даже если лень , то в любом случае, тебе надо таблицы расположить в столбик (одна под другой). А дальше фильтрацией+промежуточные итоги
+2

А про обощи поподробнее можно?))

раскрыть ветку 4
+1
MaxDone, Todolist умещаются в телефон и несут тот же функционал
раскрыть ветку 2
+5

Excel гораздо удобнее в некоторых вещах.

Работаю с документами, нужно отслеживать срок исполнения той или иной задачи.  Да Todolist может отобразить мои задачи, но не может сделать это для некоторого количества сотрудников. Excel может отобразить их за определённый период, исполнено/не исполнено, с разбивкой по сотрудникам, посчитать количество за период и т.д.

Всякие task manager ы так не могут.

раскрыть ветку 1
0

Не заметил ошибку)

+3

Привет. Подскажи пожалуйста, если в курсе. Есть исходная таблица Excel в которой более 1000 строк. В этой таблице есть повторяющиеся строки по наименованию, но разные значения количества, цена,  стоимость и т.п.

Что я делаю : ставлю фильтр и отфильтровывая каждое наименование вычисляю количество, среднюю цену, сумму и все данные заношу в одну строку лишние строки удаляю. И так по всем наименованиям. По времени это ппц, но в конечном итоге,образно, документ из 60 и более листов сокращается до 15 - 20 листов. Можно ли как то этот процесс автоматизировать ? С чего начать ?

раскрыть ветку 30
+22
Сводные таблицы тебе в помощь на первых порах гораздо легче макросов
+3
Оператор ЕСЛИ(ЕОШИБКА(НАЙТИ...) - поиск по ключевому слову (оставляем окошко под ввод ключевика). Протягиваем по всей таблице. Затем либо просто сортируется по результатам и сносим лишнее одним движением руки, либо пользуемся операторами СУММЕСЛИ (если требуется сумма) и СЧЁТЕСЛИ (например если хотим найти среднее арифметическое) для этого диапазона.
Работаю в Excel 2003, в 2007 и далее есть оператор ЕСЛИОШИБКА, он вроде как более удобен с точки зрения потребления системных ресурсов. Описания операторов нормально представлены в справочной системе.
раскрыть ветку 2
0

!!!

0
Спасибо 👍
+2

Planetaexel.ru

Автор сайта Николай Павлов.у него же на ютубе канал по екселю.очень толковые штуки показывает.сам второй год изучаю.про подсветку дат он так же рассказывал.да просто для начала посмотрите назыания всех видео его.если там ответа не будет,то на форуме достаточно вопрос задать.в конкретно вашей задаче макросы лишние.был какой-то то видос у него по этой теме.в итоге отдельной таблицей вообще выводились номера всех строк по заданному критерию.начните с сравнения двух списков.было такое видео точно. Если не разберетесь,пишите,помогу

За сводные таблицы вам уже рассказали.но если у вас много строк ,но для работы с ними сначала нужно таблицу правильно подготовить.

раскрыть ветку 3
0
Спасибо за информацию 👍
раскрыть ветку 2
+2

PivotTables решают это на раз-два

+2
Как вариант изучить макросы, полезная вещь
раскрыть ветку 4
+1

макросы для такой ситуации сложновато. сводные таблицы сполна решат проблему.

раскрыть ветку 2
0

Спасибо, почитаю.

+1
Очень рекомендую для этих целей access. Данные из Excel туда переносятся копированием, после чего операцию вычисления среднего, если тяжело в визуальном редакторе запросов, то данное действие можно сделать мастером запросов в 2 клика - выбрав avg по нужному полю. А если потратить час-два и разобратся с ним получше, то можно вообще фантастические вещи делать с данными. На мой взгляд - сложные макросы, сводные таблицы и тп - это чересчур для excel. Он не для этого и это реализовано в нем через пятую точку, для работы с данными - access, для визуализации - Excel.
раскрыть ветку 10
0

расскажите, как перенести данные копированием?

раскрыть ветку 8
0
Спасибо за информацию
0
Попробуй еще функцию "промежуточные итоги", иногда ею быстрее текущую задачу закрыть
раскрыть ветку 1
0
Спасибо 👍,попробую
0

pivot table тебе в помощь

0

Да, чувак, сводные таблицы, разберись.

-1

Я   бы так сделаль:

1. Сортировка в алфавитном порядке

2. Сгруппировать по наименованию

3. Копировать в новый эксель/Лист, вставить как только значения.

4. Вычислить среднее, или/и прочее, что нужно.

5. Повторить все и записать макрос.

+2

Почему бы просто не использовать сортировку по сроку? У меня коллеги любят разноцветные таблицы, но у них есть общая проблема - через неделю никто не вспомнит что означают цвета. Получается, нужно ещё легенду рисовать, а это уже перебор.

+2

Что за ад с картинками? Неужели текстом нельзя это написать нормально? Или все ради водяных знаков? Страшно, что это кто-то украдет и будет писать свои статьи? Бред. Никакого открытия тут нет, чтобы прятать это дело в картинках.

+1

Ждём следующий урок: как выровнить текст в ворде без использования пробелов.

+1
Спасибо
+1
А тот же гуглдокс(sheets) тоже нормально обрабатывает всё это?
Просто любопытно
раскрыть ветку 10
+1

Да там все это есть, но немного сложнее. Некоторый функционал начиная с продвинутого уровня не имеет фак на русском. Точнее не имеет достаточного для простого юзера, а так то описания есть.  Вгугл докс тоже есть условное форматирование, подсчёты, листы, импорт между книгами и тд и тп.. но опять, начиная с уровня запросов выше среднего все сильно усложняется. Впрочеи, Эксель на этом уровне тоже не прост.

Единственное что у меня вызывает вопрос, т.к. до сих пор не интересовался, это кнопка выключения условного форматирования.

Более того, в Эксель и гугл докс можно писать свои программы с очень сложными действиями, типа макросов.

раскрыть ветку 1
0
Спасибо за развёрнутый ответ. Я просто не пользуюсь особо табличными процессорами. Интерес был в том насколько бесплатный веб развился. Вот благодаря ветке узнал про полуоффлайн гугла (хоть и через специфический браузер).
0

Имхо Excel Online лучше Google Sheets

Совместимость лучше, формулы на русском

раскрыть ветку 3
+7

>>формулы на русском

Ловите одноэсника.

раскрыть ветку 1
0
Да скорее всего. Вопрос и был к тому чтоб узнать насколько это "совместится". Там же просто попробовать импортнуть файл. Не делать же такой чисто для проверки.
-3

А если на предприятии или офисе нет интернета?

раскрыть ветку 3
+1

а почему вопросом на вопрос ?

раскрыть ветку 1
+1
Open Google Docs, Sheets, and Slides offline

Open Chrome. Make sure you're signed in to Chrome.

Go to drive.google.com/drive/settings.

Check the box next to "Sync Google Docs, Sheets, Slides & Drawings files to this computer so that you can edit offline
---
но вообще мне чисто академически интересно
0
Комментарий удален. Причина: оскорбления, грубое общение и провокации
раскрыть ветку 1
-1

@moderator, мне ему самому бан оформить за оскорбление или лучше вы?

0

Научите плиз как сделать:

Есть некоторые события с определенного времени ( пусть будет воемя Х), (укажу в часах начало мероприятий), каждое событие идет какой то промежуток времени ( 30 минут, или час или два или три дня).


Нужно сделать вывод контроля этих событий. К примеру:

- на данный момент прошло столько то мероприятий (количество),

-планируется еще до конца столько то,

- в текущий момент времени выполняется такое то (по номеру пункта или названию).

- и пара пунктов требуют доклада по времени - хочется напоминалку в каком нибудь виде если это возможно.



Если это в экселе не исполнимо то подскажите в чем попытаться сделать...

раскрыть ветку 1
0

В Excel такого не сделать, возможно на питоне можно написать, а вообще на секундомер и таймер похоже, только без уведомлений

0
Не получается никак вкл/выкл подсветки, что не так?!
раскрыть ветку 1
0

У вас в условном форматировании должен быть точно такой же порядок строк с формулами как в моём примере

0

@Veseliy.4el Привет. Слушай, прошу прощения, что беспокою. В старый пост пишу чтоб не флудить по активным, а лички на пикабу собственно и нету. У меня по моим маркетинговым делам есть давняя мечта, составить календарь со списком праздников/событий по дням. Причём имеется ввиду вот что: ручками набить все статичные праздники, которые могут быть интересны (от НГ до дня взятия Бастилии), ну и дальше иметь возможность добавлять  оперативные события, при этом иметь максимальную простую десктопную версию. Даже не знаю как это назвать, календарь-ежедневник что ли. Всё ПО, онлайл-сервисы, прочие варианты, что на протяжении уже лет 10-ти пересматривается при очередном обострении проблемы - ну неудобоворимы по трём тысячам причин, начиная с времени заполнения и заканчивая сомнительным никаким удобством в работе. Ты вот тут напомнил насколько велик и могуч Excel, и возник вопрос. Вот на картинке какой-то шаблон с сайта microsoft в котором на уровне "интерфейса" хотя бы просвечивается то что бы хотелось, а хотелось бы вот чего, в рамках картинки, что бы при выборе даты в левой колонке Important Dates выдавались события с ней связанные, пусть хоть он с 365 листов следующих это берёт, гавное что бы вот так с одной страницы, пусть даже с самого простого каландаря из квадратиков выбирать можно было, без 100 кликов. Что-то подобное можно в Excele сделать? Или к программерам всёж топать?

Иллюстрация к комментарию
раскрыть ветку 4
0

В Excel есть возможность создать календарь, а на счёт событий в этот день их всё равно нужно будет вводить вручную, я подумаю как реализовать ваши пожелания, а как вариант outlook не подойдёт? Он как раз под такое рассчитан

раскрыть ветку 3
0

В целом в MS Outlook пожалуй самая приемлемый приемлемый вариант из всего виденного, тем более я им активно пользуюсь. Но Excel эт всё же структурированная подача информации, база, которую можно по всякому использовать. Я тут дальше может фантазирую уже даже, или перфекционизм какой играет. Но такой календарь можно будет и при создании сайтов использовать. Плюс мне он самому как ежу футболка нужен, больше клиентам, а у клиента сейчас оутлук днём с огнём не сыщешь, диназавром себя чувствую)

раскрыть ветку 2
0

Автор, послушайте, если я Вам пришлю одну довольно длинную таблицу, Вы сможете сделать так, чтобы за три месяца до истечения срока годности строка в одном столбце подсвечивалась желтым, а за месяц до истечения - красным? Честно пытался следовать Вашему рецепту, но это слишком сильное колдунство для меня. Готов заплатить Вам за Ваш труд.

раскрыть ветку 26
+1

Давайте я попробую сначала сделать как Вам нужно, потом скажу получилось или нет

раскрыть ветку 25
0

Давайте. Я поясню: есть список лекарств с указанием сроков годности. Довольно длинный. Месяца за три до его истечения надо уже оформлять заказ на новые. Поскольку список длинный, то иногда пропускаешь ту или иную дату. Вот и было бы неплохо, если бы за три месяца до истечения срока годности он подсвечивался бы. Но тут еще одна беда: в графе может быть несколько дат. Например, поступило пять пузырьков йода - два из них будут просрочены в апреле, а три - в мае 2020. И тоже не знаю, как быть.

раскрыть ветку 24
0

ч з дерьмо, никто до сих пор не скинул ссыль на готовую таблицу?

я што блэт должен ручками сам всё вбивать?

совсем охренели..

распущу весь отдел к хуям..

0

Ха-ха, сроки. Все надо сделать сегодня, а лучше ещё в июле.

0
Спасибо автору. Полезно. Сталкивался с Conditional formatting оказывается по-русски это условное форматирование. Но сталкивался с готовыми таблицами. Офис у меня английский, поэтому тяжело читать формулы на русском :)
0

И текст в виде скринов опять. Чтобы удобнее искать было, видимо.

0

не вышло((((

раскрыть ветку 1
0

Переделала, получилось

0
Секунд 10 мозг ловил синий экран в попытках осознать, что за таблица контроля орков. О.о
0

@Veseliy.4el, Несколько "замечаний" по оформлению поста:

1) По "дефолту" в Excel сейчас стоит стиль ссылок RC, так что новичкам (статья то для них) стоит всё же показывать именно в этом формате. Или указывать 2 варианта формул.

2) Картинки для текста имеют хорошее качество, но вот вставки с "примерами" уже действительно сложно разглядеть. Предлагаю разделять текст с картинками, что бы можно было по нажатию на скрин всё в деталях разглядеть.

3) Если используешь вкладку "Разработчик" (ИМХО она тут лишняя), то указывай что эта вкладка "по дефолту" отключена. Опять же, статья для новичков..

раскрыть ветку 3
0
Лучше показать как на А1 перейти, раз для новичков, ведь такая адресация гораздо проще для понимания.
раскрыть ветку 1
0
Не раз сталкивался с таким мнением и искренне не понимаю как люди могут считать что адресация через БУКВЫ может быть удобнее. Я ещё могу предположить что это может быть удобно в маленьких таблицах, но в более менее серьёзных.. Привычка конечно страшная сила, но новичков то зачем на устаревший формат переводить, не просто так был введён новый формат, чай не идиоты Excel делают.
0

Я учту ваши замечания

0
Слишком сложно. Уже давно существуют специальные программы для этого. Это раньше кроме экселя ничего не было и в нем делали всё, эти времена прошли...
раскрыть ветку 1
+7

Назови три

0

А потом приходится перепиливать подобные вещи на 1С.

0
О.. Я из Навои
раскрыть ветку 1
0

и что там с обувью?

самый козырный в списке термез, банкоматы, видимо уже на выручке сидят.

0

Для этого всего есть более мощные и специализированные инструменты. Jira, например

0

Т.е. crm или todo приложением каким либо не пользуетесь? Без обид, но это изобретение велосипеда.

раскрыть ветку 9
+7
Тут пример с подсветкой дат дан как раз для примеру. :) Из-за наглядности. Очень часто надо при создании сводных ведомостей чтобы в определенных столбцах и строках подсвечивались не проходящие по условию данные. Я регулярно делаю сверки с поставщиками и клиентами. И частенько бывает что база с которой я работаю неправильно выгружает значения. И вот такое условное форматирование существенно облегчает жисть.
0

Это пример для тех у кого нет интернета, либо комп слабый

раскрыть ветку 7
+5

Слабый комп ваши таблички в экселе сожрут к хуям

раскрыть ветку 1
0
Подскажите пожалуйста, а как изменить формулу, чтоб подсвечивалось нужным мне цветом до наступления срока за допустим 10 дней?
раскрыть ветку 4
0

@SupportTech, при загрузке поста первая и вторая картинки поменялись местами, можете поправить?

раскрыть ветку 3
+2

Я все же по техническим неполадкам, вам лучше обратиться к @moderator,

раскрыть ветку 2
0

Я всё поправил)

раскрыть ветку 1
0

Первая и вторая картинка перепуталась местами при загрузке(( как поменять не знаю

-1

Описание ужасное. Написано "вводим", а куда вводить не написано. Логично посмотреть на предыдущий пункт, но, к сожалению вводить не туда. Может быть это и полезно, но автору нужно научиться правильно и последовательно излагать мысли. Если у тебя в голове всё понятно, это не значит, что у других также.

раскрыть ветку 1
-1

Все формулы вводятся одинаковым способом, я об этом написал, а твои умственные способности я не учел, извиняй.

-1
Настоящий сисадмин
-1
Спасибо! Попробую, схоронил
-1
Ниплоха.... Прям ништяк!
Конечно, попахивает 5С, но ТС благодарочка
раскрыть ветку 2
0

Я буду рад если вам это пригодится)

раскрыть ветку 1
0
Добрый вечер.
Подскажите, как сделать чтобы ячейки автоматически закрашивались определенным цветом, если до заданного значения остаётся один час (условно). Формат ячеек - время.
-3
Полезные советы из книги 2014 года, с подключением
-3

Back to USSR

-4

Слава яйцам, что мой начальник понятия не имеет, что такое пикабу, иначе бы, после твоего поста, 100 % начал ебать мне мозг, чтоб я это сделал, а вот это вот все не мое оно, я как то по железякам к авто больше предрасположен, хотя, чисто для себя, попробовать стоит.

раскрыть ветку 1
0
Похоже, ты работаешь не там, где хотел бы...
Похожие посты
381

ВПР и числа-как-текст

Обычные числа и числа-как-текст (т.е. числа, которые только выглядят как числа, а, по-сути, являются текстом) - это причина многих проблем и сложностей при работе с данными в Microsoft Excel. Одна из подобных ситуаций - использование функции ВПР (VLOOKUP) для поиска и подстановки, когда в исходных данных есть эти пресловутые числа в текстовом формате.


Рассмотрим классический пример - подстановку цен из прайс-листа в таблицу заказов по совпадению артикулов:

ВПР и числа-как-текст Excel, Впр, Таблица, Полезное, На заметку, Длиннопост

Как и множество других функций и инструментов Excel, ВПР считает числа как текст не равноценными этим же числам в нормальном виде, поэтому выдаёт ошибку #Н/Д, сигнализируя, что искомое значение не обнаружено, хотя визуально оно, вроде бы, есть.


Давайте рассмотрим различные сценарии, с которыми мы здесь можем столкнуться и решения для каждого из них.


Примечание: Различить нормальные и текстовые числа не всегда легко. Иногда на таких ячейках появляется зелёный уголок-индикатор, иногда - нет. В этой статье, для наглядности, я буду выравнивать числа-как-текст по левому краю, а нормальные числа - по правому.


Вариант 1. Числа-как-текст в искомых значениях


Предположим для начала, что псевдочисла эпизодически встречаются у нас в искомых значениях, т.е. в таблице заказов (диапазон B4:B7) и перемешаны с нормальными числовыми артикулами, что приводит к появлению ошибок.


Исправить ситуацию можно, если заставить Excel принудительно конвертировать все исходные артикулы с помощью выполнения над ними любой математической операции, типа:

- умножения или деления на 1

- прибавления или вычитания 0

- двойного знака минус перед артикулом (равносильно двойному умножению на -1)


Значение артикула от выполнения такой безобидной математической операции никак не изменится, но сам факт её выполнения заставит Excel воспринимать артикул именно как число. А значит и ВПР найдет текстовые значения без проблем:

ВПР и числа-как-текст Excel, Впр, Таблица, Полезное, На заметку, Длиннопост

Вариант 2. Числа-как-текст в таблице, где ищем


Может встретиться и обратная сторона той же медали, когда псевдочисла будут не в заказе, а в артикулах прайс-листа. Здесь поможет та же логика: для принудительного преобразования исходных числовых артикулов в текстовые, над ними нужно выполнить любую безобидную не математическую, а текстовую операцию.

Самым простым и компактным вариантом будет приклеивание к артикулу пустой строки:

ВПР и числа-как-текст Excel, Впр, Таблица, Полезное, На заметку, Длиннопост

Артикул от такой склейки никак не меняется, но вынужденно преобразовывается в текстовый формат, т.к. склейка априори возможна только для текста.


Вариант 3. Пропадание начальных нулей


Частным случаем предыдущего примера бывает сценарий, когда артикулы в прайс-листе не просто текстовые, но ещё и содержат нули в начале строк, дополняющие их до заданной разрядности. Тут поможет функция ТЕКСТ (TEXT), которая умеет любое число выводить как текст по заданному шаблону:

ВПР и числа-как-текст Excel, Впр, Таблица, Полезное, На заметку, Длиннопост

Вариант 4. Числа-как-текст вперемешку с числами в обеих таблицах


Ну, и на десерт, давайте рассмотрим самый "веселый" случай, когда псевдочисла у нас перемешаны с нормальными числами и встречаются в артикулах обеих таблиц.

Звучит страшно, но решается легко - нужно просто скомбинировать первый и второй способы, вложив их в функцию ЕСЛИОШИБКА (IFERROR). Эта функция прокачает обе версии ВПР - "текстовую" и "числовую" - и выдаст ту, которая не приводит к ошибке #Н/Д:

ВПР и числа-как-текст Excel, Впр, Таблица, Полезное, На заметку, Длиннопост

Вот и всё - и никаких больше ошибок :)

Источник

Показать полностью 4
166

Суммирование в Excel сложение, мастер функций, автосумма, горячие клавиши

Суммирование в Excel  сложение, мастер функций, автосумма, горячие клавиши Excel, Отдел кадров, Бухгалтерия, Аналитика, Офис, Продуктивность, Таблица, Видео, Длиннопост

Суммирование, пожалуй, самая простая и распространенная операция в повседневной офисной рутине. Как суммировать быстро, почему не работают формулы, ответы узнаете в этом посте.


Сумму чисел можно найти двумя путями:

1. Сложением ячеек или констант,через знак "+" в формуле;

2. Используя встроенную функцию СУММ.


Функция СУММ(SUM) – математическая функция Microsoft Excel, позволяет складывать отдельные значения, диапазоны ячеек, ссылки на ячейки или данные всех этих трех видов.


Имеет вид:

=СУММ(число1;[число2];…), где:


Число1 (Обязательный аргумент), первое число для сложения. Может быть число 4 (константа), ссылка на ячейку, например, G6, или диапазон ячеек, например, A2:A10.

Число2 – 255 (Необязательный аргумент ), второе число для сложения. Можно указать до 255 чисел.


Функцию можно вызвать:


1. Выберите в строке меню Главная ► Редактирование ► Автосумма:

Суммирование в Excel  сложение, мастер функций, автосумма, горячие клавиши Excel, Отдел кадров, Бухгалтерия, Аналитика, Офис, Продуктивность, Таблица, Видео, Длиннопост

2. Строка меню Функции ► Библиотека функций ► Автосумма или в разделе Математические:

Суммирование в Excel  сложение, мастер функций, автосумма, горячие клавиши Excel, Отдел кадров, Бухгалтерия, Аналитика, Офис, Продуктивность, Таблица, Видео, Длиннопост

3. С помощью мастера функций, нажав на иконку в строке формул:

Суммирование в Excel  сложение, мастер функций, автосумма, горячие клавиши Excel, Отдел кадров, Бухгалтерия, Аналитика, Офис, Продуктивность, Таблица, Видео, Длиннопост

Окно мастера функций:

Суммирование в Excel  сложение, мастер функций, автосумма, горячие клавиши Excel, Отдел кадров, Бухгалтерия, Аналитика, Офис, Продуктивность, Таблица, Видео, Длиннопост

или в строке меню Функции ► Библиотека функций ► Вставить функцию:

Суммирование в Excel  сложение, мастер функций, автосумма, горячие клавиши Excel, Отдел кадров, Бухгалтерия, Аналитика, Офис, Продуктивность, Таблица, Видео, Длиннопост

4. Самый быстрый способ, сочетание клавиш ALT+ =


☝ Функция СУММ(SUM) не работает!?!


Причиной может быть, не верный формат чисел при выгрузке данных (тестовый), либо наличие лишних символов в ячейках с числами (пробелы, скрытые символы).


Числа всегда выравнены в ячейках до форматирования справа, а текст слева, это поможет оценить проблему визуально.


Коллега переслал файл, в котором суммы при протяжке формул не меняются?

Проверьте стоит ли автоматический пересчет в файле, на строка меню Формулы ► Параметры вычислений ► Автоматически.


В этом видео собраны все возможные варианты суммирования, от самых не продуктивных, до быстрых и эффективных ⬇⬇⬇

Показать полностью 5 1
351

Поиск и удаление повторяющихся значений в Excel

Поиск и удаление повторяющихся значений в Excel Excel, Аналитика, Отдел кадров, Бухгалтерия, Офис, Таблица, Продуктивность, Ms Office, Видео, Длиннопост

Работая с данными, в программе Microsoft Excel, возможно вы сталкивались с ситуациями, когда нужно найти и удалить повторяющиеся данные в таблице.

Давайте разберемся, как это сделать быстро.


Инструмент Удаление дубликатов


1. Выделите ячейку таблицы, в которой необходимо удалить дубликаты.

2. Выберите на вкладке Данные ►Удалить дубликаты:

Поиск и удаление повторяющихся значений в Excel Excel, Аналитика, Отдел кадров, Бухгалтерия, Офис, Таблица, Продуктивность, Ms Office, Видео, Длиннопост

3. В окне, по умолчанию проставлена галка Мои данные содержат заголовки, уберите при необходимости. В разделе Колонны установите или снимите галки (поиск и удаление будет производиться только по выбранным столбцам), нажмите OK:

Поиск и удаление повторяющихся значений в Excel Excel, Аналитика, Отдел кадров, Бухгалтерия, Офис, Таблица, Продуктивность, Ms Office, Видео, Длиннопост

В результате список сократится до уникальных значений:

Поиск и удаление повторяющихся значений в Excel Excel, Аналитика, Отдел кадров, Бухгалтерия, Офис, Таблица, Продуктивность, Ms Office, Видео, Длиннопост

Удалять дубликаты можно только по столбцам, если необходимо удалить по строкам, то сначала удалите по столбцам, затем транспонируйте данные:


1. Скопируйте данные или CTRL+С

2. Вкладка меню Главная ► Вставить ► Специальная вставка ► Траспонировать или вызов окна CTRL+ALT+V


Для корректной работы инструмента с полями формата Дата убедитесь, чтобы все поля имели одинаковый формат даты, например 01.01.2020


Удаление дубликатов при помощи Расширенного фильтра


Операцию выше можно сделать при помощи инструмента Расширенный фильтр.

Актуально, если у вас версия Excel 2003, в которой еще нет инструмента Удалить дубликаты.


1. Выделите шапку таблицы или всю таблицу (CTRL+A), в которой необходимо найти дубликаты.

2. Выберите на закладке Данные ► в разделе Сортировка и фильтр Дополнительно:

Поиск и удаление повторяющихся значений в Excel Excel, Аналитика, Отдел кадров, Бухгалтерия, Офис, Таблица, Продуктивность, Ms Office, Видео, Длиннопост

3. В окне, выберите вариант обработки Скопировать результат в другое место.

4. В поле Поместить результат укажите ячейку, в которую фильтр выведет значения.

5. Поставьте галку Только уникальные записи:

Поиск и удаление повторяющихся значений в Excel Excel, Аналитика, Отдел кадров, Бухгалтерия, Офис, Таблица, Продуктивность, Ms Office, Видео, Длиннопост

В результате фильтр выведет список уникальных значений в выбранную ячейку, причем данные исходной таблицы не удалятся:

Поиск и удаление повторяющихся значений в Excel Excel, Аналитика, Отдел кадров, Бухгалтерия, Офис, Таблица, Продуктивность, Ms Office, Видео, Длиннопост

Вам необходимо выделить уникальные значения в исходной таблице?

Скройте повторяющиеся значения при помощи Расширенного фильтра:

Поиск и удаление повторяющихся значений в Excel Excel, Аналитика, Отдел кадров, Бухгалтерия, Офис, Таблица, Продуктивность, Ms Office, Видео, Длиннопост

Обратите внимание, строки с повторяющимися значениями не удалились, а просто скрыты.

Список уникальных значений, для дальнейшей работы можно выделить заливкой, цветом текста или добавить метку в дополнительном столбце:

Поиск и удаление повторяющихся значений в Excel Excel, Аналитика, Отдел кадров, Бухгалтерия, Офис, Таблица, Продуктивность, Ms Office, Видео, Длиннопост

Поиск дубликатов при помощи Сводной таблицы


1. Добавьте в вашу таблицу дополнительное поле для проверки:

Поиск и удаление повторяющихся значений в Excel Excel, Аналитика, Отдел кадров, Бухгалтерия, Офис, Таблица, Продуктивность, Ms Office, Видео, Длиннопост

2. Создайте Сводную таблицу, вкладка Вставка ► Сводная таблица.

Настройте поля:

Поиск и удаление повторяющихся значений в Excel Excel, Аналитика, Отдел кадров, Бухгалтерия, Офис, Таблица, Продуктивность, Ms Office, Видео, Длиннопост

3. Выберите вариант отображения отчета, на вкладке Конструктор ► Макет отчета ► Показать в табличной форме.

4. Уберите промежуточные итоги Конструктор ► Промежуточные итоги:

Поиск и удаление повторяющихся значений в Excel Excel, Аналитика, Отдел кадров, Бухгалтерия, Офис, Таблица, Продуктивность, Ms Office, Видео, Длиннопост

Выделение повторяющихся значений при помощи условного форматирования для Excel 2007+


1. Выделите таблицу, в которой необходимо найти повторяющиеся значения.

2. На вкладке Главная ► Условное форматирование ► Правила выделения ячеек ► Повторяющиеся значения:

Поиск и удаление повторяющихся значений в Excel Excel, Аналитика, Отдел кадров, Бухгалтерия, Офис, Таблица, Продуктивность, Ms Office, Видео, Длиннопост

3. В окне Повторяющиеся значения, при необходимости выберите формат выделения дубликатов:

Поиск и удаление повторяющихся значений в Excel Excel, Аналитика, Отдел кадров, Бухгалтерия, Офис, Таблица, Продуктивность, Ms Office, Видео, Длиннопост

Данные будут подсвечены:

Поиск и удаление повторяющихся значений в Excel Excel, Аналитика, Отдел кадров, Бухгалтерия, Офис, Таблица, Продуктивность, Ms Office, Видео, Длиннопост

Как удалить дубликаты и разбить текст по столбцам, смотрите видео ⬇⬇⬇

Показать полностью 13 1
131

Применение Временной шкалы и Срезов в Excel

Использование стандартных фильтров в Excel не всегда удобно и ограничено одной таблицей. Для увеличения продуктивности в Excel существуют удобные инструменты, такие как Временна шкала и Срез. Они позволяют быстро выбирать данные по заданным параметрам, в том числе для нескольких таблиц сразу.

Применение Временной шкалы и Срезов в Excel Excel, Аналитика, Бухгалтерия, Продуктивность, Ms Office, Офис, Таблица, Видео, Длиннопост

Срезы можно использовать для "Умных" и Сводных таблиц, Временную шкалу только для Сводных.


Сводная таблица является по сути конструктором используя который можно быстро собрать нужные показатели по заданным критериям. Такие таблицы удобно применять для построения различных отчетов. Подробнее о Сводных таблицах смотрите статью: Сводные таблицы в Excel: как создать?


Срез


Срез представляет собой фильтр, вынесенный в отдельный графический элемент. Добавить один или несколько Срезов, для "Умной" или Сводной таблицы, можно на вкладке Анализ ► Вставить срез:

Применение Временной шкалы и Срезов в Excel Excel, Аналитика, Бухгалтерия, Продуктивность, Ms Office, Офис, Таблица, Видео, Длиннопост

В появившемся окне выберите столбец или несколько столбцов по которым будем построен фильтр:

Применение Временной шкалы и Срезов в Excel Excel, Аналитика, Бухгалтерия, Продуктивность, Ms Office, Офис, Таблица, Видео, Длиннопост

Либо, на закладке Вставка ► Срез.


Внешний вид Срезов:

Применение Временной шкалы и Срезов в Excel Excel, Аналитика, Бухгалтерия, Продуктивность, Ms Office, Офис, Таблица, Видео, Длиннопост

Временная шкала


Временная шкала параметр динамического фильтра, позволяющий легко фильтровать данные по периоду времени на одном из четырех уровней годы, кварталы, месяцы или дни.

Чтобы добавить шкалу на лист, выберите на вкладке Анализ ► Вставить временную шкалу:

Применение Временной шкалы и Срезов в Excel Excel, Аналитика, Бухгалтерия, Продуктивность, Ms Office, Офис, Таблица, Видео, Длиннопост

Так же можно добавить через вкладку Вставка ► Временная шкала.


В открывшемся окне установите галку на против Дата ► ОK:

Применение Временной шкалы и Срезов в Excel Excel, Аналитика, Бухгалтерия, Продуктивность, Ms Office, Офис, Таблица, Видео, Длиннопост

Внешний вид Временной шкалы:

Применение Временной шкалы и Срезов в Excel Excel, Аналитика, Бухгалтерия, Продуктивность, Ms Office, Офис, Таблица, Видео, Длиннопост

Чтобы производить фильтрацию Временной шкалой:


1. Нажмите на стрелку рядом с отображаемым временным уровнем и выберите нужный вариант (год, квартал, месяц или день):

Применение Временной шкалы и Срезов в Excel Excel, Аналитика, Бухгалтерия, Продуктивность, Ms Office, Офис, Таблица, Видео, Длиннопост

2. Перетащите полосу прокрутки временной шкалы к периоду времени, который вы хотите выбрать;


3. В элементе управления отрезком времени нажмите левой кнопкой на плитку периода времени и зажав перетащите ее, будет выбран период.


Чтобы очистить Временную шкалу или Срез, нажмите на шкале в правом верхнем углу кнопку Очистить фильтр.


Как и Cрез для фильтрации данных, Временную шкалу можно добавить один раз и затем использовать в любой момент для изменения диапазона времени Сводной таблицы.


Настройка вида Временной шкалы и Среза


Временную шкалу или Срез можно переместить расположив в более удобном месте, изменить их размер или стиль.


Чтобы переместить фигуру, просто перетащите ее в нужное место на листе.


Чтобы изменить размер, нажмите на фигуру, затем выберите нужный размер, перетаскивая маркеры размера или задав его на вкладке Параметры.


Чтобы изменить стиль, нажмите на фигуру, отобразится меню Инструменты временной шкалы, выберите нужный стиль на вкладке Параметры.


Использование Временной шкалы и Срезов для нескольких Сводных таблиц


Если ваши Сводные таблицы имеют один источник данных, вы можете использовать одну Временную шкалу и несколько Срезов для фильтрации для нескольких таблица.


Щелкните на Временную шкалу или Срез, а затем выберите на вкладке Параметры ► Подключения к отчетам. В открывшемся окне выберите Сводные таблицы, которые вы хотите добавить:

Применение Временной шкалы и Срезов в Excel Excel, Аналитика, Бухгалтерия, Продуктивность, Ms Office, Офис, Таблица, Видео, Длиннопост

Для использования Временной шкалы для "Умной" таблицы преобразуйте её в Сводную, на вкладке Конструктор ► Сводная таблица или Вставка ► Сводная таблица. Это очень удобно и даёт больше вариантов для маневра.


Подробнее о Временной шкале и Срезах смотрите в видео ⬇⬇⬇

Показать полностью 8 1
243

"Умные" таблицы в Excel

"Умные" таблицы в Excel Excel, Аналитика, Бухгалтерия, Продуктивность, Ms Office, Офис, Таблица, Длиннопост

В Excel много инструментов, о которых большинство пользователей не подозревают или сильно недооценивают. Одним из таких являются Таблицы.


Разве данные в Excel имеющие структуру таблицы – это не таблица?
Отвечу вам: Нет.

То что вы считаете таблицей, представляет собой Рабочую область листа.


Таблица – это объект, имеющий свое название, внутреннюю структуру, свойства и преимущества по сравнению с обычным диапазоном ячеек.


Создание Таблицы


Для создания Таблицы встаньте на Рабочую область листа содержащую данные для создания таблицы и нажмите сочетание клавиш CTRL+T(L). В появившемся окне вы можете изменить диапазон выделения данных для построения таблицы, нажмите ОК.

"Умные" таблицы в Excel Excel, Аналитика, Бухгалтерия, Продуктивность, Ms Office, Офис, Таблица, Длиннопост

Так же для преобразования диапазона в Таблицу можно выделить выделите любую ячейку диапазона с данными, затем выбрать последовательно Вставка ►Таблицы ►Таблица.


Переименование Таблицы


В вашем файле планируется несколько Таблиц? Есть смысл присвоить для каждой Таблицы свое имя. Это облегчит их дальнейшее использование (например, при работе в Power Query или Power Pivot).


Для переименования установите курсор в любую ячейку Таблицы, в появившемся окне Конструктор в разделе Свойства введите новое имя в поле Имя таблицы:

"Умные" таблицы в Excel Excel, Аналитика, Бухгалтерия, Продуктивность, Ms Office, Офис, Таблица, Длиннопост

Свойства Таблицы


1. Заголовки таблицы берутся из первой строки исходного диапазона.

При прокрутке вниз названия столбцов Таблицы (шапки) заменяют названия столбцов листа, следовательно дополнительное закрепление столбцов не требуется:

"Умные" таблицы в Excel Excel, Аналитика, Бухгалтерия, Продуктивность, Ms Office, Офис, Таблица, Длиннопост

2. В таблицу по умолчанию добавляется фильтр, который можно убрать на вкладке Конструктор или сочетание CTRL+SHIFT+L:

"Умные" таблицы в Excel Excel, Аналитика, Бухгалтерия, Продуктивность, Ms Office, Офис, Таблица, Длиннопост

3. При введении формулы в одну ячейку, она сразу копируется на весь столбец, т.е. формулу не нужно протягивать в вручную.


4. При добавлении в таблицу новых столбцов и строк они автоматически включатся в Таблицу. При наличии формул они автоматически применяются для новых данных.


5. Добавить строку итогов (суммирование, среднее и др.) для столбцов Таблицы можно сочетанием клавиш CTRL+SHIFT+T:

"Умные" таблицы в Excel Excel, Аналитика, Бухгалтерия, Продуктивность, Ms Office, Офис, Таблица, Длиннопост

Настройка Таблицы


Изменить внешний вид Таблицы, вывести итоги, удалить дубликаты, создать Сводную таблицу, переименовать или удалить её можно на вкладке Конструктор.


Для использования Временной шкалы для Таблицы преобразуйте её в Сводную, на вкладке Конструктор ► Сводная таблица или Вставка ► Сводная таблица.


Преобразование Рабочей области в Таблицу является обязательным условием для использования возможностей Power Query и Power Pivot.

Показать полностью 5
268

Редизайнер таблиц в Excel

Не секрет, что большинство пользователей Excel, создавая таблицы на листах, думают в первую очередь о собственном комфорте и удобстве. Так рождаются на свет красивые, со сложными "шапками", пестрые и громоздкие таблицы, которые при этом совершенно нельзя ни отфильтровать, ни отсортировать, а про автоматический отчет сводной таблицей лучше и не думать вообще.


Рано или поздно пользователь такой таблицы приходит к мысли, что "пусть будет не так красиво, зато можно работать" и начинает упрощать дизайн своей таблицы, приводя его в соответствие с классическими рекомендациями:

- простая однострочная шапка, где у каждого столбца будет свое уникальное название (имя поля)

- одна строка - одна законченная операция (сделка, продажа, проводка, проект и т.д.)

- без объединенных ячеек

- без разрывов в виде пустых строк и столбцов


Но если сделать однострочную шапку из многоэтажной или разбить один столбец на несколько достаточно просто, то реконструирование таблицы может занять много времени (особенно при больших размерах ). Имеется ввиду следующая ситуация:

из такой таблицы

Редизайнер таблиц в Excel Excel, Макрос, Vba, Таблица, Полезное, На заметку, Длиннопост

сделать

Редизайнер таблиц в Excel Excel, Макрос, Vba, Таблица, Полезное, На заметку, Длиннопост

В терминах баз данных нижнюю таблицу обычно называют плоской (flat) - именно по таким таблицам лучше всего строить отчеты сводных таблиц (pivot tables) и проводить аналитику.


Преобразовать двумерную таблицу в плоскую можно при помощи простого макроса. Откройте редактор Visual Basic через вкладку Разработчик - Visual Basic (Developer - Visual Basic Editor) или сочетанием клавиш Alt+F11. Вставьте новый модуль (Insert - Module) и скопируйте туда текст этого макроса:

Sub Redesigner()

Dim i As Long

Dim hc As Integer, hr As Integer

Dim ns As Worksheet

hr = InputBox("Сколько строк с подписями сверху?")

hc = InputBox("Сколько столбцов с подписями слева?")

Application.ScreenUpdating = False

i = 1

Set inpdata = Selection

Set ns = Worksheets.Add

For r = (hr + 1) To inpdata.Rows.Count

For c = (hc + 1) To inpdata.Columns.Count

For j = 1 To hc

ns.Cells(i, j) = inpdata.Cells(r, j)

Next j

For k = 1 To hr

ns.Cells(i, j + k - 1) = inpdata.Cells(k, c)

Next k

ns.Cells(i, j + k - 1) = inpdata.Cells(r, c)

i = i + 1

Next c

Next r

End Sub

После этого можно закрыть редактор VBA и вернуться в Excel. Теперь можно выделить исходную таблицу (полностью, с шапкой и первым столбцом с месяцами) и запустить наш макрос через Разработчик - Макросы (Developer - Macros) или нажав сочетание Alt+F8.


Макрос вставит в книгу новый лист и создаст на нем новый, реконструированный вариант выделенной таблицы. С такой таблицей можно работать "по полной программе", применяя весь арсенал средств Excel для обработки и анализа больших списков.


Также есть второй вариант для работы с большими таблицами

Sub Redesigner()

Dim inpdata As Range, realdata As Range, ns As Worksheet

Dim i&, j&, k&, c&, r&, hc&, hr&

Dim out(), dataArr, hcArr, hrArr

hr = Val(InputBox("Сколько строк с подписями данных сверху?"))

hc = Val(InputBox("Сколько столбцов с подписями данных слева?"))

Set inpdata = Selection

If inpdata.Rows.Count <= hr Or inpdata.Columns.Count <= hc Then Exit Sub

Set realdata = inpdata.Offset(hr, hc).Resize(inpdata.Rows.Count - hr, inpdata.Columns.Count - hc)

dataArr = realdata.Value

If hr Then hrArr = inpdata.Offset(0, hc).Resize(hr, inpdata.Columns.Count - hc).Value

If hc Then hcArr = inpdata.Offset(hr, 0).Resize(inpdata.Rows.Count - hr, hc).Value

ReDim out(1 To Application.CountA(realdata), 1 To hr + hc + 1)

Set ns = Worksheets.Add

For i = 1 To UBound(dataArr, 1)

For j = 1 To UBound(dataArr, 2)

If Not IsEmpty(dataArr(i, j)) Then

k = k + 1

For c = 1 To hc: out(k, c) = hcArr(i, c): Next c

For r = 1 To hr: out(k, c + r - 1) = hrArr(r, j): Next r

out(k, c + r - 1) = dataArr(i, j)

End If

Next j, i

ns.Cells(2, 1).Resize(UBound(out, 1), UBound(out, 2)) = out

End Sub

Редизайн таблиц сэкономит кучу времени, нервов и сил, чтобы в оставшееся время почитать пикабу))

Взято отсюда

Показать полностью
1631

ТОП-30 горячих клавиш в Excel нужно знать каждому

Продуктивность работы всегда растет пропорционально полученным знаниям и обязательной практике.

Вы только начитаете осваивать Excel или уже опытный пользователь не важно, каждый может найти для себя что-то новое.

30 горячих клавиш, которые сберегут уйму вашего времени, кратно увеличат скорость работы, сделают ее приятнее и комфортнее ⬇⬇⬇ :

CTRL+N
– создать новую рабочую книгу;
CTRL+O – открыть существующую книгу;
CTRL+S – сохранить активную книгу;
F12 – вызвать диалоговое окно Сохранить, как;
CTRL+W – закрыть активную книгу;
ALT+TAB – переключение между открытыми приложениями;
CTRL+C – копирование выбранного элемента (-ов);
CTRL+X – вырезание выбранного элемента (-ов);
CTRL+V – вставка скопированного или вырезного ранее;
CTRL+ALT+V – окно Специальная вставка;
CTRL+HOME – возвращение к началу рабочего листа (ячейка A1);
CTRL+END – переход к последней заполненной ячейке текущего листа;
CTRL+SHIFT+ ⬅ ⬆ ⬇➡ – выделение данных на листе по стрелкам;
CTRL+A – выбор всех элементов в документе или окне;
CTRL+SHIFT+L – установить фильтр на таблицу;
CTRL+K – окно Вставка гипперсылки;
CTRL+1 – окно Формат ячеек;
CTRL+SHIFT+% – применить процентный формат к выбранному диапазону;
SHIFT+F2 – вставить примечание в ячейку, если его нет, редактировать примечание, если есть;
ALT+ENTER – новая строка в той же ячейке (перенос строк);
SHIFT+ (+)/(-) – добавление столбца(ов) / удаление столбца(ов);
CTRL+ (+)/(-) – добавление строк(и) / удаление строк(и);
CTRL+E – применить Мгновенное заполнение;
CTRL+Q – окно Быстрого анализа (анализируемый диапазон должен быть выделен);
CTRL+T(L) – окно Создание таблицы;
CTRL+F/H – окно (Найти)/(Заменить);
CTRL+P – окно Печать;
CTRL+Z – отмена последнего действия;
CTRL+Y – повтор последней команды или действия;
ESC – отмена текущего действия.


Лайк +100 к карме)

212

Надстройка для MS Excel (часть 2)

Всем привет!

В прошлом посте я представил на суд общественности свой open-source проект - надстройку для MS Excel, с набором полезных функций. Пост был встречен очень тепло, многие пикабушники оставили пожелания о добавлении новых функций, а несколько человек написали мне с предложениями подключиться к разработке. Спасибо @1041618 за редизайн - мы обзавелись новыми иконками в едином стиле и поддержкой серой и тёмной тем, а также учитываем в локализации язык пакета MS Office.

Надстройка для MS Excel (часть 2) Excel, Надстройка, Полезное, Длиннопост

Исходный код проекта и инструкции по установке и использованию опубликованы на GitHub под лицензией MIT (неограниченное право на использование, копирование, изменение).


В этом посте я хотел бы продолжить описание функций надстройки, уверен - многим они покажутся весьма полезными.

Транслитерация кириллицы в латинские буквы


Конвертирует содержимое текстовых ячеек, содержащих символы кириллицы, в латинские символы (по стандарту ICAO doc 9303), за идею спасибо @negotivko

Надстройка для MS Excel (часть 2) Excel, Надстройка, Полезное, Длиннопост

Подсветка дублей


Раскрашивает разными цветами группы одинаковых значений:

Надстройка для MS Excel (часть 2) Excel, Надстройка, Полезное, Длиннопост

«Размерживание» объединенных ячеек с их заполнением


При разбиении объединенных ячеек стандартной функцией Excel все ячейки области, кроме левой верхней, остаются пустыми. Но теперь можно заполнить их значением исходной ячейки:
Надстройка для MS Excel (часть 2) Excel, Надстройка, Полезное, Длиннопост

Экспорт таблицы в markdown


Markdown - это удобный язык разметки, используемый при форматировании текстов во многих системах: wiki (Confluence), GitHub, Gitlab, Reddit, Stack Exchange, OpenStreetMap и множество других. Функция копирования таблицы в markdown помещает в буфер обмена отформатированную таблицу с заголовками, и Вы легко можете вставить ее в свой документ:

Надстройка для MS Excel (часть 2) Excel, Надстройка, Полезное, Длиннопост

Проверка значений в выделенных ячейках (числа, даты, ИНН ЮЛ/ФЛ и т.д.)


Можно проверить, например, список ИНН организаций на корректность (по контрольным цифрам в номере):

Надстройка для MS Excel (часть 2) Excel, Надстройка, Полезное, Длиннопост

Кроме того, есть две функции по работе с XML-файлами. Они не относятся напрямую к функциональности Excel, но иногда в них возникает потребность:

Сформировать пример XML файла на основе XSD-схемы


Если у вас есть файл XSD, который содержит xml-схему, Вы можете сформировать образец XML-файла на основе этой схемы:

Надстройка для MS Excel (часть 2) Excel, Надстройка, Полезное, Длиннопост

К сожалению, сформировать документ, который бы полностью соответствовал всем описанным правилам, невозможно - некоторые ограничения определяются паттернами (например, регулярными выражениями). Тем не менее, это поможет получить наглядное представление о структуре XML-документа.


Проверить XML по XSD-схеме


Позволяет проверить имеющийся XML-документ на соответствие схеме, описанной в XSD-файле. Выберите оба файла, и при наличии ошибок все они будут выведены на лист Excel.

Установка надстройки


Для установки надстройки выберите последнюю по времени успешную сборку пайплайна NavfertyExcelAddIn - Publish и скачайте опубликованные файлы:

Надстройка для MS Excel (часть 2) Excel, Надстройка, Полезное, Длиннопост

Важный момент: при установке надстройки Excel "запоминает" путь к папке, из которой она была установлена, и в будущем установка обновлений будет возможна только из этой папки, в противном случае нужно будет воспользоваться "установкой и удалением программ" через Панель управления Windows. В настоящее время исследуется вопрос о публикации установочных файлов в сети для облегчения процесса установки и доставки обновлений.


Для установки надстройки нужно запустить файл .vsto


Хотел бы предупредить об одном ограничении: при вызове функций надстройки (как COM-надстроек, так и VBA) в MS Excel очищается стек последних действий пользователя для отмены (Undo). Я работаю над тем, чтобы обойти это ограничение хотя бы для возможности отмены выполнения самой функции, но пока что будьте внимательны при запуске функций - отменить действие можно будет, только закрыв книгу без сохранения.


Более подробная инструкция по установке, а также инструкции по использованию и исходный код - на странице проекта в гитхабе:

https://github.com/navferty/NavfertyExcelAddIn


Спасибо всем, кто предлагал идеи по улучшению проекта в комментариях к прошлому посту. Если у Вас есть новые идеи - оставляйте комментарии!


Если Вы .NET-разработчик и хотите присоединиться к работе над проектом, пишите мне на почту (указана в профиле гитхаба), заводите issue и пулл-реквесты.

Если Вы только изучаете платформу .NET, и хотите поучаствовать - не стесняйтесь! Читайте исходный код, задавайте вопросы, если что-то непонятно - буду рад объяснить и поделиться знаниями =)

Показать полностью 6
857

Надстройка для MS Excel

Уважаемые пикабушники, хочу представить Вам надстройку для MS Excel, которую я развиваю в свободное время как пет-проект.

Надстройка для MS Excel Excel, Надстройка, Полезное, Длиннопост

Исходный код проекта и инструкции по установке и использованию опубликованы на GitHub под лицензией MIT (неограниченное право на использование, копирование, изменение).


В настоящее время проект развивается, и мне очень не хватает активных пользователей, которые будут давать обратную связь, сообщать об ошибках и просить новые функции, тем самым мотивируя на продолжение работы над проектом.

Ниже приведу краткое описание некоторых функций.

Конвертация чисел, форматированных как текст


Многие сталкиваются с проблемой при работе с выгрузкой из внешней системы: числа в ячейках отформатированы как текст, отчего не работают формулы, и невозможно даже вычислить сумму. Изобретено много обходных путей для решения этой проблемы (например, использование функции "текст по столбцам"), но все они сопряжены с дополнительными сложностями или выполнением лишних действий.


Ниже пример преобразования чисел при помощи надстройки. Столбец B для примера заполнен формулой "=A2+1", которая демонстрирует, является ли значение слева числом:

Надстройка для MS Excel Excel, Надстройка, Полезное, Длиннопост

Переключение регистра текста


В MS Word есть удобная функция, доступная по Shift+F3, которая переключает регистр выделенного текста (в последовательности "Sentence case" -> "lowercase" -> "UPPERCASE"). Иногда такой функции не хватает и в Excel, но надстройка восполняет этот пробел:

Надстройка для MS Excel Excel, Надстройка, Полезное, Длиннопост

Очистка текста от пробельных символов


Позволяет очистить текст от пробелов в начале и конце значения, а также от повторяющихся пробелов и переносов строки в середине текста:

Надстройка для MS Excel Excel, Надстройка, Полезное, Длиннопост

Интерактивный поиск ячеек, в которых произошла ошибка вычисления


Показывает список всех ячеек с ошибкой (например, "#Н/Д"), и позволяет быстро перемещаться к выбранной ячейке:

Надстройка для MS Excel Excel, Надстройка, Полезное, Длиннопост

И другие функции:


- Подсветка дублей (разными цветами группы одинаковых значений)

- «Размерживание» объединенных ячеек с их заполнением

- Снятие пароля с защищённой книги и листов

- Экспорт таблицы в markdown

- Проверка значений в выделенном диапазоне ячеек (числа, даты, корректный ИНН ЮЛ/ФЛ и т.д.)


Также есть функции по работе с XML, не относящиеся напрямую к Excel, но в которых иногда возникает потребность, а инструмента, который бы свободно распространялся и вызывал доверие, у меня сходу найти не получилось:


- Сформировать пример XML файла на основе XSD-схемы

- Проверить XML по XSD-схеме


Установка надстройки


Для автоматической сборки установочных файлов настроена сборка в Azure.

Выберите последнюю по времени успешную сборку пайплайна NavfertyExcelAddIn - Publish и скачайте опубликованные файлы:

Надстройка для MS Excel Excel, Надстройка, Полезное, Длиннопост

Важный момент: при установке надстройки Excel "запоминает" путь к папке, из которой она была установлена, и в будущем установка обновлений будет возможна только из этой папки, в противном случае нужно будет воспользоваться "установкой и удалением программ" через Панель управления Windows.


Для установки надстройки нужно запустить файл .vsto. Разумеется, установка возможно только при наличии установленного MS Excel =)


Если всё сделано правильно, то Вы увидите новую вкладку при следующем запуске Excel:

Надстройка для MS Excel Excel, Надстройка, Полезное, Длиннопост

Если Вы .NET-разработчик и хотите присоединиться к работе над проектом, пишите мне на почту (указана в профиле гитхаба), заводите issue и пулл-реквесты.

Если Вы только изучаете платформу .NET, и хотите поучаствовать - не стесняйтесь! Читайте исходный код, задавайте вопросы, если что-то непонятно - буду рад объяснить и поделиться знаниями =)

Еще раз ссылка на проект (там же инструкции по использованию и установке):

https://github.com/navferty/NavfertyExcelAddIn

Показать полностью 6
129

Как подружить кошек: разоблачаем мифы и даём советы

Как подружить кошек: разоблачаем мифы и даём советы Приют муркоша, Приют для животных, Кот, Совет, Полезное, Интересное, Лайфхак, Длиннопост

Что может быть лучше кошки? Только две кошки. Однако у желающих завести второе животное часто возникают вопросы, смогут ли кошки ужиться в одном пространстве, и как им в этом помочь.


РАЗОБЛАЧЕНИЕ МИФОВ


Миф №1. Кошки – закоренелые одиночки и не любят соседей.

Это утверждение верно для диких предков домашних кошек и некоторых других кошачьих. Домашним же кошкам делить нечего, и серьёзных конфликтов возникать не должно.


Миф №2. Животные должны быть разнополыми.

Разнополых нестерилизованных животных нельзя держать в одном доме. А при условии кастрации, половые различия никак не влияют на установление хороших отношений.


Миф №3. К взрослой кошке нужно брать маленького котёнка.

Для не кормящей в данный момент кошки появление котёнка равнозначно появлению взрослого животного. Разумеется, их можно подружить, но этот процесс будет проходить аналогично ситуации, когда обе кошки будут взрослыми.


Миф №4. Взрослых животных невозможно подружить.

Сформировавшийся характер взрослых животных является большим плюсом, потому что, зная характер своей кошки, вы можете выбрать ей действительно подходящего компаньона.


Миф №5. Если кошки не сдружились - одну из них нужно отдать.

Нужно лишь подробнее ознакомиться с тактикой знакомства и дальнейшего укрепления отношений, а не избавляться от питомца.


Миф №6. Достаточно свести кошек в одном пространстве, а они уже сами выяснят отношения. Такой «метод» зачастую приводит к отчуждению и непримиримой вражде. Ниже приведём несколько советов, которые помогут этого избежать.


ПОЛЕЗНЫЕ СОВЕТЫ ДЛЯ ЗНАКОМСТВА И СОВМЕСТНОГО ПРОЖИВАНИЯ КОШЕК:


Совет №1: Поместите новую кошку в отдельную комнату вместе с её домиком, мисками с водой и кормом, лотком.


Совет №2: Используйте силу запахов: поочередно погладьте кошек одной тряпочкой/вычешите щёткой, на территорию кошки-хозяйки положите вещь, пахнущую новичком.


Совет №3: Кормите кошек одновременно по разные стороны двери. Так присутствие друг друга будет у них ассоциироваться с приятными вещами.


Совет №4: Подстригите когти обеим кошкам, чтобы они не могли поранить друг друга.


Совет №5: Через несколько дней-неделю позвольте кошкам познакомиться поближе. Если дошло до агрессии, нужно снова разделить кошек и повторить цикл заново. Если кошки отнеслись друг к другу спокойно, то можно перейти к этапу совместного проживания в общем пространстве.


Совет №6: Совместное кормление кошек в одном месте, при котором с каждым днём вы будете сокращать расстояние между мисками.


Совет №7: Совместные игры повышают уверенность и укрепляют командный дух.


Совет №8: Гладьте кошек, стимулируя их сокращать дистанцию с помощью ласки.


Совет №9: Уделяйте внимание обеим кошкам, но особое предпочтение отдавайте кошке-хозяйке. Если у неё не будет поводов для ревности, то и к новичку она отнесётся спокойнее.


Совет №10: Обеспечьте обеих кошек личными укромными местами (лежанки, домики) и достаточной площадью во избежание конфликтов.


Совет №11: Используйте лакомство для подкрепления нужного поведения, а также кошачью мяту или спрей Феливей, чтобы создать благоприятную атмосферу и успокоить кошек.


Если Вы хотите завести второго пушистого друга, или у вас пока нет кошки, а вы хотите взять сразу двух, но вас мучают опасения, смогут ли два зверя поладить, перечитайте наши советы и смело приезжайте в наш приют за новыми друзьями, которые обязательно ответят вам безграничной любовью и благодарностью.

Показать полностью
593

Отслеживание входа пользователей в книгу Excel

Как понятно из заголовка, мы сделаем так, чтобы открытие рабочего файла на общем сетевом диске не осталось бесследным. Макрос будет фиксировать на отдельном (скрытом) листе имя пользователя, открывшего файл, а также дату-время открытия и закрытия файла.


Этап 1. Создаем "Лог"

Добавим в нашу книгу новый лист, куда будет записываться информация о всех пользователях и назовем его, например, Лог. На нем создадим простую шапку будущего журнала учета посетителей:

Отслеживание входа пользователей в книгу Excel Excel, Vba, Макрос, Полезное, Контроль, На заметку, Длиннопост, Системное администрирование

Этап 2. Макросы фиксации входа-выхода

Теперь добавим макросы для записи на лист Лог даты-времени и имен пользователей при открытии и закрытии книги. Для этого нужно открыть редактор Visual Basic с помощью сочетания Alt+F11 или с помощью кнопки Visual Basic на вкладке Разработчик (Developer) и найти в левом верхнем углу панель Project (если она не отображается, то включить ее можно сочетанием клавиш Ctrl+R):

Отслеживание входа пользователей в книгу Excel Excel, Vba, Макрос, Полезное, Контроль, На заметку, Длиннопост, Системное администрирование

Двойным щелчком откройте модуль ЭтаКнига (ThisWorkbook) и вставьте туда пару наших макросов для обработки событий открытия и закрытия книги:

Private Sub Workbook_BeforeClose(Cancel As Boolean)

'ищем последнюю занятую строчку в логах

lastrow = Worksheets("Лог").Range("A60000").End(xlUp).Row

'заносим дату-время выхода из файла

If lastrow>1 Then Worksheets("Лог").Cells(lastrow, 3) = Now

'сохраняемся перед выходом

ActiveWorkbook.Save

End Sub

Private Sub Workbook_Open()

'ищем последнюю занятую строчку в логах

lastrow = Worksheets("Лог").Range("A60000").End(xlUp).Row

'заносим имя пользователя и дату-время входа в файл

Worksheets("Лог").Cells(lastrow + 1, 1) = Environ("USERNAME")

Worksheets("Лог").Cells(lastrow + 1, 2) = Now

End Sub

Попробуйте открыть-закрыть этот файл пару раз и убедитесь, что на лист Лог попадает ваше имя пользователя (логин входа в Windows) и дата-время:

Отслеживание входа пользователей в книгу Excel Excel, Vba, Макрос, Полезное, Контроль, На заметку, Длиннопост, Системное администрирование

Этап 3. Улучшаем надежность

Можно было бы скрыть лист Лог и на этом остановиться, но есть одно "но": если у пользователя, который открывает нашу книгу, макросы разрешены по умолчанию либо он сам их разрешает, нажав в окне предупреждения на кнопку Включить содержимое, то все в порядке:

Отслеживание входа пользователей в книгу Excel Excel, Vba, Макрос, Полезное, Контроль, На заметку, Длиннопост, Системное администрирование

Но что если пользователь не разрешит выполнение макросов или они отключены у него по умолчанию? Тогда наши макросы отслеживания выполняться не будут и фиксации имени и даты не произойдет :( Как же заставить пользователя разрешить использование макросов?

Чтобы обойти эту проблемку воспользуемся небольшой тактической хитростью. Добавьте в нашу книгу еще один чистый лист, назовите его Предупреждение и вставьте на него следующий текст:

Отслеживание входа пользователей в книгу Excel Excel, Vba, Макрос, Полезное, Контроль, На заметку, Длиннопост, Системное администрирование

Суть в том, чтобы по умолчанию скрыть в книге все листы кроме этого, а рабочие листы с данными отображать с помощью специального макроса. Если пользователь не разрешил выполнение макросов, то он увидит в книге только один лист с предупреждением. Если же макросы разрешены, то наш макрос обработки события открытия книги скроет лист с предупреждением и отобразит листы с данными. Чтобы пользователь сам не отобразил их - используем суперскрытие вместо обычного скрытия листов (параметр xlSheetVeryHidden вместо обычного False).

Чтобы реализовать все описанное, слегка изменим наши процедуры в модуле ЭтаКнига (ThisWorkbook)

Private Sub Workbook_BeforeClose(Cancel As Boolean)

'ищем последнюю занятую строчку в логах

lastrow = Worksheets("Лог").Range("A60000").End(xlUp).Row

'заносим дату-время выхода из файла

If lastrow > 1 Then Worksheets("Лог").Cells(lastrow, 3) = Now

'скрываем все листы, кроме листа ПРЕДУПРЕЖДЕНИЕ

Worksheets("Предупреждение").Visible = True

For Each sh In ActiveWorkbook.Worksheets

If sh.Name = "Предупреждение" Then

sh.Visible = True

Else

sh.Visible = xlSheetVeryHidden

End If

Next sh

'сохраняемся перед выходом

ActiveWorkbook.Save

End Sub


Private Sub Workbook_Open()

'ищем последнюю занятую строчку в логах

lastrow = Worksheets("Лог").Range("A60000").End(xlUp).Row

'заносим имя пользователя и дату-время входа в файл

Worksheets("Лог").Cells(lastrow + 1, 1) = Environ("USERNAME")

Worksheets("Лог").Cells(lastrow + 1, 2) = Now

'отображаем все листы

For Each sh In ActiveWorkbook.Worksheets

sh.Visible = True

Next sh

'скрываем листы ПРЕДУПРЕЖДЕНИЕ и ЛОГ

Worksheets("Предупреждение").Visible = xlSheetVeryHidden

Worksheets("Лог").Visible = xlSheetVeryHidden

End Sub

Чтобы просмотреть скрытый Лог откройте редактор VisualBasic (Alt+F11), выделите лист на панели Project и измените его видимость на панели Properties, используя свойство Visible:

Отслеживание входа пользователей в книгу Excel Excel, Vba, Макрос, Полезное, Контроль, На заметку, Длиннопост, Системное администрирование

Если пользователи настолько продвинутые, что знают про суперскрытые листы и могут их отобразить через редактор Visual Basic или нарушить работу наших макросов, то можно дополнительно поставить пароль на просмотр и изменение макросов. Для этого щелкните правой кнопкой мыши по имени файла в панели Project (строка VBAProject (blackbox.xls)), выберите команду VBA Project Properties и включите флажок Lock project for viewing и задайте пароль на вкладке Protection:

Отслеживание входа пользователей в книгу Excel Excel, Vba, Макрос, Полезное, Контроль, На заметку, Длиннопост, Системное администрирование

Теперь точно никто не уйдет безнаказанным.


Интересные поправки в макрос из комментария источника:

Вместо поиска последней занятой строки в таких случаях я обычно вставляю новую строку сразу после "шапки". Все предыдущие строки сдвигаются вниз, конечно. В результате немного упрощается код, сортировка получается обратная, "новые сверху", что позволяет быстрее просматривать последние записи, не прокручивая лист. При открытии - вставляется строка, её номер всегда будет 2. При закрытии файла в строку 2 добавляется время. Переполнение этого стека маловероятно, но и проверку такого переполнения проводить не нужно, просто отрезать строки ниже запланированного количества записей, без проверки.

Private Sub Workbook_Open()

Worksheets("Реестр изменений").Rows("2:2").Insert Shift:=xlDown 'вставляем между строками 1 и 2 новую строку

Worksheets("Реестр изменений").Rows("501:501").Delete Shift:=xlUp 'удаляем строку 501 (реестр на 500 строк)

Worksheets("Реестр изменений").Cells(2, 1) = Environ("USERNAME") 'запись в первую ячейку второй строки

Worksheets("Реестр изменений").Cells(2, 2) = Now 'запись во вторую ячейку второй строки

Показать полностью 5
159

Макрос для выделения дубликатов разными цветами

Как известно, чтобы выделить дубликаты цветом в Excel можно воспользоваться специальной опцией в «условном форматировании».

Достаточно выделить диапазон, задать цвет заливки, - и все повторяющиеся (или, наоборот, уникальные) значения будут выделены.

Но иногда требуется, чтобы различные повторяющиеся значения были выделены РАЗНЫМИ ЦВЕТАМИ.

В этом случае, без макросов не обойтись. Нажимаем сочетание клавиш Alt+F11 или кнопку Visual Basic на вкладке Разработчик (Developer), вставляем новый пустой модуль через меню Insert - Module и копируем туда код этого макроса:

Sub ВыделитьДубликатыРазнымиЦветами()

On Error Resume Next

' массив цветов, используемых для заливки ячеек-дубликатов

Colors = Array(12900829, 15849925, 14408946, 14610923, 15986394, 14281213, 14277081, _

9944516, 14994616, 12040422, 12379352, 15921906, 14336204, 15261367, 14281213)

Dim coll As New Collection, dupes As New Collection, _

cols As New Collection, ra As Range, cell As Range, n&

Err.Clear: Set ra = Intersect(Selection, ActiveSheet.UsedRange)

If Err Then Exit Sub

ra.Interior.ColorIndex = xlColorIndexNone: Application.ScreenUpdating = False

For Each cell In ra.Cells ' запонимаем значение дубликатов в коллекции dupes

Err.Clear: If Len(Trim(cell)) Then coll.Add CStr(cell.Value), CStr(cell.Value)

If Err Then dupes.Add CStr(cell.Value), CStr(cell.Value)

Next cell

For i& = 1 To dupes.Count ' заполняем коллекцию cols цветами для разных дубликатов

n = n Mod (UBound(Colors) + 1): cols.Add Colors(n), dupes(i): n = n + 1

Next

For Each cell In ra.Cells ' окрашиваем ячейки, если для её значения назначен цвет

cell.Interior.color = cols(CStr(cell.Value))

Next cell

Application.ScreenUpdating = True

End Sub

Теперь можно выделить любой диапазон с данными на листе и запустить макрос с помощью сочетания клавиш Alt+F8 или через кнопку Макросы (Macros) на вкладке Разработчик (Developer).

Макрос для выделения дубликатов разными цветами Excel, Макрос, Vba, Полезное, На заметку

Плюсом этого макроса является то, что он не виснет при выделении всего листа (или столбца) целиком и не вылетает с ошибкой, если найдено более 55 дубликатов. Макрос взят здесь

Показать полностью 1
619

Сравнение скорости работы функции ВПР

Сравнение проведено Николаем Павловым на таблице в 500.000 и 600 строк. Тестируемые функции:

1. ВПР

2. ВПР с выделением столбцов целиком

3. ИНДЕКС и ПОИСКПОЗ

4. СУММЕСЛИ

5. СУММПРОИЗВ

6. ПРОСМОТР

7. Новая функция ПРОСМОТРХ

8. Запрос Power Query

- Итоговая таблица и выводы

Сравнение скорости работы функции ВПР Excel, Впр, Таблица, Полезное, На заметку, Длиннопост

Это книга Excel с одним листом, где расположены две таблицы: отгрузки (500 000 строк) и прайс-лист (600 строк).

Задача - подставить цены из прайс-листа в таблицу отгрузок. Для каждого способа будем вводить формулу в ячейку С2 и копировать вниз на весь столбец, замеряя время, которое потребуется Excel, чтобы просчитать весь столбец из полумиллиона ячеек. Полученные значения, безусловно, зависят от множества факторов (поколение процессора, объем оперативной памяти, текущая загрузка системы, версия Office и т.д.), но нам важны не конкретные цифры, а, скорее, их сравнение друг с другом. Важно понимать прожорливость каждого способа и их ограничения.


Способ 1. ВПР

Сравнение скорости работы функции ВПР Excel, Впр, Таблица, Полезное, На заметку, Длиннопост

Здесь участвуют следующие аргументы:

B2 - искомое значение, т.е. название товара, который мы хотим найти в прайс-листе

$G$2:$H$600 - закреплённая знаками доллара (чтобы не сползала при копировании формулы вниз) абсолютная ссылка на прайс

2 - номер столбца в прайс-листе, откуда мы хотим взять цену

0 или ЛОЖЬ - переключение в режим поиска точного соответствия, когда любое некорректное название товара (например, ФОНЕРА) в столбце "B" в таблице отгрузок приведёт к появлению ошибки #Н/Д как результата работы функции.

Время вычисления = 4,3 сек.

Способ 2. ВПР с выделением столбцов целиком

Многие пользователи, применяя ВПР, во втором аргументе этой функции, где нужно задать поисковую таблицу (прайс), выделяют не ограниченный диапазон ($G$2:$H$600), а сразу столбцы G:H целиком. Это проще, быстрее, позволяет не думать про F4 и то, что завтра прайс-лист может быть на несколько строк больше. Формула в этом случае выглядит тоже компактнее:

Сравнение скорости работы функции ВПР Excel, Впр, Таблица, Полезное, На заметку, Длиннопост

В старых версиях Excel такое выделение не сильно влияло на скорость вычислений, но сейчас результат получился в разы хуже предыдущего.

Время вычисления = 14,5 сек.

Способ 3. ИНДЕКС и ПОИСКПОЗ

Следующей после ВПР ступенью эволюции для многих пользователей Excel обычно является переход на использование связки функций ИНДЕКС (INDEX) и ПОИСКПОЗ (MATCH). Выглядит эта формула так:

Сравнение скорости работы функции ВПР Excel, Впр, Таблица, Полезное, На заметку, Длиннопост

Здесь:

Функция ИНДЕКС извлекает из заданного в первом аргументе диапазона (столбца $H$2:$H$600 с ценами в прайс-листе) содержимое ячейки с заданным номером. А номер этот, в свою очередь, определяется функцией ПОИСКПОЗ, у которой три аргумента:

- Что нужно найти - название товара из B2

- Где мы это ищем - столбец с названиями товаров в прайсе ($G$2:$G$600)

- Режим поиска: 0 - точный, 1 или -1 - приблизительный с округлением в меньшую или большую сторону, соответственно.


Формула выходит чуть сложнее, но, при этом имеет несколько ощутимых преимуществ перед классической ВПР, а именно:

- Не нужно отсчитывать номер столбца (как в третьем аргументе ВПР).

- Можно извлекать данные, которые находятся левее столбца, где происходит поиск.

По скорости, однако же, этот способ проигрывает ВПР почти в два раза:

Время вычисления = 7,8 сек.

Если же, вдобавок, полениться и выделять не ограниченные диапазоны, а столбцы целиком:

Сравнение скорости работы функции ВПР Excel, Впр, Таблица, Полезное, На заметку, Длиннопост

... то результат получается совсем печальный:

Время вычисления = 28,5 сек.

Способ 4. СУММЕСЛИ

Если нужно найти не текстовые, а именно числовые данные (как в нашем случае - цену), то вместо ВПР вполне можно использовать функцию СУММЕСЛИ (SUMIF). Изначально она задумывалась как инструмент для выборочного суммирования данных по условию (найди и сложи мне все продажи кабелей, например), но можно заставить её искать нужный нам товар и в прайс-листе. Если грузы в нём не повторяются, то суммировать будет не с чем и эта функция просто выведет искомое значение:

Сравнение скорости работы функции ВПР Excel, Впр, Таблица, Полезное, На заметку, Длиннопост

Здесь:

- Первый аргумент СУММЕСЛИ - это диапазон проверяемых ячеек, т.е. названия товаров в прайсе ($G$2:$G$600).

- Второй аргумент (B2) - что мы ищем.

- Третий аргумент - диапазон ячеек с ценами $H$2:$H$600, числа из которых мы хотим просуммировать, если в соседних ячейках проверяемого диапазона есть искомое значение.


Очевидным минусом такого подхода является то, что он работает только с числами. Также этот способ не удобен, если прайс-лист находится в отдельном файле - придется всё время держать его открытым, т.к. функция СУММЕСЛИ не умеет брать данные из закрытых книг, в отличие от ВПР, для которой это не проблема.


В плюсы же можно записать удобство при поиске сразу по нескольким столбцам - для этого идеально подходит более продвинутая версия этой функции - СУММЕСЛИМН (SUMIFS). Скорость вычислений же, при этом, весьма посредственная:

Время вычисления = 12,8 сек.

При выделении столбцов целиком, т.е. использовании формулы вида =СУММЕСЛИ(G:G; B2; H:H) всё ещё хуже:

Время вычисления = 41,7 сек.

Способ 5. СУММПРОИЗВ

Этот подход сейчас встречается не часто, но всё ещё достаточно регулярно. Обычно так любят извращаться пользователи старой школы, ещё хорошо помнящие те времена, когда в Excel было всего 255 столбцов и 56 цветов :)


Суть этого метода заключается в использовании функции СУММПРОИЗВ (SUMPRODUCT), изначально предназначенной для поэлементного перемножения нескольких диапазонов с последующим суммированием полученных произведений. В нашем случае, вместо одного из массивов будет выступать условие, а вторым будут цены:

Сравнение скорости работы функции ВПР Excel, Впр, Таблица, Полезное, На заметку, Длиннопост

Выражение ($G$2:$G$600=B2), по сути, проверяет каждое название груза в прайс-листе на предмет соответствия искомому значению (ФАНЕРА ПР). Результатом каждого сравнения будет логическое значение ИСТИНА (TRUE) или ЛОЖЬ (FALSE), что в Excel интерпретируется как 1 и 0, соответственно. Последующее умножение этих нулей и единиц на цены оставит в живых цену только того товара, который нам, в данном случае, и нужен.


Эта формула является, по сути, формулой массива, но не требует нажатия обычного для них сочетания клавиш Ctrl+Shift+Enter, т.к. функция СУММПРОИЗВ поддерживает массивы уже сама по себе. Возможно, по этой же причине (формулы массива всегда медленнее, чем обычные) такой скорость пересчёта такой формулы - не очень:

Время вычисления = 11,8 сек.

К плюсам же такого подхода можно отнести:

- Совместимость с любыми, самыми древними версиями Excel.

- Возможность задавать сложные условия (и несколько)

- Способность этой формулы работать с данными из закрытых файлов, если добавить перед ней двойное бинарное отрицание (два подряд знака "минус"). СУММЕСЛИМН таким похвастаться не может.


Способ 6. ПРОСМОТР

Ещё один относительно экзотический способ поиска и подстановки данных, наравне с ВПР - это использование функции ПРОСМОТР (LOOKUP). Только не перепутайте её с новой функцией ПРОСМОТРХ (XLOOKUP) - про неё мы поговорим дальше особо. Функция ПРОСМОТР существовала в Excel начиная с самых ранних версий и тоже вполне может решить нашу задачу:

Сравнение скорости работы функции ВПР Excel, Впр, Таблица, Полезное, На заметку, Длиннопост

Здесь:

- B2 - название груза, которое мы ищем

- $G$2:$G$600 - одномерный диапазон-вектор (столбец или строка), где мы ищем совпадение

- $H$2:$H$600 - такого же размера диапазон, откуда нужно вернуть найденный результат (цену)


На первый взгляд всё выглядит очень удобно и логично, но всю картину портят два неочевидных момента:

- Эта функция требует обязательной сортировки прайс-листа по возрастанию (алфавиту) и без этого не работает.

- Если в таблице отгрузок искомое значение будет написано с опечаткой (например, АГЕДОЛ вместо АГИДОЛ), то функция ПРОСМОТР выдаст не ошибку #Н/Д, а цену для ближайшего предыдущего товара:

Сравнение скорости работы функции ВПР Excel, Впр, Таблица, Полезное, На заметку, Длиннопост

При работе с неидеальными данными в реальном мире это гарантированно создаст проблемы, как вы понимаете.

Скорость же вычислений у функции ПРОСМОТР (LOOKUP) весьма приличная:

Время вычисления = 7,6 сек.

Способ 7. Новая функция ПРОСМОТРХ

Эта функция пришла с одним из недавних обновлений пока только пользователям Office 365 и пока отсутствует во всех остальных версиях (Excel 2010, 2013, 2016, 2019). По сравнению с классической ВПР у этой функции есть масса преимуществ (упрощенный синтаксис, возможность искать не только сверху-вниз, возможность сразу задать значение вместо #Н/Д и т.д.) Формула для решения нашей задачи будет выглядеть в этом случае так:

Сравнение скорости работы функции ВПР Excel, Впр, Таблица, Полезное, На заметку, Длиннопост

Если не брать в расчёт необязательные 4,5,6 аргументы, то синтаксис этой функции полностью совпадает с её предшественником - функцией ПРОСМОТР (LOOKUP). Скорость вычислений при тестировании на наши 500000 строк тоже оказалась аналогичной:

Время вычисления = 7,6 сек.

Почти в два раза медленнее, чем у ВПР, вместо которой Microsoft предлагает теперь использовать ПРОСМОТРХ. Жаль.

И, опять же, если полениться и выделить диапазоны в прайс-листе целыми столбцами:

Сравнение скорости работы функции ВПР Excel, Впр, Таблица, Полезное, На заметку, Длиннопост

... то скорость падает до совершенно неприличных уже значений:

Время вычисления = 28,3 сек.

А если на динамических массивах?

Прошлогоднее (осень 2019) обновление вычислительного движка Microsoft Excel добавило ему поддержку динамических массивов (Dynamic Arrays). Это принципиально новый подход к работе с данными, который можно использовать почти с любыми классическими функциями Excel. На примере ВПР это будет выглядеть так:

Сравнение скорости работы функции ВПР Excel, Впр, Таблица, Полезное, На заметку, Длиннопост

Разница с классическим вариантом в том, что первым аргументом ВПР здесь выступает не одно искомое значение (а формулу потом нужно копировать вниз на остальные строки), а сразу весь массив из полумиллиона грузов B2:B500000, цены для которых мы хотим найти. Формула при этом сама распространяется вниз, занимая требуемое количество ячеек.


Скорость пересчета в таком варианте меня, откровенно говоря, ошеломила - пауза между нажатием на Enter после ввода формулы и получением результатов почти отсутствовала.

Время вычисления = 1 сек.

Что интересно, и новая ПРОСМОТРХ, и старая ПРОСМОТР, и связка ИНДЕКС+ПОИСКПОЗ в таком режиме тоже были очень быстрыми - время вычислений не больше 1 секунды! Фантастика.


А вот олдскульные подходы на основе СУММПРОИЗВ и СУММЕСЛИ(МН) с динамическими массивами работать отказались :(


Что с умными таблицами?

Обрадовавшись фантастическим результатам, полученным на динамических массивах, я решил вдогон попробовать протестировать разницу в скорости при работе с обычными и "умными" таблицами. Я имею ввиду те самые "красивые таблицы", в которые вы можете преобразовать ваш диапазон с помощью команды Форматировать как таблицу на вкладке Главная (Home - Format as Table) или с помощью сочетания клавиш Ctrl+T.


Если предварительно превратить наши отгрузки и прайс в "умные" (по умолчанию они получат имена Таблица1 и Таблица2, соответственно), то формула с той же ВПР будет выглядеть как:

Сравнение скорости работы функции ВПР Excel, Впр, Таблица, Полезное, На заметку, Длиннопост

Здесь:

[@Груз] - ссылка на ячейку B2, означающая, в данном случае, что нужно взять значение из той же строки из столбца Груз текущей умной таблицы.

Таблица2 - ссылка на прайс-лист


Жирным плюсом такого подхода будет возможность легко добавлять данные в наши таблицы в будущем. При дописывании новых строк в отгрузки или к прайс-листу, наши "умные" таблицы будут растягиваться автоматически.


Скорость же, как выяснилось, тоже вырастает очень значительно и примерно равна скорости работы на динамических массивах:

Время вычисления = 1 сек.

У меня есть подозрение, что дело тут не в самих "умных" таблицах, а всё в том же обновлении вычислительного движка, т.к. на старых версиях Excel такого прироста в скорости на умных таблицах я не помню.


Бонус. Запрос Power Query

Замерять, так замерять! Давайте, для полноты картины, сравним наши перечисленные способы еще и с запросом Power Query, который тоже может решить нашу задачу. Кто-то скажет, что некорректно сравнивать пересчёт формул с механизмом обновления запроса, но мне, откровенно говоря, просто самому было интересно - кто быстрее?

Итак:

1. Превращаем обе наши таблицы в "умные" с помощью команды Форматировать как таблицу на вкладке Главная (Home - Format as Table) или с помощью сочетания клавиш Ctrl+T.

2. По очереди загружаем таблицы в Power Query с помощью команды Данные - Из таблицы / диапазона (Data - From Table/Range).

3. После загрузки в Power Query возвращаемся обратно в Excel, оставляя загруженные данные как подключение. Для этого в окне Power Query выбираем Главная - Закрыть и загрузить - Закрыть и загрузить в... - Только создать подключение (Home - Close&Load - Close&Load to... - Only create connection).

4. После того, как обе исходные таблицы будут загружены как подключения, создадим ещё один, третий запрос, который будет объединять их между собой, подставляя цены из прайса в отгрузки. Для этого на вкладке Данные выберем Получить данные / Создать запрос - Объединить запросы - Объединить (Get Data / New Query - Merge queries - Merge):

Сравнение скорости работы функции ВПР Excel, Впр, Таблица, Полезное, На заметку, Длиннопост

5. В открывшемся окне выберем исходные таблицы в выпадающих списках и выделим столбцы, по которым произойдет связывание:

Сравнение скорости работы функции ВПР Excel, Впр, Таблица, Полезное, На заметку, Длиннопост

После нажатия на ОК мы вернемся в окно Power Query, где увидим нашу таблицу отгрузок с добавленным к ней столбцом, где в каждой ячейке будет лежать фрагмент прайс-листа, соответствующий этому грузу. Развернем вложенные таблицы с помощью кнопки с двойными стрелками в шапке столбца, выбрав нужные нам данные (цены):

Сравнение скорости работы функции ВПР Excel, Впр, Таблица, Полезное, На заметку, Длиннопост

7. Останется выгрузить готовую таблицу обратно на лист с помощью уже знакомой команды Главная - Закрыть и загрузить (Home - Close&Load).


В отличие от формул, запросы Power Query не обновляются автоматически "на лету", а требуют щелчка правой кнопкой мыши по таблице (или запросу в правой панели) и выбору команды Обновить (Refresh). Также можно воспользоваться командой Обновить все (Refresh All) на вкладке Данные (Data).

Время обновления = 8,2 сек.

Итоговая таблица и выводы

Если вы честно дочитали до этого места, то какие-то выводы, наверное, уже сделали самостоятельно. Если же пропустили все детали и сразу перешли к итогам, то вот вам общая результирующая таблица по скорости всех методов:

Сравнение скорости работы функции ВПР Excel, Впр, Таблица, Полезное, На заметку, Длиннопост

Само-собой, у каждого из нас свои предпочтения, задачи и тараканы, но для себя я сформулировал выводы после этого тестирования так:

- ВПР всё ещё главная рабочая лошадка. После прошлогодних обновлений, ускоряющих ВПР, и осенних обновлений вычислительного движка, эта функция заиграла новыми красками и даёт жару по-полной.

- Не нужно лениться и выделять столбцы целиком - для всех способов без исключения это ухудшает результаты почти в 3 раза.

- Экзотические способы из прошлого типа СУММПРОИЗВ и СУММЕСЛИ - в топку. Они работают очень медленно и, вдобавок, не поддерживают динамические массивы.

- Динамические массивы и умные таблицы - это будущее.

Показать полностью 15
451

Ад Условного Форматирования в Excel

Приветствую вас мои дорогие подписчики, случилось непредвиденное, я стал контактным лицом своего коллеги контактировавшим с заражённым коронавирусом. После сдачи анализов у нас отрицательный результат, но его оставили в больнице, а меня отправили на домашний карантин. Теперь я временно на удалёнке.


Этот пост будет полезен для тех, кто использует условное форматирование и сталкивался с проблемой, когда удалив/переместив/добавив лишь одну строку сбивались правила УФ и появлялся ад. Для примера рассмотрим простую таблицу продаж:

Ад Условного Форматирования в Excel Excel, Таблица, Полезное, На заметку, Длиннопост

Для наглядности к таблице добавлены три правила условного форматирования:

Ад Условного Форматирования в Excel Excel, Таблица, Полезное, На заметку, Длиннопост

Первое правило делает синие гистограммы на столбце с суммами сделок.

Второе - подсвечивает желтым ячейки с именами менеджеров, которые не выполнили план, т.е. сумма их сделки меньше, чем зелёная ячейка H2.

Третье - делает нижнюю границу всей строки красной, если день меняется на следующий, т.е. дата в текущей строке не равна дате в следующей.


Предположим, что в процессе работы с таблицей нам потребовалось удалить любую строку из середины таблицы - ну, скажем, 10-ю. После выполнения безобидного удаления получим следующую картину:

Ад Условного Форматирования в Excel Excel, Таблица, Полезное, На заметку, Длиннопост

Красная линия между 2 и 3-м марта почему-то исчезла, а наше правило условного форматирования для разделения дат развалилось на два, причем одно из них с ошибкой #ССЫЛКА (т.е. не работает), а другое применяется к двум не смежным диапазонам A2:E8 и A10:E29 (не ко всей таблице!).

Шикарно, правда?!


Теперь представим, что Кирилл Краснов повторил свою сделку в Тольятти с магазином "Лента" (строка 25) и вам нужно внести эти данные в таблицу.

Как вы поступите?

Скорее всего, как любой нормальный человек, вы скопируете 25-ю строчку и вставите её в конец таблицы, верно?

Ад Условного Форматирования в Excel Excel, Таблица, Полезное, На заметку, Длиннопост

Ага, и получите в наследство вот такой бардак в правилах условного форматирования:

Ад Условного Форматирования в Excel Excel, Таблица, Полезное, На заметку, Длиннопост

Excel зачем-то продублировал те же правила для добавленной строки вместо того, чтобы просто растянуть диапазон в поле Применяется к (Applied to).


Ну, и на десерт вставим пустую строку в середину таблицы, между 4 и 5-й строчками:

Ад Условного Форматирования в Excel Excel, Таблица, Полезное, На заметку, Длиннопост

В списке правил условного форматирования это приведёт к появлению еще одного дубликата и раздроблению диапазона уже существующего 5-го правила на кучу фрагментов:

Ад Условного Форматирования в Excel Excel, Таблица, Полезное, На заметку, Длиннопост

Поработав пару часов с таблицей, можно закончить в ситуации, когда в из двух-трех исходных правил подсветки у вас получаются десятки и даже сотни их клонов с раздробленными диапазонами.


Причем весь этот быстро разрастающийся бардак очень скоро начнёт нещадно тормозить. Условное форматирование, само по себе, весьма ресурсоёмкая штука, т.к. Excel пересчитывает правила УФ гораздо чаще, чем те же формулы. А когда этих правил несколько десятков, то даже самый мощный ПК начнёт "тупить".


Как же всё исправить?

Способ 1. Вручную


Несмотря на кажущуюся запущенность, лечится это всё достаточно легко. Идея в том, что правила УФ "ломаются", обычно, для строк ниже первой. Первая же строка, в большинстве случаев, остается в порядке. Поэтому, чтобы всё починить, нам нужно просто очистить все правила в таблице и заново распространить их с первой строки на все остальные.


Для этого делаем следующее:

1. Выделяем в нашей таблице все строки кроме первой.

2. Удаляем все правила условного форматирования с выделенных ячеек через Главная - Условное форматирование - Удалить правила - Удалить правила из выделенных ячеек (Home - Conditional formatting - Clear rules - Clear rules from selected cells).

3. Выделяем первую строку, жмём кнопку-кисточку Формат по образцу на Главной (Home - Format Painter) и выделяем все остальные строки, копируя на них формат с первой.


Способ 2. Макросом


Если есть ощущение, что подобную процедуру вам придётся проделывать ещё не раз, то имеет смысл автоматизировать весь процесс с помощью макроса. Для этого:

1. Жмём сочетание клавиш Alt+F11 или на вкладке Разработчик кнопку Visual Basic (Developer - Visual Basic).

2. В открывшемся окне редактора макросов добавляем в нашу книгу новый модуль через меню Insert - Module.

3. Вставляем в созданный пустой модуль наш макрос:

Sub Fix_СF_Hell()

'создаем ссылки на диапазоны

Set rngAll = Selection

Set rngRow1 = Selection.Rows(1)

Set rngRow2 = Selection.Rows(2)

Set rngRowLast = Selection.Rows(rngAll.Rows.Count)

'удаляем все правила форматирования со всех строк кроме первой

Range(rngRow2, rngRowLast).FormatConditions.Delete

'копируем форматы с первой строки на все остальные

rngRow1.Copy

Range(rngRow1, rngRowLast).PasteSpecial Paste:=xlPasteFormats

Application.CutCopyMode = False

End Sub

Теперь можно будет просто выделить все строки в таблице (кроме шапки) и запустить макрос через Разрабочик - Макросы (Developer - Macros) или сочетанием клавиш Alt+F8.

И всё будет хорошо :)


P.S.

Не забудьте сохранить файл в формате с поддержкой макросов (xlsm).

Если нужно применять этот макрос в других файлах, то имеет смысл поместить его в Личную Книгу Макросов (Personal Macro Workbook).


Здоровья вам и вашим близким) материал взят отсюда

Показать полностью 5
193

Приблизительный поиск с помощью функции ВПР

Продолжаем раскрывать тему ВПР. В этот раз мы рассмотрим, как рассчитать доплаты к окладам сотрудников за выслугу лет или добавочные бонусы к зарплате.

Приблизительный поиск с помощью функции ВПР Excel, Впр, Таблица, Полезное, На заметку, Длиннопост

Если сотрудник проработал в компании меньше года – он не получает ничего. Если проработал от года до двух – получает 10% доплаты. Если от двух до трёх – 15%. Если от трёх до пяти – 25% и т.д. Максимальный бонус в 100% полагается тем, кто работает в компании больше 10 лет.


Выделяем первую ячейку (G2), куда будем вводить функцию ВПР, на вкладке «Формулы» нажимаем «Вставить функцию». В категории «Ссылки и массивы» (Lookup and Reference) находим ВПР (VLOOKUP) и жмём ОК. В появившемся окне вводим аргументы для функции:

Приблизительный поиск с помощью функции ВПР Excel, Впр, Таблица, Полезное, На заметку, Длиннопост

Искомое значение – стажа сотрудника, для которого мы определяем бонус.

Таблица – сама таблица бонусов. Не забываем нажать клавишу F4, чтобы сделать ссылку абсолютной.

Номер столбца – порядковый номер столбца в таблице бонусов, откуда мы берем размер доплаты (у нас всего два столбца и номер, очевидно, 2).

Интервальный просмотр – этот аргумент нужно задать равным 1, чтобы Excel производил поиск ближайшего наименьшего числа в первой колонке таблицы. Для точного поиска используется значение 0.


Вот ещё примеры использования функции ВПР:

Найти нужную скидку в таблице скидок, если размер скидки зависит от количества купленного товара или его стоимости (от 1 до 5 шт. – скидки нет, от 6 до 10 шт. – скидка уже 3%, свыше 11 шт. – скидка 5% и т.д.):

Приблизительный поиск с помощью функции ВПР Excel, Впр, Таблица, Полезное, На заметку, Длиннопост

Определить цену билета для пригородной зоны, если известно, до какой станции (на какое расстояние) едет пассажир:

Приблизительный поиск с помощью функции ВПР Excel, Впр, Таблица, Полезное, На заметку, Длиннопост

Определить, на какой стадии выполнения проекта мы на данный момент находимся:

Приблизительный поиск с помощью функции ВПР Excel, Впр, Таблица, Полезное, На заметку, Длиннопост
Показать полностью 4
168

Ответ на пост «Функция ВПР в Excel» 

Отличный гайд, но есть неточности.

- ИСТИНА - поиск приблизительного соответствия.

Это, строго говоря, неправда. Хоть то же самое написано на сайте office.microsoft.com, но это всё равно неправда.


Значение "ИСТИНА" параметра "Тип поиска" означает, что ВПР выполнит бинарный поиск и вернёт то, что найдёт. Если массив отсортирован по возрастанию, то это действительно будет ближайшее "снизу" значение (например, для числа 123 это будет число 122, а для текста "абв" это будет "абб", при условии, конечно, что эти значения есть в массиве поиска). Если же массив не отсортирован или отсортирован не по возрастанию - алгоритм бинарного поиска либо вернёт ошибку "#Н/Д", либо всё-таки что-то найдёт. Скорее всего, совсем не то, что вы искали (даже если искомое значение есть в массиве!). Дело в том, что, во-первых, ВПР не проверяет, отсортирован массив или нет, а во-вторых, он не проверят действительно ли найденное алгоритмом бинарного поиска значение совпадает с тем, что искалось.


Функция ВПР выдаёт ошибку #Н/Д если:
...
2. Включен приблизительный поиск (Интервальный просмотр=1), но Таблица, в которой происходит поиск, не отсортирована по возрастанию наименований.

Это тоже неправда. Как я писал выше, ВПР может что-то найти даже в несортированном массиве.


Зачем вообще нужен алгоритм бинарного поиска в ВПР?


Дело в том, что бинарный поиск работает намного, намного быстрее, чем "обычный" (O(log n) против O(n)). Особенно эта разница будет заметна на больших массивах данных. Но пользоваться им надо с осторожностью. Чтобы отсечь неправильно найденные значения (по причине проблем с сортировкой или из-за отсутствия искомого значения в массиве), можно воспользоваться приёмом под названием "двойной ВПР":


=ЕСЛИ(
ВПР(Искомое_значение; Первый_столбец_таблицы; 1; ИСТИНА) = Искомое_значение;  ВПР(Искомое_значение; Таблица_где_ищем; Номер_столбца_результатов; ИСТИНА);
НД()
)

Т.е. сначала мы проверяем, что ВПР находит то, что нужно, а только затем возвращаем найденное. Скорость работы больше обычного ВПР в 10-100 (sic!) раз. Такой разброс скорее всего связан с тем, насколько хорошо у Excel получается оптимизировать ваш "обычный" поиск.

1617

Функция ВПР в Excel

Многим знакома функция ВПР в Excel, которая ищет заданное значение в столбце указанной таблицы, и если находит, то выдаёт значение из требуемого столбца той же строки, где было совпадение.

=ВПР(Искомое_значение; Таблица_где_ищем; Номер_столбца_результатов; Тип_поиска)

Тема ВПР достаточно объёмная и интересная. Знание ВПР превращает обычного пользователя Excel в продвинутого)). Не сомневаюсь, что в сообществе имеется много знатоков этой функции, которые каждый день используют её на работе, думаю новичкам было бы интересно узнать о способах применения ВПР на практике.

Итак, начнём повышать уровень знаний в период самоизоляции))


Допустим, у нас имеются две таблицы – Заказы и прайс-лист:

Функция ВПР в Excel Excel, Таблица, Полезное, На заметку, Длиннопост

Нам необходимо подставить цены для каждого товара из прайс-листа в таблицу заказов. При больших размерах таблиц, выполнить это вручную достаточно сложно и муторно, не исключены автоматические ошибки.


Примеры использования ВПР:

- подставить из штатного расписания данные о сотруднике (адрес, оклад, телефон) по его ФИО;

- подставить из каталога продукции подробную информацию о товаре по его артикулу;

- подставить из реестра договоров по номеру договора все подробности его заключения (с кем заключен, реквизиты, сумму и т.д.);

- и так далее.


Выделяем первую ячейку (D3), куда будем вводить функцию ВПР, на вкладке «Формулы» нажимаем «Вставить функцию». В ка