1

Я хочу, чтобы информация в некоторых столбцах (но не во всех) отображалась в строках, см. Пример ниже.

Это то, что у меня есть (к сожалению, это не позволяет лишние пробелы, поэтому все не выровнено, пожалуйста, попробуйте представить все выровненным):

Patient     Visit 1     Visit 2     Visit 3     Visit 4(…)

1           22Dec       12Jan       03Feb    
2           3Jan        03Feb       01Mar
3           10Dec       03Jan       23Jan   
(…)

(и т.д., длинная база данных с сотнями пациентов)

Вот как я хочу, чтобы это выглядело так:

Patient     Visit type      Date

1           Visit 1         22Dec
1           Visit 2         12Jan    
1           Visit 3         03Feb   
2           Visit 1         23Jan   
2           Visit 2         (…)   
(…)

Это не связано с какими-либо расчетами, это просто манипулирование данными, в основном упорядочивание посещений на пациента, но я не уверен ни в какой функции, которая делает это, пробную таблицу, но, кажется, не делает это совсем так ... Есть предложения? Если нет формул, кнопок и т.д., Может быть, вы можете предложить макрос?

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

3 ответа3

1

С такими данными, как:

В H2 введите:

=ROUNDUP(ROWS($1:1)/6,0)

и скопировать вниз. В ячейку I2 введите:

=INDEX($B$1:$G$1,MOD(ROWS($1:1)-1,6)+1)

и скопировать вниз. В J2 введите:

=INDEX($B$2:$G$10,ROUNDUP(ROWS($1:1)/6,0),MOD(ROWS($1:1)-1,5)+1)

и скопировать вниз:

НОТА:

6 в этих формулах соответствует количеству посещений в исходной таблице. Отрегулируйте в соответствии с вашими потребностями.

0

Было непонятно, хотите ли вы непрерывного преобразования или просто измените данные один раз. Если вы просто хотите преобразовать свои данные один раз, вот предложение: давайте представим, что это ваши данные сейчас:

Поскольку у вас есть не более 4 посещений на пациента, постройте вручную строки для первого пациента, например:

Для столбца даты примените VLOOKUP, ища столбец согласно типу посещения:

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

Для столбца даты просто нажмите вниз, что у вас есть от пациента 1:

Теперь выберите весь блок пациента 2 и нажмите вниз:

Даже когда нет даты, она будет работать

Подойдет ли вам это?

0

Мой подход использует технику двустороннего поиска , как один из ответов выше.

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

Вот формулы для получения:

Список пациентов: в ячейке A10 =INT((ROW(A1)-1)/5)+1

Список типов посещений: в ячейке B10 ="Visit"&INT(MOD(ROW(A1)-1,5))+1

Список дат в ячейке C10, =INDEX($B$2:$F$8,MATCH(A10,A$2:A$8,0),MATCH(B10,$B$1:$F$1,0))

Перетащите все 3 формулы вниз, насколько это необходимо.

Я надеюсь, что это поможет вам.

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