
一部の列(すべてではない)の情報を行に表示したいのですが、以下の例を参照してください。
これが私の持っているものです (残念ながら、余分なスペースは許可されないため、すべてが揃っていません。すべてが揃っていることを想像してください)。
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
継続的な変換が必要なのか、それともデータを一度だけ変換したいのかは明確ではありませんでした。データを一度だけ変換したい場合、次の提案があります。これが現在のデータだと想像してみましょう。
患者 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 つの数式すべてを必要なだけ下にドラッグします。
これがお役に立てば幸いです。