PR

Excelで「配列の一部を変更できません」と出る原因|削除・編集できないときの直し方

Excel
記事内に広告が含まれています。

Excelでセルの値や数式を変更しようとしたとき、
「配列の一部を変更できません」
と表示され、編集や削除ができないことがあります。

普通のセルであればDeleteキーを押したり数式を書き換えたりできますが、配列数式が設定されている範囲では、一部のセルだけを変更できない場合があります。

特に、

・他の人から受け取ったExcelファイル
・以前から使っている集計ファイル
・複数セルに同じような計算結果が表示されているファイル

などで発生しやすいエラーです。

この記事では、「配列の一部を変更できません」と表示される原因と、数式を編集・削除する方法を分かりやすく解説します。

Excelで「配列の一部を変更できません」と表示される原因

結論から言うと、このメッセージが表示される主な原因は、
複数のセルが1つの配列数式としてまとめて管理されているため
です。

通常のExcel数式であれば、たとえばA1~A10のそれぞれに数式が入力されていても、A5だけ削除したり書き換えたりできます。

一方、配列数式では複数セルが1つのグループとして扱われることがあります。

たとえば、A1~A10が1つの配列数式になっている場合、
A5だけ削除しようとすると、Excelは「配列の一部分だけを変更しようとしている」と判断し、「配列の一部を変更できません」と表示します。

つまり、Excelが壊れているわけではありません。

配列数式の一部分だけを変更できないよう、Excelの仕様で制限されている状態と考えると分かりやすいでしょう。

「配列の一部を変更することはできません」メッセージ画面

まずは配列数式になっているか確認する

「配列の一部を変更できません」と表示されたら、まず対象セルの数式を確認してみましょう。
セルを選択し、数式バーを確認します。

古い形式の配列数式では、次のように数式が { } で囲まれていることがあります。

{=(B2:B6*C2:C6)}

この { } は手入力したものではなく、従来の配列数式として登録されていることを示しています。

このタイプは「CSE配列数式」「従来の配列数式」などと呼ばれます。
複数セルに設定されている場合、一部分だけ編集・削除することはできません。

CSE配列数式の説明画面

「配列の一部を変更できません」を解除して削除する方法

配列数式を削除したい場合は、1セルだけではなく、配列数式が設定されている範囲全体を選択して削除します。

■配列数式全体を選択して削除する方法
1.[ホーム]→[検索と選択]をクリックします。
 ↓
2.[条件を選択してジャンプ]を選択します。(もしくはCtrl + G → [セル選択])
 ↓
3.[アクティブ セルの配列]を選択します。
 ↓
4.[OK]をクリックします。
 ↓
5.選択された配列全体をDeleteキーで削除します。

条件を選択してジャンプ(Ctrl + G)を選択している画面
アクティブセルの配列を選択している画面

これで、配列全体を選択することができます。

配列全体が選択された画面

配列全体が選択されたら、Deleteキーを押します。
これで配列数式全体を削除できます。

配列数式を削除せずに編集する方法

配列数式そのものを残して、数式だけ変更したい場合もあります。

■従来の配列数式を編集する方法
1.配列数式が設定されている範囲全体を選択します。
 ↓
2.F2キーを押すか、数式バーをクリックします。
 ↓
3.数式を修正します。
 ↓
4.Ctrl+Shift+Enterで確定します。

従来の配列数式では、1セルだけを編集することはできません。

通常の数式ではEnterキーだけで確定できますが、従来の配列数式ではCtrl+Shift+Enterで確定する点に注意してください。

Ctrl+Shift+Enterで配列数式を編集している画面

配列の中の1セルだけ削除・変更したい場合はどうする?

「配列の一部を変更できません」は、配列数式が設定されていることに気付かず、普通のセルと同じように編集しようとしたときにも表示されます。

たとえば、次のような計算結果が表示されているとします。

100
200
300
400
500

見た目だけでは、それぞれ独立したセルのように見えます。
そこで、「表示されている300だけを消したい」と思い、そのセルを選択してDeleteキーを押したとします。

しかし、この5つのセルが1つの配列数式として設定されている場合、「300」のセルだけを削除することはできません。

Deleteキーを押すと、
「配列の一部を変更できません」
と表示されます。
同じように、1セルだけ別の数式へ変更したり、別の値を貼り付けたりすることもできません。

