Excel で if ステートメントを使用して countif 関数の結果を取得する

Excel で if ステートメントを使用して countif 関数の結果を取得する

私は、日付、車両 ID、ドライバーの名前 (など) をリストするテーブル「tblVehicleDailyUse」を作成しました。このテーブルのデータを使用して、セル B4 から始まるマトリックスに、過去 30 日間に各車両と、その車両を最も多く運転したドライバーをリストして入力しようとしています。以下の式はセル D4 に入力されます。

次の式を使用しようとしましたが、配列の各行に #VALUE! が返されるだけです。静的ドライバー名の使用も試みましたが、すべて無駄でした。

=MAX(COUNTIF(IF((tblVehicleDailyUse[[#データ],[CCH VID]]=$B4)(tblVehicleDailyUse[[#データ],[日付]]<=TODAY())(tblVehicleDailyUse[[#Data],[Date]]>=TODAY()-30)、tblVehicleDailyUse[[#Data],[Driver]]、0)、tblVehicleDailyUse[[#Data],[Driver]]))

何を間違えたのでしょうか、それともこれは可能なのでしょうか? ありがとうございます。

サンプルデータ:

日付 ビデオ 運転者
2022年1月10日 A001 ジョン・ドウ
2022年1月10日 B015 サム・スレイド
2022年1月10日 C003 ジェーン・ドウ
2022年1月10日 ABC001 トム・スミス
2022年11月1日 A001 ジョン・ドウ
2022年11月1日 A012 サム・スレイド
2022年11月1日 B015 ジェーン・ドウ
2022年11月1日 ABC001 トム・スミス
2022年1月12日 C003 ジェーン・ドウ
2022年1月12日 A001 ジェーン・ドウ
2022年1月12日 C003 サム・スレイド

答え1

わかりました。それでは別の方法で解決しましょう。

ドライバー テーブルに「CountByVehicle」フィールドを作成しました。このフィールドには次の数式が含まれます。

=SUM(IF((tblVehicleDailyUse[[#Data],[CCH VID]]=$B$4)*(tblVehicleDailyUse[[#Data],[Driver]]=[@[DRIVER LIST]]),1,0))

これは、$B$4 に保存されている、問題の車両の tblVehicleDailyUse テーブルに各ドライバーが出現する回数を合計します。次に、次の式を使用できます。

=INDEX(tblDriverList[[#All],[DRIVER_LIST]],MATCH(MAX(tblDriverList[[#All],[CountByVeh]]),tblDriverList[[#All],[CountByVeh]],0))

これは、問題の車両の tblVehicleDailyUse に最も多くのエントリがあるリスト内の (最初の) ドライバー名を返します。少し扱いに​​くいですが、私の目的には適しています。

現時点ではこれで問題は解決しています。ただし、一度に 1 台の車両しか確認できないため、よりグローバルなソリューションが必要になった場合は問題が生じます。

関連情報