• ベストアンサー

エクセル 特定の文字列から範囲を指定

エクセル 名前定義の範囲について質問です。 始まり・終わりの行・列を示す特定の文字列を設定し、 それを元に自動で範囲を変化させるようなことはできませんでしょうか。 例えば、 B1:列ここから D1:列ここまで A3:行ここから A6:行ここまで と書かれていた場合、 名前定義の範囲が自動で「B3:D6」となるような方法を探しています。 なお、 ・列を指定する文字列は必ず1行目に ・行を指定する文字列は必ずA列目に あるという想定です。 極力マクロを使用しない方法で、有効なものがございましたら ご指導のほどよろしくお願いします。

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

  • ベストアンサー
  • izmlz
  • ベストアンサー率55% (67/120)
回答No.2

=INDEX($1:$65536,MATCH("ここから",$A:$A,0),MATCH("ここから",$1:$1,0)):INDEX($1:$65536,MATCH("ここまで",$A:$A,0),MATCH("ここまで",$1:$1,0)) 参照範囲を↑にします。

参考URL:
http://www2.odn.ne.jp/excel/waza/name.html
sekarasika
質問者

お礼

お礼が遅くなってしまい申し訳ございません。 INDEX関数を使う場合、やはり初めに 「$1:$65536」のように範囲を指定する必要が出てしまいますよね。。 でも、この方法でも確かに実現できますね。 補足書き込みも含め、ご丁寧にありがとうございました!

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (3)

  • izmlz
  • ベストアンサー率55% (67/120)
回答No.4

あたまに行/列をつけるのを忘れていました。↓が修正後の数式(名前定義の参照範囲に入力する数式)です。 =INDEX($1:$65536,MATCH("行ここから",$A:$A,0),MATCH("列ここから",$1:$1,0)):INDEX($1:$65536,MATCH("行ここまで",$A:$A,0),MATCH("列ここまで",$1:$1,0))

全文を見る
すると、全ての回答が全文表示されます。
noname#204879
noname#204879
回答No.3

=ADDRESS(MATCH("行ここから",A:A,0),MATCH("列ここから",1:1,0),4)&":"&ADDRESS(MATCH("行ここまで",A:A,0),MATCH("列ここまで",1:1,0),4)

sekarasika
質問者

お礼

お礼が遅くなってしまい申し訳ございません。 ADDRESS関数の場合、文字列を返してしまうようなので、 冒頭にINDIRECT関数をつければこの方法でも実現できそうですね。 どうもありがとうございました!

全文を見る
すると、全ての回答が全文表示されます。
  • keirika
  • ベストアンサー率42% (279/658)
回答No.1

シート名をSheet1とします。 名前定義の範囲として以下を指定してください。 =OFFSET(Sheet1!$A$1,MATCH("ここから",Sheet1!$A:$A,0)-1,MATCH("ここから",Sheet1!$1:$1,0)-1,MATCH("ここまで",Sheet1!$A:$A,0)-MATCH("ここから",Sheet1!$A:$A,0)+1,MATCH("ここまで",Sheet1!$1:$1,0)-MATCH("ここから",Sheet1!$1:$1,0)+1)

sekarasika
質問者

お礼

