Манипулируйте данными в Excel, чтобы упорядочить результаты по определенному столбцу

Манипулируйте данными в Excel, чтобы упорядочить результаты по определенному столбцу

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

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

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         (…)   
(…)

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

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

решение1

Имея такие данные, как:

введите описание изображения здесь

ВН2входить:

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

и копировать вниз. В ячейкеИ2входить:

=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)

и копируем вниз:

введите описание изображения здесь

ПРИМЕЧАНИЕ:

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

решение2

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

введите описание изображения здесь

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

введите описание изображения здесь

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

введите описание изображения здесь

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

введите описание изображения здесь

В столбце даты просто введите данные от пациента 1:

введите описание изображения здесь

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

введите описание изображения здесь

Даже если нет даты, это сработает.

введите описание изображения здесь

Вам это подойдет?

решение3

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

Посмотрите на рисунки ниже, на которых в первой таблице показаны образцы данных, а во второй таблице — список пациентов, номер визита и дата, все в желаемом порядке.

введите описание изображения здесь

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

Список пациентов:в ячейке 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))

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

Надеюсь, это вам поможет.

Связанный контент