[[20040428190815]] 『セルの参照地の固定』(hizakatsu) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『セルの参照地の固定』(hizakatsu)

こんばんは、hizakatsuです。
この間はどうもありがとうございました。
早速ですが、別シートのデータを使用して名簿の一覧表を作っているのですが、
別シートのデータを列削除してしまいますと、一覧表のデータがエラー表示になってしまい、このままでは追加や削除が出来ない状態になっています。
$の絶対参照も使ってみたのですが、同じ表示になってしまいます。
このような場合どうすればよろしいのでしょうか?
(希望としては、一覧表のセル指定はそのシートのその行列を指定できるようにしたいのです。)
それではお返事お願いします。
[エクセルのバージョン] Excel2000


 列削除では#REF!のエラーが出ると思います。
 出ないようにするためには、参照している列は削除してはいけません。
 入力してあるセルを消す場合には削除ではなく、DELで消してください。
 しかし、追加が出来ないということは無いと思われます。
 どのような場合にどうしたいのかを具体的に示された方が回答が出やすいかと思います。
 (まさ)


お返事ありがとうございます。
ということは、列削除は使えないということですか。
追加は出来たのですが、その場合順番を自動的に繰り上げるようにして
列を詰めたいときなどはどのようにすればよろしいのでしょうか?


 例えばこんな場合でしょうか?

     A      B      C      D
 ┌─────┬─────┬──────┬──────┐
 1│=B1*D1=12 │    3 │     5 │     4 │
 ├─────┼─────┼──────┼──────┤
 2│=B2*D2=24 │    3 │     5 │     8 │
 ├─────┼─────┼──────┼──────┤
 3│     │     │      │      │
 ├─────┼─────┼──────┼──────┤

 仮にC列を消す場合、参照してないのでエラーは出ません。
 D列をB列とC列の間に持って行きたい場合には
 D列を選択して、切り取り→C列を右クリック→切り取ったセルの挿入でどうでしょうか。
 (まさ)


まさ様、お返事ありがとうございます。
実用例として

 sheet1が
 110 	指導員	 りんご
 112 	事務職員	 みかん
 契約	事務職員	 バナナ
sheet2が
 番号                	氏名
 =IF(ISBLANK(sheet1!A1),"",sheet1!A1) =IF(ISBLANK(sheet1!c1),"",sheet1!c1)
 =IF(ISBLANK(sheet1!A2),"",sheet1!A2) =IF(ISBLANK(sheet1!c2),"",sheet1!c2)
 =IF(ISBLANK(sheet1!A3),"",sheet1!A3) =IF(ISBLANK(sheet1!c3),"",sheet1!c3)
