Excelは通常、Excel 2002/2003 XMLスプレッドシートファイルからそれらをロードするとき、条件付き書式設定式を以外の配列式、のように扱います。Excel XMLスプレッドシートファイルの条件付き書式設定の配列数式
これは、Excel 2002/2003 XMLスプレッドシート形式の問題です。ネイティブExcel形式は正常に機能し、新しいExcel 2007 XML形式(xlsx)も同様に機能します。
スプレッドシートを読み込んだ後、フォーマットされた範囲を選択し、条件付き書式設定ダイアログに進み、[OK]をクリックすることで正しく動作させることができますが、これはセッションの問題のみを修正します。
テストケース:
は、新しいシートに次のように入力します。
A B C
1 N N N
2 x x x
3 x x x
セルA1に、この条件付き書式の式を作成します:C1(フォーマットのためのきれいな色のあなたの選択):
=(SUM(($A1:$C1="N")*($A$2:$C$2=A$3))>0)
これは、A1、B1、C1のいずれかが「N」で、行2bのセルがある場合は常にアクティブになる配列式です「N」は現在の列の行3のセルと等しい。
(これは、実際のビジネスのスプレッドシートから簡略化されています。テストケースの複雑さのため申し訳ありませんが、私はここに提示することが容易にテストケースを見つけようとしています。)
そして、それは動作します...任意の方法でNやxを変更することができ、書式設定はうまく動作します。
これをXMLスプレッドシートとして保存します。 Excelを終了し、ファイルを再度開きます。書式設定が壊れています。 A1が "N"、A2がA3、B3、C3と同じ場合にのみ、条件付き書式設定を有効にすることができます。 B1、B2、C1、C2の値は書式設定には影響しません。
ここで、A1:C1を選択し、条件付き書式を確認します。以前とまったく同じ。 OKを押します。条件付き書式設定は再び動作を開始し、ファイルが開いているセッション全体で動作します。考え
回避策:
ネイティブ(BIFF)Excel形式でファイルを提供します。オプションではなく、これらのスプレッドシートはWebサーバーによってオンザフライで生成され、これは当社のシステムによって動的に生成される数十種類のワークブックのうちの1つに過ぎません。
ファイルをExcel 2007のネイティブXML形式(xlsx)で提供します。オプションではなく、現在のユーザーベースにはOffice 2007または互換性プラグインがありません。
ユーザーに範囲を選択するように要求するには、[条件付き書式設定]ダイアログボックスに入り、[OK]を押します。この場合の選択肢ではなく、単純なユーザー。
XMLスプレッドシートを開くようにユーザーに依頼し、ネイティブXLSとして保存し、XLSファイルを閉じてから再度開きます。 これは動作しません!フォーマットがXMLファイルから読み込まれていない場合は、ネイティブXLSフォーマットでフォーマットされたままになります。保存する前に(3)を実行すると、XLSファイルが正常に動作します。
最終的に、配列式を使用しないように条件付き書式を書き直しました。だから私はこれがある程度は "答え"だと思うが、それはExcel 2002/2003のXMLファイルの扱いで、あいまいであれば未だに不明なバグである。