
私は、日付、車両 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 台の車両しか確認できないため、よりグローバルなソリューションが必要になった場合は問題が生じます。