• ベストアンサー
  • 困ってます

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
  • 閲覧数784
  • ありがとう数1

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

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

「$D:$D」など、セルを参照している部分の前に「入力用!」を入れたらいいと思います。 簡単な方法があります。数式が複雑なのでうまくいくかどうか自信はありませんが、この式が入力されているセルを選択して切り取り、別のシートの数式を入力したいセルに貼り付けると必要なところに自動的に「入力用!」が入ります。bookが違ってもOKです。 切り取り・貼り付けです。コピーではだめです。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ありがとうございました。今回は、この複雑な数式をずっと眺めていたらあるときひらめいて、解決できました。 教えていただいた方法は次回利用してみます。ありがとうございます。

関連するQ&A

  • R1C1参照形式を分かっていませんので伺います。

    参照対象のセルを含む『列』の全体を範囲指定したい場合には、 R1C1参照形式で"column():column()"の方式を使わざるを得ないのでしょうか?

  • R1C1形式からA1形式に変換したい、または...

     次の式をもっとスマートにする方法はないでしょうか。 =INDIRECT(MID("ABCDEFGHIJKLMNOPQRSTUVWXYZ",COLUMN()-4,1)&ROW()) (現在のセルから左に4番目のセルの値を返す) column()の返値がR1C1形式のCの数値で返ってしまうため、indirect()がうまく使えないのです。そこで、columnの値をABCに変換しました。一応使えるのですが、ながななしくなるし、AA, ABとかまで対応できるようにするにはもっと複雑にしなければならないのです。お知恵をお貸し下さい。

  • EXCEL関数使用で結果が理解できません

    OS:WindowsXP EXCEL2000 以下の表が既に作成されています。 行 :O(英文字オーです) ------------------ 列 6 | 96 7 |216 8 |216 9 |185 10 |(空欄) 11 |(空欄) ここで、セルR6に以下の式が入力されています。 =INDIRECT("R"&MAX(IF(ISNUMBER(O6:O11),ROW(O6:O11)))&"C"&COLUMN(O6:O11),FALSE) セルR6には185が表示されているため、空欄でない最後の行の数値を 出力させる式のようなのですが、よく理解できません。 ISNUMBER(O6:O11)は全部数値だった場合にTrueになるのですか? ROW(O6:O11)は6でした。 IF(ISNUMBER(O6:O11),ROW(O6:O11))はFALSEです。 MAX(IF(ISNUMBER(O6:O11),ROW(O6:O11)))は0です。 COLUMN(O6:O11)は15です。 どなたか知恵をお貸しください。

  • エクセル2000の機能について質問

    エクセル2000を使っているのですが、聞きたい事があって投稿しました。 質問の説明が上手く出来ないのですが、例えば… A1:3 B1: C1:6 D1:5 E1:  のように、セルに数値があります。 これを左から読み取り、最終的に一番右端に入力されている数値だけを抜き取り、別のセル(例えばG1)に表示させるみたいなことって出来るんですか? 補足として入力されていなければ読み込まない。 知り合いに聞いたら、 >結果を表示したいセルに >=INDIRECT("R"&MAX(IF(ISNUMBER(セル番号:セル番号),ROW(セル番号:セル番号)))&"C"&COLUMN( セル番号,セル番号),FALSE)と入力し >{Ctrl}+{Shift}+{Enter}で確定し配列数式とする。 >確定後、数式は、{ }でくくられ、配列数式となる。 >手動で{ }を入力してはダメ。 >セル番号のとこは計算したい選択範囲を入力。 >A1からA5のあいだ入力された右端の数値をA7に出したいばあいA7に >=INDIRECT("R"&MAX(IF(ISNUMBER(A1:A5),ROW(A1:A5)))&"C"&COLUMN(A1:A5),FALSE) >を入力 って言われました。 やってみたけど、出来ませんでした。 誰か教えてくれませんか? お願いします。

  • 別シートの同じセル番地を参照したい

    質問させていただきます。 同じブック内で、別シートの同じセル番地の値を参照する表を作りたいと思っているます。 イメージとしては、A1にターゲットのシート名が記入されいるとして、 =INDIRECT(ADDRESS(COLUMN(),ROW(),4,TRUE,$A$1)) の様な関数で出来ればと思っているのですが、うまくいきません。 =INDIRECT($A$1&"!B2")等も試してみましたが、コピー&ペーストB2の部分が相対的に変化してくれないので、困っています。 良い方法があれば教えていただきたいので、よろしくお願いいたします。

  • 素朴な疑問:R1C1参照形式をこよなく愛する理由?

    私は“R1C1参照形式”オプションを使用した経験が全くありません。 しかし、このオプションは、昔から、いまだに、廃止されることなく存在し続けています。 そこで、単なる興味本位からですが、専ら此れを使用している人っていらっしゃるのでしょうか? そして、このオプションを最初から使い続けている理由は何なのでしょうか? ちなみに、VLOOKUP、OFFSET、INDEX、ADDRESS等の関数では列番号を参照させる必要があるけど、私は何等困ったことがありません。

  • シートの順番による参照

    エクセルに「Monday」から「Sunday」まで7枚のシートがあったとして、別シートのA1に「1」とあれば、1枚目の「Monday」のシートのB1の数字を、「5」とあれば5枚目の「Friday」のB1の数字を参照するようにB1に数式を入れたいのですが、それを可能にする数式はあるでしょうか? VBAの場合はシート名に関わらずSheet(x)でx枚目のシートを参照するようにできますが、同様の事を数式でできるのでしょうか? 別のシートにMondayからSundayまでのリストを作っておいてIndex関数でシート名を呼び出してIndirect関数を使う方法もあるのでしょうが、別リスト等を使わないで完結する方法を教えてください。

  • 自身のセル番地の列の値を使って自動計算する

    以前こちらで質問させていただきました。 http://okwave.jp/qa/q7097307.html 回答をいただき、希望の値を得られるようになりました。 そこから数式を汎用性のあるものにしようと現在は以下のような式になっています。 E48に入っている数式 =IF(INDIRECT("$D"&ROW())="","",INDEX(INDIRECT("E$1:E$"&$B$27),MATCH(LEFT(INDIRECT("$D"&ROW()),FIND("/",INDIRECT("$D"&ROW()))-1)*1,INDIRECT("D$1:D$"&$B$27),0))/INDEX(INDIRECT("E$1:E$"&$B$27),MATCH(MID(INDIRECT("$D"&ROW()),FIND("/",INDIRECT("$D"&ROW()))+1,10)*1,INDIRECT("D$1:D$"&$B$27),0))) データの終わりのセル番地をB27に記載 この式ですと他の列にコピーして使用できません。 そこでINDIRECT("E$1:E$"&$B$27)この部分のE$1という列を指定している部分を 数式が入っている自身の列としたいと考えました。 自身の列をアルファベットで表す数式を入れることも考えましたが、かなり長くなってしまいます。 =INDIRECT("R"&COLUMN()&"C2",0)のようにR1C1形式で式を書いてみましたが、範囲指定のところで躓きました。 どのように式を書けば、スマートになるのかお教え願いたいです。 よろしくお願いします。

  • Excel2010にて別シートを参照したい

    わかった気になっていたのですがまた詰まってしまい、付近に聞ける人がいないので質問です。 Excelのシート1に名前と郵便番号と住所を書いて、誰がどこに住んでて郵便番号が何番かすぐ見れるようにしたいと思っています。 しかし名前と住所は一人一人違っても郵便番号は被ることがあるので、別シート(シート2)にまとめて書いて、住所を書いたセルを読み取ってもらい、自動で郵便番号が出るようにしたいと思っています。 =IF(C2="","",  IF(OR(ISNUMBER(FIND(Sheet2!$B$2:$G$2,C2))),INDIRECT("Sheet2!$A$2"),  IF(OR(ISNUMBER(FIND(Sheet2!$B$3:$G$3,C2))),INDIRECT("Sheet2!$A$3"),  IF・・・・ ※1つの郵便番号に対し複数の住所を参照させようとしているのは、人によって「字」が書かれていたり「の」と「ノ」の違いをそのまま住所に入力しても判別できるようにしたいためです。 ↑は郵便番号を表示させたいところに書いているのですが、思ったような結果が出てくれません。 どうすれば改善できるでしょうか?ご指導よろしくお願いします。m(_ _)m

  • マクロ記録実行で実行時エラー'1004'発生

    excel2010 B2セルに文字列が入っています。 文字と数値の混載です。 数値の位置は不定です。 L2のセルで、下記判定をします。 B2セルの文字列(約20文字程度)の左から4番目がドだったら、数値を抽出、ド以外だったら空白。 WEBで計算式があったので、それをそのままマクロの記録としました。 Range("L2").Select ActiveCell.FormulaR1C1 = _ "=IF(RIGHT(LEFT(RC[-10],4),1)=""ド"",MID(RC[-10],1/MAX(INDEX(ISNUMBER(--MID(RC[-10],ROW(INDIRECT(""1:""&LEN(RC[-10]))),1))/ROW(INDIRECT(""1:""&LEN(RC[-10]))),)),MAX(INDEX(ISNUMBER(--MID(RC[-10],ROW(INDIRECT(""1:""&LEN(RC[-10]))),1))*ROW(INDIRECT(""1:""&LEN(RC[-10]))),))-1/MAX(INDEX(ISNUMBER(--MID(RC[-10],ROW(INDIRECT(""1:""&LEN(RC[-10]))),1))/ROW(INDIRECT(""1:""&LEN(R" & _ "),))+1)*1,"""")" Range("L3").Select で記録されます。 上記を、マクロの実行すると実行時エラー'1004' アプリケーション定義またはオブジェクト定義のエラーです。 と表示されます。 何がおかしいのでしょうか? シートで、マクロでなく、L2セルでF2リターンとする分には、数値が表示されます。 下記は、L2の中身です =IF(RIGHT(LEFT(B2,4),1)="ド",MID(B2,1/MAX(INDEX(ISNUMBER(--MID(B2,ROW(INDIRECT("1:"&LEN(B2))),1))/ROW(INDIRECT("1:"&LEN(B2))),)),MAX(INDEX(ISNUMBER(--MID(B2,ROW(INDIRECT("1:"&LEN(B2))),1))*ROW(INDIRECT("1:"&LEN(B2))),))-1/MAX(INDEX(ISNUMBER(--MID(B2,ROW(INDIRECT("1:"&LEN(B2))),1))/ROW(INDIRECT("1:"&LEN(B2))),))+1)*1,"")