お礼が遅くなってしまい申し訳ございません。 なるほど、OFFSET関数を使えば、 数式が多少長くなりますが実現できますね。 どうもありがとうございました!

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセル 名前定義の範囲について

    エクセル 名前定義の範囲について質問です。 始まり・終わりの行を示す特定の文字列を設定し、 それを元に自動で範囲の行数を変化させるようなことはできませんでしょうか。 例)A列に、行範囲を示す文字列を記述。  B列以降が実際の範囲となる。  A 1 この行から 2  3  4  5  6 この行まで 7 というように記述されていた場合、 「この行から」「この行まで」という文字列の位置を元に、 名前定義の範囲が自動で「B1:C6」となるような方法を探しています。 「この行から」の位置をA3に変更した場合、 名前定義された範囲も、自動で「B3:C6」に変化して欲しいのです。 ただし、文字列を元に変化するのは行だけで、列の範囲は固定で構いません。 極力マクロを使用しない方法で、有効なものがございましたら ご指導のほどよろしくお願いします。

  • EXCEL 2つの決まった文字列の間を自動的に範囲選択

    下のような表があるとします。   A  B  C  D  E  F 1 いか 2 たこ ・  ・ ・ 8 たい 9 ひらめ この中からA行にある”たこ”(A2)という文字列を検索して、そこから”たい”(A8)という文字列のある右5行のF行まで(A2:F8)を自動的に範囲選択するような、決まった行にある決まった2つの文字列の間+決まった行までを範囲選択するマクロを作りたいのですが上手く行きません。 何卒、お知恵をお貸し下さい。

  • EXCEL 行と列を指定して、範囲指定する方法

    EXCELの使い方を教えてください。 関数で試みているのですが、以下のような操作を行うことは可能でしょうか? (マクロ(VBA?)は使用したことがないため、抵抗があります。それでも、マクロを組むしかないというのであればその方法も教えてください。) 「表示シート」にて行と列を指定することで、 結合された5行×5列の表を表示させたいのです。 指定するセルも結合させており(「入力シート」)、 結合されたセル(行/列)を指定して、表示する範囲を決めてやりたいのです。 結合を解いて、たくさんの文字を指定する形にしてしまえば楽かもしれないのですが、この2文字だけで他にもたくさん処理させているため、 指定する文字はこの2文字のみで処理させたいです。 自分なりには、「表示シート」のD10セル(F10まで結合されている)に =INDEX(SUMPRODUCT((入力!B3:B27=表示!D4)*(入力!C2:Z2=表示!D3)),1,2) というような関数を組んでみたのですが、うまく表示されません。 なにか、うまく表示させる方法はあるのでしょうか? ちなみに、表内の犬など狐などは便宜的に書いているだけで、 数字が入るセルか、日付が入るセルか、文字列が入るセルかということだけが汲み取っていただければと思います。 入力するセルと表示させるセルの大きさも異なるようにしたいので、 良い方法があれば教えてください。 よろしくお願いいたします。

  • 空白までのデータを範囲指定する

    EXCEL VBAにて教えてもらいたい事があります。 空白までの行列を範囲指定したいのです。         A  B   C   D  1   1123 123  12  57 2    32 1 5 52 3 2 98 852 11 4 65 2 72 1 A列からD列の行が空白になるまでの範囲を指定する マクロを教えてほしいです。 A列の最終行の次の行にカーソルを合わせるマクロはわかるのですが 範囲を指定する方法がわかりません。 よろしくお願いいたします。 最終行の次の行にカーソルを合わせるマクロ Range("A1").End(xlDown).Select ActiveCell.Offset(rowOffset:=1).Activate Selection.Copy

  • エクセル:列の範囲選択をうまくできないでしょうか ?

    行数が約2000行ほどの表を毎月使用します。それでいろんな列をコピーして別の表に貼り付けたいのですが、列のコピーをする時に範囲指定でドラッグに結構時間がかかります。これをマクロでやりたいんですが、カーソルをおいた列の一番下の行まで範囲を指定すると言うのをマクロでできないでしょうか? 自動記録でマクロを造ろうとすると、実行した列を選択してしまい、任意の列の選択ができません。 よろしくおねがいします。

  • <文字列マクロについて>

    <文字列マクロについて> 皆さま お力を貸して下さい。 初心者で、何もわからず書いておりますがすみません。 下記の2つのマクロを教えて下さい。 ?横に並んだ「ある行」に在るデータを「列」に変換し、  指定した数だけ並べる    あいうえお    ←A1セルからE1まで5列(これは状況により変わる)       ↓(マクロ実行:3行同じ数だけ並べるという指定)  あ        →A1セルから下にひたすら、同じ文字が続き順に並ぶ  あ  あ  い  い  い  う  う        →A1セルから下に並べる(3行は指定できれば別の数字にも変えたい  う  え  え  え  お  お  お ?規則的に並んだデータのまとまりをセットで移動する。  例だと5つの塊(これは変数とおきたい)    あ A              a  い B              b  う C               c   え D               d  お E              e    ↓(マクロ実行)  あ  い  う  え  お  A  B  C  D  E      ・  ・  ・  ・    a b c d e    

  • エクセル 特定文字列のある列の削除と保存

    こんにちは いつもお世話になっています。 エクセル2010です 1行目に文字列が入力されています。 (1)1行目に特定文字列を含む列を削除するマクロ。 (2)1行目に特定文字列を含む列だけを残して、他はすべて削除するマクロ を教えてください。 2つ質問するのが不適当ならどちらか一方でも構いません。 指定したい文字列は複数ありますので「文字列A、文字列B、・・・」等で追記できる形だと助かります。フォーマットが決まっているので指定文字列を頻繁に変えることはありません。 特定行を削除するマクロはネット上でヒットしたんですが、列は見つかりませんでした。 マクロ記録で、文字列検索、列削除をしましたが、連携のさせ方がわかりません。 よろしくお願いします。 Sub Macro1() ' ' Macro1 Macro ' ' Rows("1:1").Select Selection.Find(What:="あ", After:=ActiveCell, LookIn:=xlFormulas, LookAt _ :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ False, MatchByte:=False, SearchFormat:=False).Activate Selection.FindNext(After:=ActiveCell).Activate Columns("A:A").Select Selection.Delete Shift:=xlToLeft End Sub

  • エクセルのマクロ(指定列の空白にひとつ上の文字を入力し続ける)

    エクセルのマクロを教えてください。 指定列の空白にひとつ上の文字を入力し続けるマクロです。 A列指定 A2からスタートし、1000行くらいあるデータ 空白があった場合ひとつ上の文字を入力 空白は、2行連続・3行連続となることもあるが大抵は1行空白 この場合、空白セルの上で一番近いデータをコピーする A列のデータは、文字・数字・日付と様々 1000行ある場合もあるが、それ以下の場合もあるので、10行空白が続いたらマクロが自動的に終了 エクセル2003使用 よろしくお願いいたします。

  • EXCELの範囲指定について

    大きな範囲を範囲指定しようと、左ドラッグでマウスを動かすと、必ず範囲指定したい箇所より大幅にオーバーしてしまいます。例えば、1行A列から、125行HG列まで範囲指定したい時、左ドラッグでマウスを動かすと、1000行以上、IM列くらいまでになってしまいます。何か良い方法はあるのですか?

  • Excelで特定の文字列から自動的に数値を入れたい

    A列1行目の文字に対してB列1行目に自動的に数値が表示されるようにしたいのですが可能なのでしょうか?   A   B 1 林檎 150←自動的に表示したい。 例えばA列1行目に『林檎』と入れたらB列1行目に『150』、A列1行目に『梨』と入れたらB列1行目に『200』という感じにしたいのです。 ちなみにA列1行目はデータ入力規則でリストから選択肢を選ぶように設定されています。

専門家に質問してみよう