Как транспонировать повторяющиеся группы в Excel? - PullRequest
0 голосов
/ 08 января 2019

У меня есть лист Excel со следующей структурой данных

+-------------+-------------------------------+--+
| title       | Dr.                           |  |
| first_name  | Adam                          |  |
| last_name   | Meyer                         |  |
| email       | adam.meyer@my-company.com     |  |
| phone       | +49 (0)931-32187-0            |  |
| fax         |                               |  |
| room        |                               |  |
| position    | Direktor                      |  |
| title       |                               |  |
| first_name  | Judith                        |  |
| last_name   | Schmidt                       |  |
| email       | judith.schmidt@my-company.com |  |
| phone       |  +49 (0)444-32131-1           |  |
| fax         |                               |  |
| room        |                               |  |
| position    |                               |  |
| title       |                               |  |
| first_name  | Claus                         |  |
| last_name   | Niemes                        |  |
| email       |  claus.niemes@my-company.com  |  |
| phone       |  +49 (0)444-32131-2           |  |
| fax         |                               |  |
| room        |                               |  |
| position    | Verkäufer                     |  |
| bio         | xxxxxxxxxx                    |  |
| title       | Dr.                           |  |
| first_name  | András                        |  |
| last_name   | Cloon                         |  |
| email       | andrás.cloon@my-company.de    |  |
| phone       | +49 (0)444-32131-1            |  |
+-------------+-------------------------------+--+

Не все 450 человек имеют значения для всех строк. Иногда отсутствует первая строка с заголовком, например.

Я хочу импортировать эти данные в базу данных mysql.

Мне нужен этот результат: enter image description here

Я не эксперт по Excel, поэтому я рад каждому совету о том, как упростить подготовку данных для импорта.

Я знаю, как сделать импорт.

1 Ответ

0 голосов
/ 08 января 2019

О, я вижу, что вы хотите сейчас

     Sub SortItOUt()
    Dim t As Range
    Dim r As Range
    Set t = Sheets(2).Range("a2") 'I assume a blank second sheet to collect the data
    Set r = Sheets(1).Range("a1") 'assume data starts in sheet 1
    Do
      Dim x As Long
      For x = 0 To 7
          r.Offset(x, 1).Copy t.Offset(0, x) 'copy and transpose
      Next x
      Set t = t.Offset(1, 0)
      Set r = r.Offset(8, 0)

     Loop Until r = ""
  End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...