3

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

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

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

  • Я БЫ
  • заглавие
  • Описание
  • Статус
  • Заметки о прогрессе
  • Текущая ответственная сторона
  • Затронутый клиент
  • Дата начала
  • Срок оплаты
  • Вехи проекта (-ов) и дата (-и) этапа
  • Ссылка на документ (ы)

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

Мне нужен способ связать электронные таблицы со слайдами презентации. В идеале решение должно быть в состоянии:

  • Вытащите только столбцы, необходимые с каждого листа.
  • Извлекайте только незавершенные предметы из каждого листа.
  • Обновлять данные с исходных листов автоматически или по запросу с минимальными действиями пользователя.
    • (т.е.: Обновление по требованию должно занимать всего несколько кликов на листе или, что более предпочтительно, всего несколько кликов для всей презентации - и не требовать много повторяющихся копий / вставок / и т. д.)
  • При необходимости автоматически добавляйте / удаляйте слайды, чтобы приспособиться к размеру наборов данных.
  • Разрешить сохранение статической копии презентации по запросу.
  • Быть совместимым с Office 2010 и Office 2013.

Есть ли способ связать мои электронные таблицы с презентацией, который может удовлетворить все эти потребности?

2 ответа2

1

Если вам разрешено загрузить и установить стандартный (и бесплатный) продукт Microsoft "Power Query", вы можете это сделать. Более подробную информацию об использовании Power Query можно найти здесь. Он доступен с Office 2010 и выше. Он предоставляет вам множество инструментов для выбора и объединения данных из разных источников.

В вашем случае сделайте следующее:

  • Создать новую книгу Excel.
  • Используя Power Query, загрузите первый список действий на свой лист Excel.
  • Используйте "Добавить", чтобы добавить другие списки действий в результирующую таблицу. В конце у вас должен быть (динамически связанный) комбинированный список всех ваших списков действий.
  • Используя Power Query, вы можете удалять и изменять порядок столбцов, сортировать данные и устанавливать фильтры для столбцов. Я рекомендую вам делать выбор, сортировку и фильтрацию здесь, в Power Query, потому что, если вы делаете это в финальной таблице в Excel, вам нужно повторно применять все эти фильтры каждый раз, когда вы обновляете таблицу.
  • Сохраните книгу и закройте Excel.
  • Запустите Powerpoint, на вкладке "Вставка" на ленте выберите "Объект", выберите "Создать из файла" и выберите вновь созданную книгу Excel с комбинированными списками действий.

Если вам необходимо обновить данные, откройте презентацию Powerpoint и откройте объект Excel. Нажмите кнопку «Обновить», и ваши данные обновятся. Это всего лишь несколько кликов, чтобы обновить все списки действий (круто, правда ?!)

Это решение работает для Office 2010 и 2013.

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

  • Сохраните "основную" версию вашего Powerpoint со ссылкой на файл Excel (подсказка: сделайте этот файл доступным только для чтения).
  • Каждую неделю обновляйте данные несколькими щелчками мыши, как описано выше.
  • Скопируйте таблицу Excel (даже если она слишком велика для одного листа) и вставьте ее как рисунок (Вставить - Изображение или Вставить - Специальная вставка ... - Графический объект Microsoft Office).
  • Теперь вы можете продублировать весь слайд PowerPoint с изображением на нем и использовать инструменты обрезки (выберите изображение и выберите на вкладке "Лента" Рисунок - Формат - Обрезать), чтобы выбрать нужные элементы на каждом листе.
  • Вы можете уменьшить размер презентации PowerPoint, выбрав изображение и перейдя на ленту: Изображение - Сжать изображения и выбрав соответствующие настройки.
  • Наконец, лист с исходными данными Excel может быть удален из версии презентации на этой неделе.

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

0

