演算子の共通部分: @

演算子の共通部分: @

Excel for Microsoft 365 Excel for Microsoft 365 for Mac Excel for the web Excel 2021 Excel 2019 Excel 2016 その他…表示数を減らす

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

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

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

共通部分とは?

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

  • 値が単一の項目の場合は、その項目を返します。

  • 値が範囲の場合は、数式と同じ行または列のセルから値を返します。

  • 値が配列の場合は、左上の値を採用します。

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

@ 記号を使用する理由

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

@ は削除できますか?

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

自動的に追加された @ を削除した上で、そのブックを古いバージョンの Excel で開くと、その部分は target=”_blank” title=”従来の配列数式” rel=”noopener”>従来の配列数式として表示されます (中かっこ {} で囲まれています)。これは、古いバージョンで共通部分をトリガーしないようにするために行われています。

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

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

詳細については、「 target=”_blank” title=”範囲または配列 を返す Excel 関数” rel=”noopener”>範囲または配列 を返す 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)共通部分が発生する可能性があります。 target=”_blank” title=”INDEX 関数” rel=”noopener”>INDEX 関数は、2 番目または 3 番目の引数が 0 の場合に、配列または範囲を返すことができます。
=OFFSET(A1:A2,1,1)=@OFFSET(A1:A2,1,1)共通部分が発生する可能性があります。 target=”_blank” title=”OFFSET 関数” rel=”noopener”>OFFSET 関数は、複数セルの範囲を返すことができます。 その場合、共通部分がトリガーされます。
=MYUDF()=@MYUDF()共通部分が発生する可能性があります。 target=”_blank” title=”ユーザー定義関数” rel=”noopener”>ユーザー定義関数 は配列を返すことができます。 その場合、元の数式が共通部分をトリガーします。

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

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

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

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

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

補足説明

Excel Tech Communityで、いつでも専門家に質問できます。また、コミュニティでは、サポートを受けられます。

関連項目

target=”_blank” title=”FILTER 関数” rel=”noopener”>FILTER 関数

target=”_blank” title=”RANDARRAY 関数” rel=”noopener”>RANDARRAY 関数

target=”_blank” title=”SEQUENCE 関数” rel=”noopener”>SEQUENCE 関数

target=”_blank” title=”SORT 関数” rel=”noopener”>SORT 関数

target=”_blank” title=”SORTBY 関数” rel=”noopener”>SORTBY 関数

target=”_blank” title=”UNIQUE 関数” rel=”noopener”>UNIQUE 関数

target=”_blank” title=”Excel での #SPILL! エラー” rel=”noopener”>Excel での #SPILL! エラー

target=”_blank” title=”動的配列とスピル配列の動作” rel=”noopener”>動的配列とスピル配列の動作

上部へスクロール