[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『セルの参照地の固定』(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番目にしたいのですが、 どのようにすればよろしいでしょうか?。
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列を削除すればいいだけのようだけど、 削除できない理由が あるんでしょうね。 (まさ)
ですから最初に >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)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.