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

次のようなデータがあります:

ここに画像の説明を入力してください

H2入力:

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

下方向にコピーします:

ここに画像の説明を入力してください

注記:

6これらの数式の は、ソース テーブルの訪問回数に対応します。必要に応じて調整してください。

答え2

継続的な変換が必要なのか、それともデータを一度だけ変換したいのかは明確ではありませんでした。データを一度だけ変換したい場合、次の提案があります。これが現在のデータだと想像してみましょう。

ここに画像の説明を入力してください

患者 1 人あたりの訪問回数は最大 4 回なので、次のように最初の患者の行を手動で作成します。

ここに画像の説明を入力してください

日付列に VLOOKUP を適用し、訪問タイプに応じて列を検索します。

ここに画像の説明を入力してください

ここで、2 番目の患者の行を手動で作成しますが、いくつかの数式を使用して、プッシュダウンできるようになります。

ここに画像の説明を入力してください

日付の列には、患者 1 から取得したデータをそのまま押し下げます。

ここに画像の説明を入力してください

次に、患者 2 のすべてのブロックを選択して押し下げます。

ここに画像の説明を入力してください

日付がなくても機能します

ここに画像の説明を入力してください

これはあなたに似合いますか?

答え3

私のアプローチは双方向検索上記の回答の 1 つのように、テクニックが必要です。

以下の画像をご覧ください。最初の表にはサンプル データが表示され、2 番目の表には患者のリスト、訪問回数、日付がすべて希望の順序で表示されています。

ここに画像の説明を入力してください

以下を取得するための式は次のとおりです。

患者リスト:セル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 つの数式すべてを必要なだけ下にドラッグします。

これがお役に立てば幸いです。

関連情報