Есть несколько шагов к вашему запросу, и я не могу ответить на все из них подробно, но я могу помочь вам с несколькими деталями. Это все еще будет в основном концепцией, хотя. Я болтун VBA, так что я собираюсь предложить. Было бы значительно проще, если бы вы могли получить доступ к PowerPoint 2003, потому что они удалили макро-рекордер, начиная с 2007 года. Если вы не можете сделать это, тогда будет несколько проб / ошибок / Google, чтобы сделать это. К счастью, большая часть структуры перенесена из Excel, но не уникальные элементы.

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

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

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

2) Извлекайте только незавершенные предметы из каждого листа.
Запишите чеки в код, который проверяет статус и, если он не равен "Закрыт" или какому-либо другому термину, который вы используете, продолжайте добавлять его к слайдам. В противном случае пропустите его и перейдите к следующей записи. Мои потребности настолько сложны, что я сделал несколько вспомогательных столбцов, чтобы выяснить, должна ли запись быть включена или нет, и VBA просто проверяет это.

3) Обновлять данные с исходных листов автоматически или по требованию, требуя минимальных действий пользователя
VBA в PowerPoint может открывать Excel и вызывать макрос в этом файле, чтобы вы могли сделать кнопку на слайде, чтобы запустить макрос обновления в Excel.

4) Автоматически добавлять / удалять слайды при необходимости, чтобы приспособить размер наборов данных
Я бы начал с удаления старых слайдов и добавления их только по мере необходимости. Вы можете сделать что-то в коде, который проверяет размер объекта таблицы в сравнении с размером слайда и, как только он становится слишком большим, добавьте слайд и создайте новый объект таблицы, чтобы начать работу.

5) быть совместимым с Office 2010 и Office 2013
Я не могу ничего обещать здесь, но большинство вещей в VBA обратно совместимы. Я видел, как старые макросы ломались, потому что какая-то ссылка была удалена или что-то в этом роде, но это произошло только один раз, и это был грязный зверь проекта.

6) Сохранение статической копии презентации вручную
Поскольку каждая копия является статической копией, независимой от исходного листа Excel, это так же просто, как Файл> Сохранить как

7) Автоматическое сохранение статической копии
Я не могу сказать, хотите ли вы сохранить Excel или PowerPoint автоматически, но это будет работать для обоих. Я использую стандартный модуль, который я написал, для создания резервных копий файлов, которые я разрабатываю, чтобы я всегда мог ссылаться на предыдущую версию. Мой написан для создания резервной копии, когда файл открывается. Он запускается только один раз в день или раз в секунду, в зависимости от того, как я это называю. Вы можете изменить его так, чтобы он работал максимум раз в месяц, просто изменив формат даты в имени файла.

Option Explicit

Function BackupThisFile(Optional AddTimestamp As Boolean = False)

    'Declarations
    Dim fPath As String
    Dim fName As String
    Dim fExt As String
    Dim iExt As Integer
    Const backupFolder As String = "Backups"

    'Get file path
    fPath = ThisWorkbook.path
    If Right(fPath, 1) <> Application.PathSeparator Then fPath = fPath & Application.PathSeparator

    'Add the backup folder name
    fPath = fPath & backupFolder
    If Right(fPath, 1) <> Application.PathSeparator Then fPath = fPath & Application.PathSeparator

    'Create the backup directory if it doesn't already exist
    On Error Resume Next
        MkDir fPath
    On Error GoTo 0

    'Get file name
    fName = ThisWorkbook.Name                   'Get file name with extension
    iExt = InStrRev(fName, ".")                 'Find the . separating name from extension
    fExt = Right(fName, Len(fName) - iExt + 1)  'Saves the extension
    fName = Left(fName, iExt - 1)               'Clips the extension

    'Compile path, file name, date stamp, and extension into one variable
    fPath = fPath & fName & " " & Format(Date, "yyyy-mm-dd")

    'Add timestamp if required
    If AddTimestamp Then fPath = fPath & " " & Format(Now, "hhmmss")

    'Add the file extension
    fPath = fPath & fExt

    'Save a copy if it doesn't already exist
    Dim fso: Set fso = CreateObject("Scripting.FileSystemObject")
    If Not fso.fileExists(fPath) Then ThisWorkbook.SaveCopyAs fPath

End Function

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .