複数の条件による Excel フィルタリング

複数の条件による Excel フィルタリング

2021 年に診察を受けた患者でレポートをフィルタリングしようとしていますが、患者が以前の年にも診察を受けたことがある場合は、レポートから除外したいと思います。(つまり、患者が 2018 年と 2021 年に診察を受けた場合は、レポートから除外したくありません) また、別の列の数値が 10.0 以上になるようにしたいです。

列 B = サービス日 列 C = 患者名 列 F = 番号インジケータ

これをフィルタリングする、または =IF 式をフィルタリングする最適な方法は何ですか?

これはヘルスケアレポートなので、患者情報のためレポートの内容を伝えることはできません。

答え1

コメントで示唆されているように、これは次のような数式を使用してヘルパー列を通じて実行できます。

=AND(F2>=10,COUNTIFS(C:C,C2,B:B,"<"&DATE(2021,1,1))=0)

参照を調整しF2C2数式を貼り付ける行と一致するようにしてください。その後、その列を上下にコピーすると、参照が自動的に更新されます。仕組みの要点は次のとおりです。

AND()内部の条件がすべて真である必要があります。そうでない場合は false を返します。条件は 2 つあります。

  • F2>=10簡単です。
  • COUNTIFS()複数の条件を満たすレコードの数をカウントします。範囲 + 条件のペアで、2 つあります。
    • C:C,C2この行の値(この行の患者名)と一致する列C全体の値のみをカウントします。
    • B:B,"<"&DATE(2021,1,1)2021-01-01 より前、つまり 2021 年より前の日付のみをカウントします。

関数COUNTIFS()が 0 を返し (つまり、以前の年に患者が見つからなかった)、F の数値が 10 以上の場合、関数はAND()true を返します。それ以外の場合は false を返します。

数式をテーブルの各行にコピー/貼り付けし、その列でフィルターします。必要なのは true が返されたものだけです。

答え2

以下の情報が役に立つかどうか確認してください。

=IF(D4>=10,IF(ISNA(VLOOKUP(C4,$C$10:$C$13,1,FALSE)),B4:D4,""),"")

結果テーブルが生成されたら、結果テーブルの値のみを新しいテーブルにコピーします。その後、これすべての空白行を削除します。

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

関連情報