「配列の一部を変更することはできません」メッセージ画面

これは、選択したセルだけが独立しているのではなく、複数セルをまとめて1つの配列数式として管理しているためです。
特に、他の人が作成したExcelファイルでは、見た目だけでは配列数式だと分からないことがあります。

「普通のセルだと思って削除しようとしたら、このメッセージが表示された」
という場合は、まず配列数式が設定されていないか確認してみましょう。

1セルだけを削除・変更したい場合は、

・配列数式の元データを変更する
・配列数式そのものを変更する
・配列数式を解除して通常の値にする

のいずれかで対応します。

数式が不要なら値に変換する方法もある

今後計算結果が変わる必要がなく、「表示されている数字だけ残したい」という場合は、数式を値へ変換する方法があります。

■配列数式を通常の値へ変換する方法
1.配列範囲全体を選択してコピーします。
 ↓
2.同じ範囲で[貼り付け]を開きます。
 ↓
3.[値]を選択して貼り付けます。
 ↓
4.個別のセルを編集できることを確認します。

配列範囲全体をコピーし、[貼り付け]→[値]で同じ場所に貼り付けます。
数式ではなく通常の値になれば、それぞれのセルを個別に変更できるようになります。

ただし、値へ変換すると元データを変更しても自動計算されなくなります。
必要な数式まで消してしまわないよう、念のためファイルをバックアップしてから操作することをおすすめします。

Microsoft 365では「動的配列」の場合もある

Microsoft 365や比較的新しいExcelでは、従来の配列数式とは別に動的配列という仕組みがあります。

代表的なのが、

・FILTER関数
・UNIQUE関数
・SORT関数
・SORTBY関数
・SEQUENCE関数

などです。

たとえば、

=FILTER(A2:C20,C2:C20="営業部")

と入力すると、条件に合った結果が下方向や横方向へ自動的に展開されます。
この動作を「スピル」と呼びます。

動的配列の場合、複数のセルに結果が表示されていても、実際に数式が入力されているのは基本的に左上の1セルだけです。
そのため、展開された結果の途中にあるセルを個別に変更することはできません。

FILTER関数を使用している画面

動的配列の場合は左上のセルを編集する

FILTER関数などによって結果が複数セルへ展開されている場合は、表示結果の途中を変更するのではなく、スピル範囲の左上にある数式を編集します。

■動的配列の数式を修正する方法
1.スピル範囲の左上セルを選択します。
 ↓
2.数式バーでFILTER関数などの数式を修正します。
 ↓
3.Enterキーで確定します。
 ↓
4.スピル範囲が自動更新されたことを確認します。

たとえば、

=FILTER(A2:A6,B2:B6="営業部")

によって、

佐藤
高橋
伊藤

と表示されている場合、「伊藤」と表示されているセルに直接別の文字を入力するのではありません。
FILTER関数が参照している元データを変更するか、左上に入力されているFILTER関数を修正します。

スピル範囲内の左上セル以外を選択すると、数式バーには数式が薄いグレー色で表示され、編集できません。
これにより、実際に数式が入力されている左上セルかどうかを判断することもできます。

動的関数の入力セル以外はグレーで表示されることを説明している画面

動的配列では、
表示されたセル=それぞれ独立した数式
ではない点を覚えておくと分かりやすいでしょう。

「配列の一部を変更できません」と「#SPILL!」の違い

配列関連では、

#SPILL!

というエラーが表示されることもあります。

似ていますが、原因は異なります。

表示主な原因
配列の一部を変更できません配列数式の一部分だけを編集・削除しようとしている
#SPILL!動的配列の結果を展開する場所に値などがあり、結果を表示できない

たとえばFILTER関数の結果をA2:A10へ表示したいのに、A5に別の文字が入力されていると、結果を正常に展開できず#SPILL!エラーが発生することがあります。

動的数式の展開範囲に値があり、スピルエラーが発生している画面

今回の「配列の一部を変更できません」とは別の原因なので注意しましょう。

👉#SPILL!エラーの原因を詳しく確認したい場合は、以下の記事もあわせてチェックしてみてください。

FILTER関数やUNIQUE関数を使っている場合も注意

Microsoft 365では、動的配列を利用する機会が増えています。

