2

レース カー ドライバーのパフォーマンスを計算するために使用する大規模なスプレッドシートがあります。かなり長い間安定しています。今日、それを開いたところ、テーブルの 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_nameslocal_nameの比較は、AVERAGE(IF( が失敗しない) AVERAGEIFS を使用するたびに、シートのこの領域で失敗します。

私にとって、式はどちらの方法でも正しいのですが、シートのこの部分で突然失敗するのは奇妙です。

これは私の最初の投稿であり、利用可能なヘルプをいただければ幸いです。うまくいけば、私は答えにつながるのに十分な情報を提供しました. そうでない場合はお知らせください。ギャップを埋めます。

4

1 に答える 1