
Я хочу, чтобы информация в некоторых столбцах (но не во всех) отображалась в строках, см. пример ниже.
Вот что у меня есть (к сожалению, здесь не допускаются дополнительные пробелы, поэтому все не выровнено, попробуйте представить, что все выровнено):
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))
Перетащите все три формулы вниз, насколько это необходимо.
Надеюсь, это вам поможет.