• 締切済み

エクセル:参照しているセルが削除されても数式の参照セル値を変えない。

こんにちはakira212です。 上手く検索もできず、なかなか見つけることができなかったので。質問させていただきます。 実際とは違いますが、分かりやすく顧客データとして説明させていただきます。 シートAには、100の顧客データが入っています。 それぞれ顧客IDを1から順につけており。 それぞれの顧客の住所や電話番号。名前などが入力されています。 印刷用として、シートBには01~50の顧客情報 シートCには51~100の顧客情報が表示されます。 シートB,シートCの中身は、ほとんど =IF(Sheet1!B4=0,"",Sheet1!B4) このようなIF文でできています。 シートAのデータを変更しようと たとえば、いらない行を消すと =IF(Sheet1!#REF!=0,"",Sheet1!#REF!) と、シートの中身がかわってしまいます。 逆にシートAのなかで、行を追加すると =IF(Sheet1!B4=0,"",Sheet1!B4) =IF(Sheet1!B6=0,"",Sheet1!B6) といった具合に、一行参照してくれないです。 説明がおかしくてもうしわけないのですが。 もし、似たような質問があったり、おわかりになるかたがいれば、教えていただければ幸いです。

みんなの回答

noname#204879
noname#204879
回答No.2

=IF(INDIRECT("Sheet1!b"&ROW())=0,"",INDIRECT("Sheet1!b"&ROW()))

akira212
質問者

お礼

INDIRECTって、こんな使い方もあるんですね。 ありがとうございました。

  • keirika
  • ベストアンサー率42% (279/658)
回答No.1

相対参照を絶対参照に変更すれば対応できると思います B4→$B$4 よければ、一度お試しください

akira212
質問者

お礼

ありがとうございます。 でも、うまくできませんでした。 書き方がおかしいのかもしれないので、もうちょっと試してみますね。

関連するQ&A

  • エクセルの参照セルがずれないようにしたい!

    エクセルの参照セルがずれないようにしたい! sheet1のC列にデータを入力しており、sheet2には A1に =IF(ISERROR(FINDB("○○",sheet1!C1,1))=FALSE,"△△","××") A2に =IF(ISERROR(FINDB("○○",sheet1!C2,1))=FALSE,"△△","××") A3に =IF(ISERROR(FINDB("○○",sheet1!C3,1))=FALSE,"△△","××") ・ ・ ・ ・ ・ ・ ・ ・ と、計算式を入れています。 sheet1で行の挿入をすると、sheet2の計算式が何故かずれてしまいます。「shhet1!C1,1のところの行番号」 これをずれないようにするにはどうしたらよいのでしょうか? =IF(ISERROR(FINDB("○○",Indirect(sheet1!C1),1))=FALSE,"△△","××")としても行番号はずれるし、期待する結果(sheet1のC列に○○という文字があればsheet2にA列に△△と表示したい。)が返ってきません。 説明が下手でわかりづらいとは思いますが、ご回答よろしくお願いします。

  • Excelのセル参照について

    範囲(例:2010/1/1~2010/2/1)を指定して更新すると、日にちと値を外部データから取得し、 ExcelのSheet2のA列に日にち、B列に値を表示しています。 データは月単位で拾ってきて、Sheet2に表示しています。 たとえば、2010/1/1~2010/2/1とすると、1月のデータを取得してきて、 2010/2/1~2010/3/1とすると、2/1~今日までのデータを取得してきます。 そのSheet2に表示しているB列のデータをSheet1のセルD列にセル参照しているのですが、 たとえば、2010/1/1~2010/2/1までのデータは、Sheet1のセルD1に「=Sheet2!B1」と記入して、以下オートフィルでうまくいくのですが、 2010/2/1~2010/3/1までとすると、2/1から今日までのデータはうまく表示され、 今日以降のデータはSheet2が空白なので、Sheet1で「=Sheet2!#REF!」となってしまい、以降、Sheet2にデータが取得されてもうまくセル参照されません。 Sheet1のD列の式を下記にしても、現象はかわりませんでした。 =If(Sheet2!B1="","",Sheet2!B1) =IF(ISBLANK(Sheet2!B1),"",Sheet2!B1) Sheet2で今日以降のデータが空白でも、Sheet1が「#REF」とならないように、 また、今日以降のデータは取得された際、うまく表示されるようにするのは、 どうしたらよいのでしょうか。

  • エクセルでセルの参照

    見積もり書をエクセルで毎回手打ち(A4を何ページも)をしています。 そこで毎回悩むのが項目を途中で挿入したい場合に毎回全て一つづつ下へずらしています。 なぜならただの項目の羅列ではなく、1ページ分の上下に会社名など項目があるためにただ行を挿入することができません。 そこで考えたのですが別のシート(シートA)に項目を羅列していってそれを記入するシート(シートB)に参照するということです。 やってみたのですがうまく出来ません。 まず、 ・空白の欄には0を表示しないようにする →IFを使って””(空白)を挿入しました。 しかし、試しにシートAに内容を羅列して行を挿入してみたのですがシートBには空白行が挿入されずに数式が1行分飛ばされてしまいます。 =IF(A1="","",A1) =IF(A3="","",A3) =IF(A4="","",A4) となります。(A2に空白挿入) また、相対・絶対参照にしてもダメでした。 構想としてはマクロ(全くわかりませんが)でボタンを押すとシートBに情報が更新されるようなものもできるのかなと。 それならば空白を挿入しても、行を削除しても「更新」ボタンを情報が更新されるから問題ないのかなと。 ちなみに記入内容は、数字、文字両方あります。 よろしくお願いします。

  • Excelセルの参照

    Excelにdataとnという2シートがあります。dataシートのA列3行目~22行目にデータが縦入力されており、以降B列、C列とデータ入力が繰り返されます。 nシートでdataシートの入力値参照のため、あらかじめdataシートの参照リンクを貼っておきたいのですが、nシートのデータは横並びであるせいか、参照リンクをうまくコピーすることができません。 dataセルのA3セルの値をnシートのD1に=data!A3と貼り付けて、W1(=data!A22)まで数式を自動コピーできないでしょうか。また、D2~W2まで=data!B3~=data!B22など参照リンクをコピーで作成できないでしょうか。 よろしくお願いいたします。 横並びに参照する必要があるのですが、

  • エクセルのセル参照で

     A列   B列 C列   1      いちご   =sheet2!A1 2 食堂(1)  ばなな   =sheet2!A2 3      合計    =B1+B2 4      いちご   =sheet2!A3 5 食堂(2)  ばなな   =sheet2!A4 6      合計    =B4+B5        ・        ・        ・ と続くのですが、C列でC1とC2をコピーしてC4・C5に 貼り付けると=sheet2!A4・=sheet2!A5 となってしまいます。 C列が1000行ありますので、これを一括で 入れられる計算式はありますでしょうか? 食堂(3)からも、=sheet2!A5、=sheet2!A6と規則的に 続いていきます。 よろしくお願いいたします。

  • エクセルの参照行の挿入による追加と行の削除に対応できる関数を教えてくだ

    エクセルの参照行の挿入による追加と行の削除に対応できる関数を教えてください。 sheet1を印刷用ページ、sheet2をデータ用ページとしています。 sheet2は頻繁に追加や削除をするのですが、単純な =sheet1!A1 ですと、 sheet2に追加してもsheet1に追加されたデータが反映されない。 sheet2の行を1つでも削除するとsheet1のその行は#REF!というエラーに。 という状態です。下記内容に対応できる関数はあるでしょうか。 sheet2がこのような時 行  A あ B い C う D え sheet2Dに「お」を挿入すると sheet1がこのようになるように。 行  A あ B い C う D お E え また、B行を削除したらsheet1が 行  A あ B う C え となるように。 そして、可能ならばコピーのドラッグで複製できるようにしたいのですが・・・ 条件が色々ありますが、よろしくお願いします。

  • Excelでのセルの参照について

    Excel2000を使っています。 例えば Sheet2のA1に=IF(ISBLANK(Sheet1!A1),"",VLOOKUP(Sheet1!A1,Sheet3!$A$1:$B$100,2,0)) を入れてあります。 これをA列奇数行だけにコピーすると、検索するセルも参照するセルも奇数行になってしまいます。 少数だったら行数を直せばよいのですが、たくさんあって手に負えません。 何かいい方法はありませんか? 助けてください。

  • Excel 参照行の削除でも可変しない関数

    Excel 参照行の削除でも可変しない関数 同じ形式で、数シートにわたり入力された文字をまとめた表を別のシート(シート1)に作成しています。 シート2以降の参照元データーは一定のルールで入力されていますが、削除や追加が頻繁に行われます。削除や追加の度にシート1B列・C列の関数が参照する行数が追随して可変しないようにしたいのですが可能でしょうか。 具体的には、シート2において6行目から9行目を削除した際に、シート1では「B2=みかん」/「C2=イチゴ」と繰り上がり、B行・C行は常に指定した行を参照するようにしたいと思っています。 <シート1>  A B     C 1 タイトル りんご  ばなな (← 3行目) 2 タイトル かき   なし   (← 8行目) 3 タイトル みかん イチゴ (←13行目) ・B列:「=IF(ISERROR('Sheet2'!$B3:$B3),"",'Sheet2'!$B3:$B3)」 ・C列:「=IF(ISERROR('Sheet2'!$D3:$D3),"",'Sheet2'!$D3:$D3)」 <シート2、3…> 参照したいセルは、B列とD列の3行目、8行目、13行目…と一定の間隔で入力されており、全てのシートにおいて同じ箇所に入力されています。 シートごとにカテゴリーの個数は(図A1:E4までを1カテゴリーと考えています)異なり、作業の度にカテゴリーの追加や削除が頻繁にあります。 うまく説明できているか不安ですが、良い方法を教えてください。

  • 【エクセル関数】参照するセル

    エクセル関数で教えていただきたいです。 セル参照で、参照するセルを、ある法則道理に参照していきたいのです。 例えば、シートA,シートB、とあったときに、 シートBのC3に → シートAのC3を参照、 シートBのC6に → シートAのC4を参照、 シートBのC9に → シートAのC5を参照、 シートBのC12に → シートAのC6を参照・・・・ ・・・・・・・・・・・ という風に、参照元の列は1行づつ増やしていきたいのですが、 それをシートBでは、3行ごとに表示したいのです。 自分でいろいろ試してみましたが、うまくできません。 こういったことは、関数でできるのでしょうか? もし、あれば、教えていただけると助かります。 よろしくお願いします。

  • エクセルでのセルの参照

    sheet1にデータが入力されています。 そしてsheet2ではそのsheet1に入っているデータを 抽出するsheetとして使用しています。 そこで、sheet2にある一つのセルに3と入力したら sheet1で使用しているA3、B3、C3、D3・・・ のセルのデータを、 4と入力したら A4、B4、C4、D4・・・ のセルのデータをsheet2のそれぞれのセルに引っぱってこれるように 関数を書きたいと考えています。 INDIRECTが機能的に近いのかなと考え、式を試してみたのですが なかなかうまくいきません。 また、4と入力したときにA5、B5、C5、D5を参照するというように 数値をいじったりできるであればそれも教えていただきたいです。 よろしくお願いいたします。

専門家に質問してみよう