特にFILTER関数やUNIQUE関数は、1つの数式から複数セルへ結果が展開されるため、
「セルごとに数式が入っている」
ように見えることがあります。

しかし実際には、左上のセルに入力した数式の結果が周囲へ展開されています。

そのため、
「FILTER関数の結果を1行だけ書き換えたい」
という場合も、表示結果を直接変更するのではなく、元データやFILTER関数の条件を変更する必要があります。

👉FILTER関数やUNIQUE関数を使いこなしたい場合は、以下の記事もあわせてチェックしてみてください。

配列数式を確認しても解決しない場合

配列数式を確認しても原因が分からない場合は、別の原因も確認してみましょう。

たとえば、

・シートが保護されている
・セルがロックされている
・共有ファイルやOneDriveで同期に問題が発生している

といったケースもあります。

なお、「数式は編集できるけれど、変更した値が結果に反映されない」という場合は、編集制限とは別の問題です。Excelの計算方法が[手動]になっていないか確認してください。

👉数式を変更しても結果が更新されない場合は、以下の記事もあわせてチェックしてみてください。

よくある質問

Q1.配列の一部だけ削除することはできますか?

複数セルで構成された従来の配列数式では、一部分だけ削除することはできません。

配列範囲全体を選択して削除したあと、必要に応じて数式を作り直します。

Q2.「配列の一部を変更できません」が突然表示されたのはなぜですか?

もともと配列数式が設定されていたセルを編集しようとした可能性があります。

自分で作成した覚えがなくても、受け取ったファイルや既存テンプレートに設定されている場合があります。数式バーを確認してください。

Q3.Deleteキーを押してもセルが消えない場合はどうしたらいいですか?

配列数式の一部分だけを選択している可能性があります。

[検索と選択]→[条件を選択してジャンプ]から[アクティブ セルの配列]を選び、範囲全体を選択してからDeleteキーを押してください。

Q4.FILTER関数の結果を1セルだけ変更できますか?

基本的にはできません。

スピル範囲の左上セルにある数式、またはFILTER関数が参照している元データや抽出条件を変更します。

Q5.配列数式を普通のセルに戻すことはできますか?

計算結果だけを残せばよい場合は、配列全体をコピーし、[値の貼り付け]で通常の値へ変換できます。

数式がなくなるため、元データを変更しても自動更新されない点に注意してください。

まとめ

Excelで、
「配列の一部を変更できません」
と表示された場合は、配列数式の一部分だけを編集・削除しようとしている可能性があります。

従来の配列数式では、

・配列全体を選択する
・数式を編集する場合は配列全体を編集する
・削除する場合も配列全体を削除する

必要があります。

一方、Microsoft 365のFILTER関数やUNIQUE関数などで使われる動的配列では、基本的にスピル範囲の左上セルにだけ数式が入力されています。

表示された結果を直接変更するのではなく、左上の数式や参照元データを変更しましょう。

「#SPILL!」が表示されている場合は今回とは原因が異なるため、スピル範囲に別のデータが入力されていないかも確認してみてください。

ろじゃー

仕事・子育てに奮闘中の社会人です。
仕事でも日常生活でも、ちょっとでも便利になることが紹介できるブログを書いています!
 
仕事柄、PC操作やエクセル、VBAなどは得意です!
Excel歴は10年以上の事務職。
関数やVBAを活用して、資料作成やデータ分析をはじめとした様々な業務の効率化・自動化に取り組んできました。
 
このブログでは、実際の業務で使える効率化テクニックを発信しています。
「わからない」や「困った」など問題を抱える方や、もっと効率化したいと思っている方に、少しでも役立てれば幸いです!

ご質問・ご相談など、お気軽にご連絡ください。

🥷 「現代で暮らすゆる忍者」ラインスタンプシリーズ公開中!日常や仕事、夫婦の会話など様々なシーンを製作しています
▶ LINEスタンプ一覧はこちら

ろじゃーをフォローする
ご質問・ご相談はこちらへ!
 ろじゃー|日々、ちょっとずつ良くなることを目指すブロガー
Excel歴10年以上。VBAや関数、業務効率化などを発信中。
📩 お問い合わせはこちら
Excel
シェアする
ろじゃーをフォローする

コメント

タイトルとURLをコピーしました