Ответы 05/04/2018 (Excel Everyday)

Ответы 05/04/2018 (Excel Everyday)

tDots

Вопрос 1

Автофильтр как раз и представляет собой выпадающий список с уникальными значениями по столбцу. Как его включить - смотрите тут.


Вопрос 2

Для подсчета ячеек и значений в них используются функции СЧЁТ и СЧЁТЗ. Урок по ним был тут.


Вопрос 3

Используйте функцию СРЗНАЧЕСЛИМН. В отдельных ячейках укажите дату с которой считать и дату по которую считать. И задайте условие в функции. Про нее мы рассказывали тут. Как записать условие с датами - смотрите на нашем канале на YouTube (в примере функция СУММЕСЛИ, но суть работы с условиями одинаковая).


Вопрос 4-5

Способы импорта данных из Интернета мы показывали в этой статье. Что касается обновления, то его можно запускать макросом при изменении какой-то ячейки. На VBA обновление запускается, например, командой RefreshAll. Как привязать запуск к событию изменения ячейки - смотрите тут (вопрос 14)


Вопрос 6-7

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


Вопрос 8

Нужно будет добавить на диаграмму дополнительно 6 отрезков (по одному на вертикальную и горизонтальную ось для каждой точки). Для начала нужно рассчитать эти точки. На скриншоте пример для нелинейной функции y=x2. Для любой другой будет аналогично (только вместо =СТЕПЕНЬ(A3;2) нужно будет указать формулу, описывающую Вашу функцию).

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

Теперь построим основной график (если он еще не построен) и добавим на него новые ряды. Ряд для пересечения с вертикальной осью строится так: кликаем на диаграмме - выбираем "Конструктор" - "Выбрать данные" - "Добавить". Задаем имя ряда, указываем точки X (первая и вторая строка мини-блока на скриншоте), указываем точки Y (первая и третья строка мини-блока на скриншоте).

Аналогично строите отрезок для пересечения с горизонтальной осью. Повторяете 3 раза (по количеству точек). Получится следующее:

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


Вопрос 9

Первый вариант.

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

=СУММ(СУММ(ДВССЫЛ(B2:B10)))

где B2:B10 диапазон значений в графике. Формула массива вводится нажатием Ctrl+Shift+Enter.

Еще вариант. Вбивайте текст, как и раньше. Затем функцией СЧЁТЕСЛИ (урок по аналогичной функции - тут) посчитайте, сколько раз за месяц встретился такой текст. А уже это количество умножайте на нужное число. Получите сумму за месяц.


Вопрос 10

Нужно добавить небольшое условие проверки включения переключателя перед пересчетом. Просто замените в коде макроса строчку:

Activesheet.Calculate

на строчку

If Range("C3") = "Да" Then ActiveSheet.Calculate

где С3 - ячейка с переключателем "Да/Нет".


Вопрос 11

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

Sub OtherBook()
    Dim nWb As Workbook
    Set nWb = Application.Workbooks.Add
    ThisWorkbook.Activate
    Selection.Copy nWb.Worksheets(1).Cells(1, 1)
    nWb.Activate
End Sub





Вопрос 12

Весь наш канал посвящен этой теме. Следите за новыми уроками, листайте старые, читайте наши статьи и рубрику вопрос-ответ. Ну и следите за обновлениями канала на YouTube.


Вопрос 13

Нужно просто отключить сетку листа. Выберите вкладку "Вид" и снимите галочку с сетки.


Когда устанете от скучных формул, цифр и расчетов - окунитесь в атмосферу творчества на нашем канале с качественным и красивым артом



Вопрос 14

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


Вопрос 15

Решить данную проблему можно только с помощью VBA, других способов нет.


Вопрос 16

В вопросе 15 вот этого выпуска ответов давали похожее решение. Можно взять тот макрос за основу и слегка переделать. Если нужно конкретное готовое решение под Вашу задачу - обращайтесь. Готовы помочь в частном порядке.


Вопрос 17

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

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


Вопрос 18

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



Вопрос 19

Объединить очень просто. Первая формула у вас в ячейке F3. Значит нужно во второй везде вместо ячейки F3 поставить первую формулу (обязательно целиком, в скобках и без знака равно). Чтобы было проще, можно укоротить формулу. Конструкцию

=ЕСЛИ(B3-A3-12<0;0;B3-A3-12)

можно заменить на

=МАКС(0;B3-A3-12).

Конструкцию

=ЕСЛИ((F3*C3)*0,5%>=(C3*17%)*50%;(C3*17%)*50%;F3*C3*0,5%)

можно заменить на

=МИН((F3*C3)*0,5%;(C3*17%)*50%)

Ну а теперь заменим во второй формуле F3 на первую формулу. Итоговая объединенная формула такая:

=МИН(((МАКС(0;B3-A3-12))*C3)*0,5%;(C3*17%)*50%)


Вопрос 20

Это работает следующим образом. Когда в диапазоне есть скрытые или сгруппированные ячейки, то нажатие Ctrl+C копирует их. Если эти ячейки скрыты с помощью автофильтра, то они не копируются. Способ копирования по умолчанию не изменить никак.

Чтобы не копировать скрытое, нужно перед нажатием Ctrl+C выделять только видимые ячейки в диапазоне. Как копировать только видимые показывали на канале и на YouTube.


Вопрос 21

Формула примерно такая:

=И(ОСТАТ(ЗНАЧЕН(ЛЕВСИМВ(A1;ПОИСК("/";A1)-1));1)=0;ОСТАТ(ЗНАЧЕН(ПРАВСИМВ(A1;ДЛСТР(A1)-ПОИСК("/";A1)));1)=0)

Она проверит наличие символа "/", проверит, является ли целым числом значение слева от него и значение справа от него. Если введено не целое число, текст или отсутствует символ "/" - появится ошибка ввода.


Вопрос 22

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

В ячейку A20 вводите нужное число и будет рассчитан интервал повторений.


Вопрос 23

Если версия Excel позволяет, то наилучший способ интеграции Excel с внешними источниками данных (в том числе с другими книгами Excel) - Power Query. Современный и быстрый инструмент для подобных задач. Если нужна конкретная помощь - готовы помочь на коммерческой основе.


Вопрос 24

Нет, такую диаграмму штатными средствами Excel 2007 построить не получится. Подобный тип диаграмм появился только в Excel 2016 (называется диаграмма "Дерево"). Пожалуй, единственный вариант - создание макроса, который будет рисовать объекты-прямоугольники, либо объединять ячейки. Задача достаточно трудоемкая и проще перейти на новую версию Office. Но если нужно - готовы помочь в разработке.


Вопрос 25

Вы были на правильном пути, просто недокрутили формулу. Функцию ПОДСТАВИТЬ просто нужно применить 3 раза, каждый раз подкладывая в первый аргумент результат предыдущей итерации. Например:

=ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(E9;B9;"");C9;"");A9;"")

В результате получите то, что нужно в примере.



Поддержать наш проект и его дальнейшее развитие можно вот здесь.

Ваши вопросы по статье можете задавать через нашего бота обратной связи в Telegram: @ExEvFeedbackBot

С уважением, команда tDots.ru


Report Page