Excel - ID関連の値を見つけて別のブックに入力する

Excel - ID関連の値を見つけて別のブックに入力する

私はインドの小さな病院で働いていますが、次のような問題を抱えています。特別な薬については、日付、ID、投与量、期間、次回の診察日のリストがあり、これを毎日の作業リスト (ワークブック 1) として使用していますが、1 つの ID (人) がこのリストに複数回表示される可能性があります。

別のワークブックには、各 ID が 1 つだけ含まれる「マスター ファイル」(ワークブック 2) がありますが、パターン (日付、期間、次の訪問) は、人が再び来るたびに繰り返されます (つまり、日付 2、期間 2、次の訪問 2)。

私は、毎日のリスト (ワークブック 1) のデータをマスター シート (ワークブック 2) に自動的に入力する、洗練された方法を探しています。したがって、ワークブック 1 で ID を検索し、DATE1、DURATION1、NEXT VISIT2 の値を取得してワークブック 2 に入力し、ワークブック 1 のリストのさらに下まで進み、患者が次に来た時間を見つけてデータを取得し、ワークブック 2 で再度、今度は DATE2 に入力する、といった操作を行うには、IF + INDEX/Match + Array 関数が必要になると思います。

問題を説明するために 2 枚の画像を追加します。

デイリーシート:
ここに画像の説明を入力してください

マスターシート: ここに画像の説明を入力してください

答え1

  1. 数式を使って値を見つけることは可能です。必要なのは、ヘッダーに数字を表示することだけです。たとえば、1は次の形式で表示されます。0「最初の訪問」
  2. 残念ながら、関数はデータ損失とオーバーフローという 2 つの問題に対処できません。患者が 8 回目に来たのに、テーブルに 7 までしか入力していないためにテーブルに表示されないことを想像してください。

おそらくあなたが探している機能は

=SUMPRODUCT(1*(A3>$A$3:$A$8),1*(B3=$B$3:$B$8))+1

これをワークブック 1 に追加すると、特定の会議の番号 (1 回目: 1、2 回目: 2 など) がわかります。この数式のさらなる問題は、同じ値の 2 つの数字を区別しないことです。1 日に 2 回訪問した場合でも (時間まで記録していないと仮定)、1 回としてカウントされます。

答え2

他の回答で説明されているように、数式を使用して実行できますが、最善/最も簡単な解決策ではない可能性があります。以下のオプションのいずれかを使用します。

ピボットテーブル:

おそらく、制限を受け入れられるのであれば、最も簡単でエレガントなソリューションです。
- 宛先範囲は編集できません (あなたの場合はプラスかもしれません)。
- 表の本文では数値と​​日付の値のみを使用できます (この例ではテキストはレートのみですが、数値の後に「mg」を表示するようにカスタム数値形式を設定できます)。
準備:
- 表に新しい列を追加します - VisitSequence: =countifs(f:f,f3,b:b,"<="&b3)
- ピボット テーブルを作成します。列ラベル: ID、行ヘッダー: VisitSequence、値: 日付、投与量、期間、次回の訪問 (ID X 日付の組み合わせごとに 1 行しかないため、合計または平均を使用できます)。

VBA:

ピボットよりもはるかに多くの作業が必要ですが、はるかに柔軟性があります。

MSアクセス:

必要なレポート用のネイティブ ツール。ある程度の学習が必要になるかもしれませんが、長期的には最適なソリューションになる可能性があります。

関連情報