数式を保存すると配列数式になってしまう原因とは?

このQ&Aのポイント
  • 保存すると数式が配列数式になる原因とは?
  • Excelで数式を保存する際に配列数式になる理由を解説します
  • Excelの数式保存時に起きる配列数式の問題の原因と対処法について
回答を見る
  • ベストアンサー

保存をすると数式が勝手に配列数式になってしまいます

やりたかったのは、次のような処理です。 1.現在のセルから見て、1行上のセルを参照します。 2.1行上のセルの中身が、""(空白)であれば、現在のセルの中身も""(空白)に、そうでなければ、1行上のセルの中身に1を足した数を入力します。 そこで、以下のような数式を入力いたしました。 =IF(OFFSET(INDIRECT(ADDRESS(ROW(), COLUMN())), -1, 0) = "", "", OFFSET(INDIRECT(ADDRESS(ROW(), COLUMN())), -1, 0) + 1) 結果は、成功でした。 ところが、この数式を入力したファイルを保存すると、次回開いたときに、 {=IF(OFFSET(INDIRECT(ADDRESS(ROW(), COLUMN())), -1, 0) = "", "", OFFSET(INDIRECT(ADDRESS(ROW(), COLUMN())), -1, 0) + 1)} と、勝手に{}で数式が囲まれてしまい、結果として、セルにはエラーが表示されてしまいます。 この原因は、何なのでしょうか? よろしくお願いいたします。

noname#249322
noname#249322

質問者が選んだベストアンサー

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率65% (1608/2445)
回答No.2

No1です。 ちなみに =IF(INDIRECT("R[-1]C",FALSE) = "", "", INDIRECT("R[-1]C",FALSE) + 1) として保存したらどうなるでしょう。

noname#249322
質問者

お礼

引き続き、ご回答ありがとうございます。 ありがとうございます。 ご提示いただいた関数で、解決いたしました! やはり、数式が{}で囲まれてしまうのですが、ご提示の数式でエラーなく表示されます。 関数が長すぎたのが原因だったのでしょうか……。 ありがとうございます!

その他の回答 (1)

  • kkkkkm
  • ベストアンサー率65% (1608/2445)
回答No.1

原因の回答ではありませんが、エクセル2013で新しいブックにその数式だけをB2:N2, B2:B21に入れて保存し再度開きましたが、問題なく元の数式のままでした。

noname#249322
質問者

お礼

ご回答ありがとうございます。 そうですよね…。 数式も合っていると思うので、問題ないはずなんですが…Excelの設定か、ファイルの互換性の問題なのでしょうか。 検証ありがとうございます。

