Excel 関数ウィザードは機能するが、手動入力では機能しないのは診断ですか?

Excel 関数ウィザードは機能するが、手動入力では機能しないのは診断ですか?

Excelの内部構造に詳しい方が、Excelの奇妙な問題について説明してくれることを期待しています。Excelの問題で誰かを助けたことがあるのですが、その解決策は、表示文字列内の日付をTEXT関数でフォーマットすることでした。参考までに、質問は次のとおりです。ここ回答に関する議論と画像がチャットに移動されます。チャットにはファイルのコピーへのリンクが含まれます。

これは、TEXT 関数の単純な使用法で、OP のコンピューター上の OP のワークシートを除くすべての場所で機能しました (ファイルは Excel 2016 から V95-2003 .xls として保存されていました)。LO Calc を使用してワークシートのコピーで自分のシステムで動作させることができましたが、そのためにはさまざまな手順を踏む必要がありました (OP の Excel アプリだけでなく、スプレッドシート自体も不安定な動作をしました)。

  • 元のセルには、他のさまざまなセルの値を連結しただけの「機能する」数式がありました。コンポーネント参照セルの 1 つに日付が含まれており、文字列内に生の形式で表示されていました。解決策は、そのセル参照を TEXT 関数で囲んで日付として書式設定することでした。
  • 元の数式は、TEXT 関数を挿入するように編集された場合、数式として認識されなくなりました。数式全体がテキスト文字列として扱われるようになり、場合によっては一般的なエラー メッセージが表示されるようになりました。
  • セルを「一般」として事前フォーマットしても役に立ちませんでした。
  • 常駐フォーミュラの編集も一切行われませんでした。
  • 先頭の空白や一重引用符、地域リストの区切り文字の問題などは除外しました (元の数式は機能し、これらのいずれも変更されていません)。
  • 別のセルから編集した数式をコピーして貼り付けると、私のシステムでは機能しましたが、OP のシステムでは機能しませんでした。
  • 破損したワークシート (新しいワークシートを開いた) や、TEXT 関数より前のファイル形式の使用 (現在の形式でファイルを再保存して再度開いた) などの可能性を排除しました。
  • コンピュータを再起動しても問題は解決しませんでした (一時的な問題ではありません)。
  • これは Excel インストールの破損ではないようです。投稿者は、アクセスできる多数のコンピューターで問題が再現したと報告しました。
  • OP がテストしたすべての Excel インストールが、オフィス内のアップグレードできない、またはアップグレードされない古い Excel インストールとの互換性を確保するための設定で同様に構成されている可能性を排除することはできません。

要約:

最後に、私は OP に新しいワークシートを開いてもらい、1 つのセルに日付を入力し、別のセルの単純な TEXT 関数内でそれを参照してもらいました。Excel 2016 では、セルに入力した TEXT 関数が受け入れられませんでした (「この数式には問題があります」という一般的なエラー メッセージが表示されました)。

ただし、関数ウィザードを使用して Excel に数式を作成させることができ、それが機能しました。結果として得られた数式は、手動で入力したものとまったく同じでした。

私の質問:関数を手動で入力すると関数が認識されないが、関数ウィザードを使用して入力すると機能する原因となる既知の問題条件または状況はありますか? つまり、このパターンは特定の根本的な問題を診断するものですか?

関数ウィザードは、セルの内容を単に編集するだけでなく、何らかのモード、設定、またはアクションを強制して、関数が認識されない場合に関数が認識されるようにしますか?

答え1

数式がセルに文字列のように表示される理由として考えられるのは次の通りです。

  1. =数式の符号の前に空白があるかどうかを確認します。

    01-01-2018       =TEXT(D8,"dd mmm")     
    
  2. シートが数式表示モードになっている可能性があります。

  3. セルの書式が「テキスト」ではなく「標準」に設定されていることを確認してください。

答え2

今、問題は解決しました。

この問題に関する私の調査結果:

  1. 以前、数式セル B10 は TEXT としてフォーマットされていました。
  2. 数式は N12 から現在の日付を読み取っています。
  3. セル N12 は TEXT 関数でラップされており、元々の形式は ddmmyyyy で、区切り文字はありませんでした。

私が適用した解決策:

  1. 数式セル B10 の書式を GENERAL に変更しました。

  2. 数式を修正し、希望の形式を次のように含めましたText(N12,"DD/MM/YYYY")

現在、Excel は B10 の数式を文字列ではなく数式として扱い、希望の形式で結果を生成しています。

下のスクリーンショットを確認してください。

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

関連情報