Excel関数ifを使用して前年度比を出す方法について

このQ&Aのポイント
  • Excelの関数『if』を使用して、参照元が空白なら空白とし、数値が入っていれば前年度比を出す方法について質問です。
  • 売上集計表を年度ごとに分けたシートで管理しており、前年度比を出したいシートがあります。
  • 現在、参照元が空白であるのに数値が返ってきてしまう問題が発生しており、正しい数式や対処策を教えていただきたいです。
回答を見る
  • ベストアンサー

Excel関数について

if関数をいれて、参照元が空白なら空白とし、 参照元に数値が入っていれば前年度比を出すようにしたいです。 参照元が空白であるのに、数値が返ってくるため、 ご質問させていただきます🙇🏻‍♀️ まず、シートの構成は以下の通りとなっています。 ・年度ごとに分けた売上集計表と前年度比を出したいシートがあります。 ①シート名:2022年度 ②シート名:2021年度 ③シート名:前年度比 ・フォーマットは全て同じの為、前年度比を出すための参照したいセルはそれぞれシートは別ですが、同じセルとなります。 また、前年度比を出したいセルも同じセルです。 ・前年度比を出すためのシートは、年度を可変とするため、シート名をR1セルとR2セルへ入れるようにしています。 R1セル:前年度のシート名を入力 R2セル:今年度のシート名を入力 そこで、シート①のD6セルに売上を入力したら、 シート③のD6セルへ前年度比を表示させたく、 以下の数式を入力しましたが、参照元が空白であるのに、 数値が返ってきてしまいました。 =if("'"&$R$2&"'!D"&ROW(D6)="","",INDIRECT("'"& R$2&"'!D"&ROW(D6)-INDIRECT("'"& R$1&"'!D"&ROW(D6)),"") 数式の誤っている点や対処策等ご教示いただければ幸いです! よろしくお願いいたします。

noname#254533
noname#254533

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

  • ベストアンサー
回答No.1

IFの最初に渡す部分もINDIRECTを使わないと、単なる文字列として判断されるので、常に空白以外と判断されるのではないでしょうか。 あと、INDIRECTを使っている部分の括弧の対応が間違っているように思います。

noname#254533
質問者

お礼

ifに渡す部分にINDIRECTを入れたところ、思った通りの数値が返ってきました! ありがとうございます🙇🏻‍♀️🙇🏻‍♀️

その他の回答 (2)

  • m_and_dmp
  • ベストアンサー率54% (974/1797)
回答No.3

=if("'"&$R$2&"'!D"&ROW(D6)="","",INDIRECT("'"& R$2&"'!D"&ROW(D6)-INDIRECT("'"& R$1&"'!D"&ROW(D6)),"") これでエラーにならなかったのですか? 最初のINDIRECT に閉じカッコがない。 末尾の「,"") 」は何を期待しているのですか。 =IF(真の場合,△,偽の場合,□) なのに、「,"")」の部分が余分と思われます。 次のようになると思います。 =if("'"&$R$2&"'!D"&ROW(D6)="","",INDIRECT("'"& R$2&"'!D"&ROW(D6))-INDIRECT("'"& R$1&"'!D"&ROW(D6))) もし、INDIRECT()-INDIRECT() が次のような場合、 前者が空白、後者が空白の場合、0-0=0 となり0が返ってきます。 前者が空白、後者が1の場合、0-1=-1 となり-1が返ってきます。 前者が1、後者が空白の場合、1-0=-1となり-1が返ってきます。 空白の場合"" を返すには、IF をもう一つ入れ子にする必要があります。

  • mimazoku_2
  • ベストアンサー率20% (1847/8848)
回答No.2

シート3D6に以下のようにする。 =if(2022年度!d6="","",2022年度!D6)

