Форматирование отчета Excel с использованием макросов

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

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

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

Н.Б. Пользователь может пройти модуль несколько раз, поэтому он появится несколько раз.

Ссылка ниже - это электронная таблица с двумя листами, лист 1 - это необработанные данные, а лист 2 - это то, как я хотел бы, чтобы все выглядело.

https://www.dropbox.com/s/p1hipx17q3mf3dm/Learning-Report.xlsx

Любая помощь/идеи будут высоко оценены, так как я новичок во всем макросе в Excel.

Большое спасибо

Ян


person revolution14    schedule 15.08.2012    source источник
comment
Если вы посмотрите на часто задаваемые вопросы ‹stackoverflow.com/faq›, вы увидите, что это больше помогает, если вы застряли. Форум вопросов и ответов по сравнению с a мы создадим ваш код для вашего форума. Тем не менее, попробуйте это, используя средство записи макросов и прочитав операторы For Each Next и If End If с помощью VBA. Когда вы дойдете до того, что застрянете, опубликуйте код, который вы пытались разработать, и дайте нам знать, что вас гложет. Тогда мы сможем вмешаться и начать.   -  person Scott Holtzman    schedule 15.08.2012
comment
Привет Скотт, спасибо за вашу помощь, это не проблема, я сейчас пытаюсь работать над этим сам. Кто-нибудь знает, как я могу написать эквивалент «ВЫБРАТЬ результат с наивысшим баллом ИЗ результатов, ГДЕ user_id = «23093» И module_id = «GDQ1001» ЗАКАЗАТЬ по DESC с наивысшим баллом. В настоящее время я смотрю на Vlookup, но я не уверен, что это правильная формула.   -  person revolution14    schedule 15.08.2012
comment
vlookup может быть хорош в целом, но не для поиска максимального значения, поскольку vlookup — это поиск определенного значения по индексу. Вы можете попробовать формулу массива Max(If(. Справку по этому вопросу см. по этой ссылке: ‹support.microsoft.com/kb/275165  -  person Scott Holtzman    schedule 15.08.2012
comment
Возможна ли АДО? Это позволит вам использовать SQL для запроса данных — более подробная информация содержится в более раннем ответе на аналогичный вопрос stackoverflow.com/a/7863452/53614.   -  person barrowc    schedule 16.08.2012


Ответы (1)


Я отвечаю так же, как сформулирован вопрос, поэтому, пожалуйста, потерпите меня...

  1. Определить всех уникальных сотрудников (для строк)
  2. Определить все уникальные курсы (для столбцов)
  3. Найдите все попытки и вычислите a. Высший балл б. Статус
  4. Поместите данные на второй лист.

Посмотрите, был ли вопрос точен... ответ тоже будет по делу.

person Bharat Sinha    schedule 15.08.2012
comment
Извините, Бхарат, я думаю, я мог бы сформулировать это лучше. Кто-нибудь знает, как я могу написать эквивалент в формулах ВЫБЕРИТЕ результат с наивысшим баллом, ГДЕ user_id = '23093' И module_id = 'GDQ1001' ЗАКАЗАТЬ по наивысшему_оценке DESC Спасибо - person revolution14; 15.08.2012
comment
Это хороший вопрос. Один совет... попробуйте найти ВПР и посмотреть, решит ли это для вас. Разместите это как еще один вопрос и посмотрите, поможет ли кто-нибудь! - person Bharat Sinha; 15.08.2012