レース カー ドライバーのパフォーマンスを計算するために使用する大規模なスプレッドシートがあります。かなり長い間安定しています。今日、それを開いたところ、テーブルの 1 つが正しく計算されていないことがわかりました。シートの再計算を試み(手動計算に設定されています)、ツリーの再構築(ctl + alt + shift + f9)を試みましたが、役に立ちませんでした。同じ名前の範囲を参照する他の数式は、平均の場合を使用する他の数式と同様に正しく機能します。
変数
list_of_names = CSV ファイルからインポートされた単一のテキスト文字列内の姓と名のリスト
local_name = トラックの特定のセクターにおけるドライバーのパフォーマンスの平均を計算するための名前 (list_of_names に含まれることが 100% 保証されています)
セクターパーセント = 特定のセクターを通過するドライバーの移動のうち、事前に定義された範囲に収まる割合
セクター数 = ドライバーがセクターを通過した回数
元の数式が #Value エラーを返します。これは元の数式です (実際の数式には IFERROR ステートメントが含まれていますが、わかりやすくするためにここでは削除しました。#VALUE エラーはどちらの方法でも発生します)。
{=AVERAGEIFS(セクターパーセント,リストオブネーム,ローカル名,セクターパーセント,">0",セクターカウント,">"&最小セクター数)}
いくつかの実験の後、次の式が正しい答えを正常に報告することがわかりました。
{=AVERAGE(IF( list_of_names = local_name ,IF(セクター パーセント>0,IF(セクター カウント> min_number_sectors ,セクター パーセント, 0))))}
AVERAGEIFS数式からlist_of_names変数とlocal_name変数を取り除くと、正しく動作します (基準を満たすデータが与えられた場合)。これにより、名前のリストとローカル名が一致するデータ型ではないと信じるようになりました。ただし、両方が一般またはテキストに設定されている場合、#VALUE エラーは引き続き発生します。現在、TYPE(list_of_names) または TYPE(local_name) はどちらも 2 を返します。{TYPE(list_of_names)} は 64 を返します。
シートは、ブック内の他の場所および同じシートの他の領域で、list_of_names から local_name への関数を正しく実行できます。
私が試してみました:
-すべての名前付き範囲を、数式で名前によって参照される実際のセルに置き換える
- list_of_namesで異なるlocal_namesを参照する
-INDEX( list_of_names , ROW(A1)) をドラッグすると、名前のリストが正しくレポートされます。
- 他の基準を使用した、基準のさまざまな順序。
- 現在思い出すことのできないその他の瞬間的な変化の数
基本的に、list_of_namesとlocal_nameの比較は、AVERAGE(IF( が失敗しない) AVERAGEIFS を使用するたびに、シートのこの領域で失敗します。
私にとって、式はどちらの方法でも正しいのですが、シートのこの部分で突然失敗するのは奇妙です。
これは私の最初の投稿であり、利用可能なヘルプをいただければ幸いです。うまくいけば、私は答えにつながるのに十分な情報を提供しました. そうでない場合はお知らせください。ギャップを埋めます。