関連するQ&A

  • 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#となってしまいました。 どこにシート名を入れればうまくいくのか教えていただけないでしょうか。 何卒お願いいたします。

  • ROW関数について

    先日質問をしたのですが、理解が足りないようなので質問させて頂きます。 ROW関数はセルを入力したそのセルの行番号を返すものだと思うのですが、例えば =INDEX(シート1!C2:シート1!HR2,(ROW()-3)*3+1,) このような数式をワークシート2のD3のセルに入れると、ROW()は3と解釈されるので、 ・範囲はData!のワークシートのC2からHR2まで、 ・(3-3)*1+1となるので、その範囲内の1番であるData!D2セルを参照するのだと思うのですが、何か間違っているでしょうか? この際に、ROW()に参照されるセルは、もしかしてシート1のものなのでしょうか? 宜しくお願いしますm(_ _)m

  • エクセルの関数について。

    エクセルの関数。 Sheet1の作業列1のA2セルに =IF(COUNTA(Sheet2!2:2)=0,"",IF(Sheet2!A2="",A1,Sheet2!A2)) →数式1とする 作業列2のB2セルに =IF(A2=$D$2,ROW(),"") →数式2とする という数式を入れA2・B2セルを範囲指定 → B2セルのフィルハンドルで下へコピーしておきます。 (Sheet2の行数以上コピーしておく) そしてE2セルに =IF(COUNT($B:$B)<ROW(A1),"",INDEX(Sheet2!B:B,SMALL($B:$B,ROW(A1)))&"") →数式3とする という数式を入れオートフィルで列方向・行方向にコピーする。 教えて頂きたいことは、数式1、数式2、数式3が何を意味しているのか。 と、この数式を使って、表を作成したのですが、ある特定の数字(コード、D2セルに入力)を入力しても反応してくれない。 (E2~H2まで、空白セルの状態になります。) (sheet2は約1200行あります。) 教えて頂けないでしょうか?

  • EXCEL2003

    セルに入力したシート名と一致する ワークシートのセルを参照し値を取得したいと思っています。  例えば  シート名「A08」のセルA1に3という数値  シート名「A09」のセルA1に4という数値があるとします。  別シートのセルA1に「A08」というシート名の値がある場合、  B2のセルに3と入力するようにするには? どのようにすればよろしいでしょうか? 教えてください。

  • Excel関数について

    セルD6の合計がF6の数値と同じになるようにセルB3に数式を入力したいのですが、7行目が数式となります。尚、F6の値は都度手入力で変更されます。循環機能も試みましたが他の数式も含め影響を及ぼしました。B3に入力する関数もしくは何か良い解決策はあるでしょうかよろしくお願いします。

  • Excel2007 参照先セルが結合済み

    よろしくお願いいたします。 現在は 参照先がR1C1~R3C1を結合したセルの場合、 参照元(表示セル)の数式は"=[参照先シート]!R1C1:R3C1"となります。 自分の記憶ですと、結合セルを参照した場合、 一番左上のセルのみを参照し 参照元(表示セル)の数式が"=[参照先シート]!R1C1"となる こともあったかと思います。 もしこれら2つを使い分ける方法があれば、 教えていただけたら幸いです。

  • Excel2010 関数について

    Excel2010を使用してます。 1行の中にアルファベットを入力するセルと数値を入力するセルが交互に並んでいます。 その中で、例えばAと入力されたセルの左隣のセルの数値の合計を出したい場合、どのような数式を使用すればいいのでしょうか。 自分なりに調べてみましたが、Aと入力されたセルの左隣のセルという指定の仕方がわかりませんでした。アルファベットと数値のセルは交互に並び全部で60列ぐらいあるので、その中でAと入力されたセルの左の数値の合計を出したいのですが、どなたか教えてください。      A  B  C  D   E  ・・・   1 1 A 3 A 1 B 2 C 1 A ・・・   2 2 B 1 A 3 A 1 C 1 B ・・・   ・   ・   ・ というような表になっています。 数値とアルファベットはそれぞれ1つずつのセルに入力されています。 よろしくお願いします。

  • エクセル関数で質問です

    こんにちは。いつもお世話になっております。 エクセルの関数で質問があります。 毎月の集計表を作っており、シート名が1~31、 ●月合計・●月合計2 とあります。 ●月合計のシートには日付が縦に入っており、 A4 ●月1日 A5 ●月2日・・・というように 続いております。 B4のセルには、 1のシートの数値、 B5のセルには  2のシートの数値・・・というように、 各シートのデータを参照したいと思っていますが、 下へオートフィルで数式をコピーして参照できるように するにはどうしたらいいでしょうか? ROW関数などを使ってみたのですが、どうもうまくいかず 困っています。 一列だけでなく、複数列あるため、手作業で一つ一つ 参照するのは、非常に困難なため、お知恵を拝借できれば幸いです。 よろしくお願いいたします。 

  • シート参照で変数を使いたい(EXCEL)

    通常、Excelで別シートのセルを参照する時は「'シート名'!B3」といった数式になりますが、この「シート名」をユーザーに入力してもらうような仕組みを作りたいと考えています。 ・あるシートのA3(例)にシート名を入力すると、B4セルに入力されたシートのB3セルの内容が表示される このようなこと、可能でしょうか?

  • -EXCEL- 突然、関数が無効になる・・・・!????

    突然、セルの中の数式があるにもかかわらず、全く計算がされていない。式は間違いなくあってるんですけど。ちなみにまだ計算されていない関数のセルをダブルクリックして、Enterキーを押すとそこでやっと計算がされるような状態です。自分でやっていて、突然この状態になったので非常に困ってます。さらに、その計算をし終わったセルをドラッグしても数式はきちんとセルに応じて変化していくのですが、表示されている数値は元のセルの数値と同じになってしまいます。どなたか教えてください。何ででしょう・・・ あ~、数時間前の状態に戻りたい・・・ 付け加えると、かなりの数式が何重にも重ねて使ってあります。すべて簡単な数式ですが・・・

専門家に質問してみよう