のような場合で
2番目を消して、3番目を2番目にしたいのですが、
どのようにすればよろしいでしょうか?。


 sheet1                 sheet2(こちらは、hizakatsuさんの式)
     A     B        C         A      B        C
 ┌────┬─────┬─────┐  ┌────┬─────┬─────┐
 1│  110 │指導員  │りんご  │  1│ 番号  │     │ 氏名  │
 ├────┼─────┼─────┤  ├────┼─────┼─────┤
 2│  112 │事務職員 │みかん  │  2│  110 │     │りんご  │
 ├────┼─────┼─────┤  ├────┼─────┼─────┤
 3│契約  │事務職員 │バナナ  │  3│  112 │     │みかん  │
 ├────┼─────┼─────┤  ├────┼─────┼─────┤
                     4│契約  │     │バナナ  │
 こういう場合にsheet2のB列を削除してC列のデーターを左に詰めるってことですか?
 これなら普通にsheet2のB列を選択して削除で出来るはずですけど・・・

 sheet1                 sheet2(こちらは、hizakatsuさんの式)

     A     B        C         A      B        C
 ┌────┬─────┬─────┐  ┌────┬─────┬─────┐
 1│  110 │指導員  │りんご  │  1│ 番号  │ 氏名  │     │
 ├────┼─────┼─────┤  ├────┼─────┼─────┤
 2│  112 │事務職員 │みかん  │  2│  110 │りんご  │     │
 ├────┼─────┼─────┤  ├────┼─────┼─────┤
 3│契約  │事務職員 │バナナ  │  3│  112 │みかん  │     │
 ├────┼─────┼─────┤  ├────┼─────┼─────┤
                     4│契約  │バナナ  │     │
 それとも、こちらの場合にsheet1のB列を削除してC列のデーターを左に詰めるってことですか?
  こちらも普通にsheet1のB列を選択して削除で出来るはずですけど・・・

 申し訳ないですけど、質問されている意味が私には理解できないみたいです(^_^A;
 (まさ)


 もしかしてこういうことではないでしょうか
Sheet2A1から入力する式ですが・・・。Sheet2の必要範囲へフィルドラッグしてSheet1の
適当な行、列を削除してみて。

=IF(OFFSET(INDIRECT("Sheet1!A1"),ROW()-1,COLUMN()-1)="","",OFFSET(INDIRECT("Sheet1!A1"),ROW()-1,COLUMN()-1))

(KAMIYA)


 KAMIYAさんの式を入れてみて、sheet1のB列を削除して質問の意味を
 納得しました(^_^A;
 hizakatsuさんのSheet2のB列にも【=IF(ISBLANK(sheet1!B1),"",sheet1!B1)】などの
 式があって、sheet1のB列を削除したときに#REF!にならないようにするってことですね^^
 でもこのときsheet2のB列を削除すればいいだけのようだけど、 削除できない理由が
 あるんでしょうね。
 (まさ)


KAMIYAさん、まささんどうもありがとうございます。
まさにKAMIYAさんがいっていたような式でした。
私の言い方が間違っていたようで申し訳ありませんでした。
さて、KAMIYAさんの式を使って入力してみたのですが、
行の削除はうまくいったのですが、
表示されるのが、なぜか指定セルの4つ下の数値が表示されるのですが、
これはどのようなことでしょうか?
もしよろしければお返事お願いします。
(削除は行のみで結構です)
あと、まささんの言われました削除できない理由は、sheet2が名簿欄の印刷ページとなっていますので人数の増減に対応できるようにしたかったのです。
それではお返事お願いします。
(hizakatsu)


 ですから最初に
 >Sheet2A1から入力する式ですが・・・。
と注釈を書いてあります。
 
この式
=IF(OFFSET(INDIRECT("Sheet1!A1"),ROW()-1,COLUMN()-1)="","",OFFSET(INDIRECT("Sheet1!A1"),ROW()-1,COLUMN()-1))
 
任意のシートのA1セルへ入力した時にSheet1A1を参照する式です。
A5あたりから入力すると、Sheet1A5を参照するわけです。
 
参照位置をシフトする場合は、ROW関数、COLUMN関数に引数として
基点のセル番地を与えておくのが簡単でしょうか。Sheet1のリストが
A1〜はじまっている場合には次のようにします。

=IF(OFFSET(INDIRECT("Sheet1!A1"),ROW(A1)-1,COLUMN(A1)-1)="","",OFFSET(INDIRECT("Sheet1!A1"),ROW(A1)-1,COLUMN(A1)-1))

 A2からはじまっている場合にはROW関数,COLUMN関数の
それぞれの「A1」を「A2」へ書き直すことで対処します。

=IF(OFFSET(INDIRECT("Sheet1!A1"),ROW(A2)-1,COLUMN(A2)-1)="","",OFFSET(INDIRECT("Sheet1!A1"),ROW(A2)-1,COLUMN(A2)-1))

 また逆にINDIRECT関数の「A1」を「A2」へ書き直すことでも対処できます。

=IF(OFFSET(INDIRECT("Sheet1!A2"),ROW(A1)-1,COLUMN(A1)-1)="","",OFFSET(INDIRECT("Sheet1!A2"),ROW(A1)-1,COLUMN(A1)-1))

(KAMIYA)


KAMIYA様、ありがとうございます。
かなりいい感じの職員名簿が出来上がりました。
今回はどうもありがとうございました。


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.