これはスクリーンショットです。元のスクリーンショットを投稿できないため、これは単なる例です。
このワークシートを作成して、この従業員がその日付に勤務する予定があるかどうかについての情報が記載された別のシートと現在の従業員を照合しました。
D1、D2、D3列で使用した関数は、D1の例のようになります。
=IF([@Date]=DATE(2016,7,1),VLOOKUP([@ID],(*array on another sheet*),3,false),"")
日付が7/1/16かどうかをチェックし、結果を返します。そうでない場合は空白を返し、この関数は30列(D1からD30 / D31)。論理値がfalseを返す場合、関数が空の値を返すフィールドが非常に多くあるため、メモリの消費が少なくて速くなるように、関数をスキップする方法はありますか?
1
私の理解では、Excelは必要なものだけを評価するように最適化されています。数式内のすべてのブランチを完全に評価してからロジックを適用するのではなく、結論に達するまで数式構造全体を処理し、不要なブランチを評価しません。(未使用のブランチのエラー条件が式を強制終了しない理由。)大規模なスプレッドシートの場合、最も可能性の高いケースと最小の計算が埋もれた「ELSE」条件ではなく最初に処理されるように式を構成します。あなたの例では、IF(@date <> date、 ""、vlookup)の方が良いでしょう。
—
fixer1234
実際、条件が1つしかないため、この場合、順序はおそらく違いはないと思いました。それを評価する必要があり、結果はいずれかのパスにつながるため、他のコメントの最後に示されているシーケンスはおそらく同じ結果をもたらします。ネストされたIFがある場合、外側のIFを使用して、最小限の作業で最大数のケースを解決し、連続する各レイヤーに同じ戦略を使用します。最も少ないケースに適用されるヘビーデューティコンピューティングには、最も内側のブランチを使用します。
—
fixer1234