関連するQ&A

  • EXCEL 条件付き書式(数式を使用して書式

    EXCELの書式設定に ・条件付き書式(数式を使用して書式設定)機能を使用したいのですが・・・・・・。 任意の2セルの左側のセルに下記設定を行い 100、0と各セルに入力しても指定した書式表示が実行されません。 設定記述: ="and(OFFSET(INDIRECT(ADDRESS(ROW(),COLUMN())), 0,0)>0, OFFSET(INDIRECT(ADDRESS(ROW(),COLUMN())), 0, 1)=0)" 固有セルを指定しないのは、この書式を、同じ列の下位行にコピーして使いたいからです。 (セルに直接記述した書式は、相対セル記述した場合、コピーするとアドレスも変化しますが  条件付き書式設定の中の数式記述はコピーしてもアドレスが変わりません) EXCEL2007,EXCEL2010で確認しています。 尚、andで指定している各条件を単一で指定すると正しく動作します。 いろいろとネットで調べましたが、解決できず。 解決方法は他にもあると思います。 実現したい仕様: 隣接した2つのセルに対して Aセルの右隣のセルBセルと仮定して (1)Aの値>Bの値 の時 表示色=緑 (2)Aの値<Bの値 の時 表示色=黄 (3)Aの値>Bの値 且 Bの値=0 の時 表示色=赤 (1)は (OFFSET(INDIRECT(ADDRESS(ROW(),COLUMN())), 0,0) > OFFSET(INDIRECT(ADDRESS(ROW(),COLUMN())), 0, 1) (2)は (OFFSET(INDIRECT(ADDRESS(ROW(),COLUMN())), 0,0) < OFFSET(INDIRECT(ADDRESS(ROW(),COLUMN())), 0, 1) で実現できています。 アドバイスありましたらお願いいたします。

  • 【Excel】数式のコピー(再質問)

    Excel2003を使用しています。 http://personal.okwave.jp/qa3119521.html で、一度質問させていただいているのですが、再質問です。 Sheet1からSheet2へダイレクトにデータ参照させるのは難しいとのことで、作業用シートを経由して参照する方法を教えていただきました。 下記の数式を作業用シート(仮にSheet3)のA1セルに入力後、下方向へコピーすると、転記するべきデータが縦方向に表示されるようですが、A10セル以降が不要なデータが3行ずつ入り込んできているようで、うまく表示されません。  A1 = OFFSET(Sheet1!$B$7,INT((ROW()-1)/6),MOD(ROW()-1,6)) 次に、Sheet2のC7セルに以下の式を貼り付け、右方向と下方向にコピーするとよいとのことでした。  C7 = OFFSET(Sheet3!$A$1,(ROW(A1)-1)*9+MOD(COLUMN(A1)-1,9),0) 数式の中身を少しいじってみたのですが、うまくいきません。 どこを変更すればいいでしょうか?よろしくお願いします。

  • Excelで配列数式を使わずにとびとびの集計をしたいのですが

     ご覧いただきありがとうございます。Excelで、下記のような条件で集計を行いたいと思っています。配列数式を使う方法は考えついたのですが、できれば配列数式を使わず、作業セルもマクロも使わずに普通の関数式で集計したいのです。どなたかおわかりになる方がいらっしゃいましたら、よろしくご教示をお願いいたします。 (条件)  ○4行一組のデータのそれぞれ1行目の数値を足し合わせる。  ○ただし、各組の1行目が空欄の場合は2行目の数値を使う。3行目・4行目は関係なし。  ○データの先頭はA4で、データ数は一定していない。 (考えついた式) {=SUM(IF(MOD(ROW(A4:INDIRECT("A"&ROW()-4)),4)=0,IF(A4:INDIRECT("A"&ROW()-4)>0,A4:INDIRECT("A"&ROW()-4),OFFSET(A4:INDIRECT("A"&ROW()-4),1,0))))}  よろしくお願いいたします。

  • Excelでこの数式は何を表しているのでしょうか

    Excelの初心者です。 今、Excelのある表を改良しているのですが、前任者が作ったExcelファイルの下記数式が何を表しているのかわかりません。 =OFFSET(INDIRECT(ADDRESS(ROW(),COLUMN())),1,2)*D3-F3+G3 『ADDRESS(ROW(),COLUMN())』→ここから を示すことがわかったのですが、、 何をやるのかわかれば、教えていただければと思います。。 よろしくお願いします。

  • R1C1形式。別シート参照時について

    題名が意味不明ですが申し訳ありません。 下記のような数式があります。 こちらのサイトで教えていただいた関数であり、すごく難しくて私もはっきり理解できてはおりませんが、R1C1形式で、セルを参照するようになっているのかな~というところまで、理解できました。 =IF(AND(ISNUMBER(INDEX($D:$D,ROW())),INDEX($D:$D,ROW()+1)=""),SUM(INDIRECT("R"&MATCH("゛",OFFSET(INDIRECT("R1C"&COLUMN($B:$B),FALSE),,,ROW()),-1)&"C"&COLUMN($D:$D)&":R"&ROW()&"C"&COLUMN($D:$D),FALSE)),"") この数式は、’同じシート’の、D列なり、特定のセルなり、、を参照しておりますが、この数式を別のシートのセルに入力して、そこから、このシートを参照させようと思います。 つまり、このシートはもともと’入力用’という名前のシートなのですが、別のシートから、この’入力用’シートの列なりセルなりを参照して値を求めたいのです。 この場合、入力用!というような文字を入れればいいのは知っているのですが、式が複雑すぎるため、どこにどう記入してよいのかがわかりません。自分なりにいろいろやってはみたのですが、REF#となってしまいました。 どこにシート名を入れればうまくいくのか教えていただけないでしょうか。 何卒お願いいたします。

  • 1行おきのセルの合計数式結果が0になってしまいます。エクセル

    1行おきのセルの合計数式結果が0になってしまいます。エクセル データ範囲がE2からU117あり、E列のE2から1行おきに数値E116までを合計するため E118に次の数式を入力しました。 =SUM(IF(MOD(ROW(E2:E117),2)=MOD(ROW(E2),2),E2:E117)) Ctrl+Shift+Enterすると結果が0になってしまいます。 指定の行には数値以外に「-(ハイフン)」や、範囲行に数式が入っていたりするからでしょうか?   E 2   50  ←足したい 3  数式 4   -  ←足したい 5  数式 ・     ・ 117  150  ←足したい 118  数式 119  =SUM(IF(MOD(ROW(E2:E117),2)=MOD(ROW(E2),2),E2:E117))

  • 配列数式って何ですか??

    きのうは、ある列において偶数行だけの合計を求めたいときの計算式を教えてもらいました。 数式は以下のようになるそうです。 {=SUM(IF(MOD(ROW(A1:A10),2)=0,A1:A10,""))} (ありがとうございました。) しかし、そこで出てきた「配列数式」というものが何なのか分かりません。上では{}でくくられた部分だという事はわかるのですが、どうして一番初めと終わりに{}があるのか、たとえば比較として、上において{}がない数式ではどのような計算がされてしまうのでしょうか。 また、{}の位置がSUMの後にあるとき、 =SUM{(IF(MOD(ROW(A1:A10),2)=0,A1:A10,""))} なんかはどんな計算をしていることになるのでしょうか。 配列数式の計算手順がイメージできないのです。 どなたか教えて下さい。

  • EXCELの数式について教えて下さい

    =IF(ISBLANK(H2)," ",IF(H2>1000,3000+6*700+6*(H2-1000),IF(H2>300,3000+7*(H2-300),"3000"))*65%) 上記の数式は正しくありませんか? H2セルに何らかの数値が入っている場合は「IF(H2>1000,3000+6....」以降の計算を行い、その結果が 隣のセル(I2)に出て、空白の場合隣のセルに空白で返す、ということをさせたいのですが、この数式ですとどうしても「#VALUE!」が返ってきてしまいます。 何か良い方法はないでしょうか?

  • ドロップダウンリストで空白の数式セルの非表示化方法

    以下の数式を入力したセルを参照して、氏名をドロップダウンリストから選べるようにしたいと考えております。しかし、下記の方法ですと、空白のセル(参照セルに値が無かった場合に空白""が返されたセル)が空白のままドロップダウンリストに表示されてしまい、目的の氏名をリストから探す時に手間がかかってしまいます。 <想定しているシート>    A       B       C        D 1                           2 3 氏名     物品     帳票氏名  重複判定 4 A川B男   ○○     A川B男     1 5 A川B男   ××                0 6 C田D夫   ▽      C田D夫      1 7 C田D夫   ◆                 0 5 C田D夫   □                 0 ※C4の入力数式: =if(D4=1,A4,"") ※C1セルの入力規則の元の値に =offset(C4,0,0,counta(C4:C1000),1) 上記の方法でも、C1セルのドロップダウンリストには空白を伴って氏名が表示される形となってしまいます。 このように、数式が入力された結果空白になっているセルを、ドロップダウンリストで非表示にする方法はないでしょうか? どうぞよろしくお願い申し上げます。

  • [Excel]入力規則の数式が計算されずエラー表示も出ないようになりま

    [Excel]入力規則の数式が計算されずエラー表示も出ないようになりました お世話になります。(先日もこちらではお世話になりました。ありがとうございます。) EXCEL 2007 を使用しています。 入力規則を使用して数式を実行したいと思い 初めて[入力規則]-[ユーザー設定]-[数式]欄に数式を書いて結果を得ようと してみたのですがエラーとなってしまいました。 数式に間違いがあるらしいエラーだったため何度か数式を見直し・やり直したのですが、エラーでした。 入力規則ではなく普通のセルにこの数式を入れると問題なくほしい値が帰ってくるので、 なぜ入力規則では、エラーが出るのか分かりません。 また、何度も入力規則をやり直しているうちに エラー表示ウィンドウが出なくなりました。出ないだけなら成功したと思うのですが、 エラーウィンドウが出ないだけで、数式は実行されません。 入力規則の全ての値をクリアにしてから再度 設定、式を入力しても エラー表示ウィンドウも値も出てきません。 試しにA1セルに簡単な数式を入力規則で行ってみました。 =1+2+3 とか =SUM(B1:D1) (↑値は6になる) これでもエラーも数式の結果となる値もでません。 ちなみに入力規則のリスト表示など他の機能は問題なく値が帰ってきます。 何か間違っているのでしょうか? ちなみに入力規則に記入したかった数式は↓になります   =IF(INDIRECT("F"&ROW())>0,ROW()-2," ") 数式の説明: ・もしF列のこのセルと同じ行に何か値が入っていれば【行-2】になる値を表示   A3セル 入力規則を適用   F3セル 何か値が入っている   A3セル A3といのは3行目のことだから 3-2=1 となり、計算結果の 1 が表示される ・もしF列のこのセルと同じ行に何も値が入っていなければ空欄のままにする というものです。 お分かりになる方いらっしゃいましたらご教授下さい。 よろしくお願い致します。

専門家に質問してみよう