演算子の共通部分: @

適用先
Excel for Microsoft 365 Excel for Microsoft 365 for Mac Excel 2024 Excel 2021

Microsoft は、 動的配列をサポートするための Excel の数式言語の大幅なアップグレードの一環として、共通部分演算子を導入しました。 動的配列により、新しく重要な計算能力と機能が Excel に導入されます。

アップグレードされた数式言語

アップグレードされた Excel の数式言語は、古い言語とほぼ同じです。ただし、古い言語では暗黙的に発生した共通部分について、その可能性がある場所を @ 演算子を使用して示す点が異なります。 この結果、動的配列 Excel で数式を開くと、一部の数式に @ が表示されることがあります。 数式は、通常どおりに計算を続けます。  

共通部分とは?

共通部分ロジックでは、複数の値を 1 つの値に圧縮します。 Excel では、セルに含めることができる値は 1 つのみであるため、これを行って数式が 1 つの値を返すように強制しています。 数式が 1 つの値を返した場合、共通部分は何も表示していませんでした (技術的には、この処理はバックグラウンドで行われていました)。 このロジックは次のように機能します。

  • 値が 1 つのアイテムの場合は、そのアイテムを返します。
  • 値が範囲の場合は、数式と同じ行または列のセルから値を返します。
  • 値が配列の場合は、左上の値を選択します。

動的配列の導入により、Excel では数式から単一の値を返すという制限がなくなったため、暗黙的な共通部分の処理は不要となりました。 古い数式において、表示されずに共通部分がトリガーされていた場所は、動的配列に対応している Excel では、@ を使用してその発生場所を示します。  

@ 記号を使用する理由

@ 記号は、テーブル参照で共通部分を示すために、既に使用されています。 テーブル =[@Column1]で次の数式について考えてみましょう。 @ は、数式が共通部分を使用して、 [Column1] にある同じ行から値を取得していることを示しています。  

@ は削除できますか?

多くの場合、可能です。 これは、@ の右側にある数式の部分が返す内容によって異なります。

  • 単一の値を返す (最も一般的なケースの) 場合、@ を削除しても変化はありません。
  • 範囲または配列を返す場合、@ を削除すると、隣接するセルに スピル します。

自動的に追加された @ を削除し、後で以前のバージョンの Excel でブックを開くと、古い配 列数式 (中かっこ {} で囲まれた) として表示されます。 この動作により、古いバージョンでは共通部分がトリガーされません。

どのようなときに @ を古い数式に追加しますか?

一般に、複数セルの範囲または配列を返す関数は、以前のバージョンの Excel で作成した場合、@ プレフィックスが付きます。 数式の動作に変更はありません。以前は表示されていなかった共通部分を確認できます。 複数セル範囲を返す一般的な関数としては、INDEX、OFFSET、およびユーザー定義関数 (UDF) などがあります。 一般的に、これらが配列または範囲 (SUM() や AVERAGE() など) を受け入れる関数でラップされている場合は例外です。 

詳細については、「範囲または配列 を返す Excel 関数」を参照してください。

元の数式 動的配列 Excel での表示 説明
=SUM(A1:A10) =SUM(A1:A10) 変わりなし - SUM 関数は範囲または配列を前置しているため、共通部分は発生しません。
=A1+A2 =A1+A2 変わりなし - 共通部分は発生しません。
=A1:A10 =@A1:A10 共通部分が発生し、Excel は数式が含まれている行に関連付けられている値を返します。
=INDEX(A1:A10,B1) =@INDEX(A1:A10,B1) 共通部分が発生する可能性があります。 INDEX 関数は、2 番目または 3 番目の引数が 0 の場合に、配列または範囲を返すことができます。
=OFFSET(A1:A2,1,1) =@OFFSET(A1:A2,1,1) 共通部分が発生する可能性があります。 OFFSET 関数は、複数セルの範囲を返すことができます。 その場合、共通部分がトリガーされます。
=MYUDF() =@MYUDF() 共通部分が発生する可能性があります。 Excel でカスタム関数を作成する 配 列を返すことができます。 その場合、元の数式によって共通部分がトリガーされます。

新しい数式での @ 演算子の使用

@ 演算子を含む動的配列 Excel の数式を作成または編集すると、数式が _xlfn として表示されることがあります。動的配列以前の Excel で SINGLE() を使用します。

この動作は、混合した数式をコミットすると発生します。 混合した数式とは、配列計算と共通部分の両方に依存している数式です。 動的配列以前の Excel では、この組み合わせはサポートされていません。 動的配列以前の Excel では、 全体を通して i) 共通部分または ii) 配列計算を実行する数式のみがサポートされています。

動的配列に対応する Excel が、混合した数式の作成を検出すると、全体を通して共通部分を使用する数式のバリエーションを提案します。 たとえば、 =A1:A10+@A1:A10, を入力すると、次のダイアログが表示されます。

代わりに =@A1:A10 + @A1:A10 の式を使用するかどうかを尋ねるダイアログを示すスクリーンショット。

ダイアログで提案された数式を拒否することを選択すると、混合した数式 =A1:A10+@A1:A10 がコミットされます。 後でこの数式を動的配列以前の Excel で開くと、混合した数式の @ 演算子が =A1:A10+_xlfn.SINGLE(A1:A10) として表示されます _xlfn.SINGLE(). 動的配列以前の Excel がこの数式を評価する場合、#NAME! エラー値。 

補足説明

Excel 技術コミュニティの専門家にいつでも質問するか、コミュニティでサポートを受けることができます。

関連項目

FILTER 関数

RANDARRAY 関数

SEQUENCE 関数

SORT 関数

SORTBY 関数

UNIQUE 関数

Excel での #スピル! エラー

動的配列とスピル配列の動作