Excel 2010で離れた行の範囲を指定する方法

このQ&Aのポイント
  • Excel 2010で異なる行にある範囲を指定する方法について説明します。
  • 行はB49:B51とD49:D51にあります。
  • また、データがないときには表示される#N/Aを消す方法についても教えてください。
回答を見る
  • ベストアンサー

Excel 2010 離れた行の範囲を指定するには

先に質問して下記のように最適な回答を得たのですが、その後表を確認すると離れた行にもデータがあることがわかりました。その行を追加したのですが、うまくいきません。 行はB49:B51とD49:D51です。 戴いた回答です。詳細は図を参照してください。 =INDEX($B$29:$B$36,MATCH($A17,D$29:D$36,0),1,1) これにB49:B51とD49:D51を追加したいのです。 また、D$29:D$36とこれから追加するD49:D51にデータがないときには#####マークの#N/Aが表示されるのでこれを消したいのですが。よろしくお願いします。 下記は先の質問内容です。 教えてください。 下表を作っています。 表(1)と表(2)は同一シート内にあるのを説明用に切り抜いています。表は場所毎に担当を毎日割り振りしたものです。表(2)にはプルダウンリストで入力しておりますが、表(1)には表(2)から場所を参照して、その時の担当を表示するように考えていますが、どうしても記述がわかりません。どなたか詳しい方教えてください。よろしくお願いします。

noname#194986
noname#194986

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

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.4

No.1・3です。 空白の場合のエラー処理の件ですが・・・ 前回の数式内の =IF(COUNTIF(D$29:D$36,$A17),INDEX($B$29:$B$36,MATCH($A17,D$29:D$36,0)),IF(COUNTIF(D$49:D$51,$A17),INDEX($B$49:$B$51,MATCH($A17,D$49:D$51,0)),"")) IF関数の中で処理しています。 数式の流れを説明すると (1)IF(COUNTIF(D$29:D$36,$A17) COUNTIF関数で D29:D36の範囲にA17があれば(0以外の場合は「TRUE」=「真」となります。) INDEX($B$29:$B$36,MATCH($A17,D$29:D$36,0)) の数式 (2)(1)が「FALSE」(偽)の場合 IF(COUNTIF(D$49:D$51,$A17) D49:D51の範囲にA17があれば(「TRUE」の場合) INDEX($B$49:$B$51,MATCH($A17,D$49:D$51,0)) の数式 (3)(2)がFALSE「偽」 → すなわち(1)・(2)とも「偽」の場合は 最後の「,""」 「空白」に!という流れとなります。 ※ 上記の数式を「複合参照」しています。 ← 絶対参照・相対参照 等で検索してみてください。 「$」マークの位置に注意してください。 ※ 本来オートフィルで数式をコピーする場合などは「セル結合」がない方が好ましいのですが、 今回は2行ずつセルを結合しているようなので、No.1で書いたように 2行ずつ範囲指定してのオートフィルとしています。 (結合してあるセル番地は結合セルの最初のセル番地となります) こんなんで参考になりますかね?m(_ _)m

noname#194986
質問者

お礼

協力感謝します。ありがとうございました。今後もよろしくお願いします。

noname#194986
質問者

補足

ご丁寧に解説いただきましてありがとうございました。ここに何回か質問して皆様の協力で少しずつですが知識を取得しております。これからもよろしくお願いします。

その他の回答 (3)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

No.1です。 >B48~AH48 >には関係ないデータが入っていまして、そのデータを取得すると重複してしまいます とありますので、地道にIF関数のネストで! D17セルに =IF(COUNTIF(D$29:D$36,$A17),INDEX($B$29:$B$36,MATCH($A17,D$29:D$36,0)),IF(COUNTIF(D$49:D$51,$A17),INDEX($B$49:$B$51,MATCH($A17,D$49:D$51,0)),"")) という数式を入れオートフィルの方法は前回同様にしてみてください。 今度はご希望通りになればよいのですが・・・m(_ _)m

noname#194986
質問者

お礼

ありがとうございました。今後もよろしくお願いします。

noname#194986
質問者

補足

ありがとうございました。バッチリです。ところで、担当欄(表(2))に何も入力されていないと出るエラー(#N/A)防止はどの部分にあたるのでしょうか。よろしくお願いします。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

D17セルには次の式を入力して右横方向にドラッグコピーしたのちに下方の23行目まで下方にドラッグコピーします。 =IF($A17="","",IF(COUNTIF(D$29:D$36,$A17),INDEX($B$29:$B$36,MATCH($A17,D$29:D$36,0)),IF(COUNTIF(D$49:D$51,$A17),INDEX($B$49:$B$51,MATCH($A17,D$49:D$51,0)),"")))

noname#194986
質問者

補足

ありがとうございました。 バッチリです。ところで、担当欄(表(2))に何も入力されていないと出るエラー(#N/A)防止はどの部分にあたるのでしょうか。よろしくお願いします。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんにちは! >これにB49:B51とD49:D51を追加したいのです とありますが、単に行範囲を51行目まで広げてはダメですか? D17セルに =IFERROR(INDEX($B$29:$B$51,MATCH($A17,D$29:D$51,0)),"") という数式を入れ、D17・D18セルを範囲指定 → D18セルのフィルハンドルで下へ2行ずつオートフィルでコピー! そのまま列方向へオートフィルでコピーではどうでしょうか?m(_ _)m

noname#194986
質問者

補足

回答ありがとうございます。 B38~AH38 ~ B48~AH48 には関係ないデータが入っていまして、そのデータを取得すると重複してしまいます。方法はないものでしょうか。

関連するQ&A

  • エクセルで1行にまとめられたCSVデータを複数行

    エクセルを使ってCSVファイルのデータを参照して複数行にまたがる表に反映させたいのですがうまくいきません。   A B C D E  1 あ い う え お 2 か き く け こ 上記のように1行で1件分のデータがCSVであります。 このデータを   A  B  C  D  E 1 あ う お 2 い え  3 か く こ 4 き け 上記のように参照させたいのです。 数件ならば1件1件を参照させれば表は完成するのですが、数千件あるのでできません。 1パターン作って、あとは連続フィルで出来れば助かります。 説明が難しく、わかりづらいかと思いますがお力をお貸しください。 よろしくお願いいたします。

  • エクセルの行と列の変換

    エクセルで作った表の行と列をそっくり入れ替えたい(下記例参照)のですが、どのようにすればよいでしょうか?もしできないなら、入力のしなおしが必要でしょうか?どなたか教えてください! 例)   1 2 3 4 ・・ A B C D ↓   A  B C D 1 2 3 4

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

    エクセルの参照行の挿入による追加と行の削除に対応できる関数を教えてください。 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 行の指定について

    行の数値を代入する方法を教えてください。 例えば, =SUM(F20:F38) を求めるために20、38を変数としたいのですが、  |A  |B  |C  |D 1|20  |38  |   | 2|   |   |   | 3|   |   |   | そこで、行の値を他のセルから 参照したい。 つまり、 =SUM(F〔A1〕:F〔B1〕) ←※わかりやすいように書きました。       ↓   ↓       20   38 このように行の値を別のセルから 参照して代入する方法はあるのでしょうか?? 宜しくお願いします。 ・・・わかりやすく説明できたかな?? 理解しづらかったら、すいません。

  • エクセルで、2行おきに1行追加する方法

    エクセルで、2行おきに1行追加する方法 行が2000行位あるデータについて、 1行毎では時間がかかるので、 他の方法(マクロでも作業列等)を教えて下さい。 例 行1 A 行2 B 行3 C 行4 D 行5 E 行6 F 行7 G 行8 H     上記2000行のデータを下記のように行追加をしたいのです。 行1 A 行2 B 行追加 行3 C 行4 D 行追加 行5 E 行6 F 行追加 行7 G 行8 H よろしくお願い致します。

  • ExcelのMATCH関数の検査範囲の指定について

    Excelで、指定した値の場所(行番号)を返すというのをMATCH関数を用いてやっているのですが、検査範囲の指定が上手く処理することができないので教えて下さい。 条件---------------------------------------------------------------------------------------------------------------- 2つのExcelファイル、DATA.xlsx と TEST.xlsx を用いる。 DATA.xlsx内に「B19」というシートが存在し、このシート内のB列にある"7777"という値が存在する行番号をTEST.xlsx内のセルに表示させる。 ----------------------------------------------------------------------------------------------------------------------- まず、 =MATCH(7777,[DATA.xlsx]B19!$B:$B,0) で正しい値が返ってくることは理解しています。 この式の中の、B19というシート名について、 この式が存在するシートと同じシートの適当なセル(ここではA33を使うことにします)にB19 という値が存在するとします。このA33のセルにある値を見て値を返す、何がしたいかといいますと、将来参照するシートがB19ではなく例えばB15であったり、B6とした場合、A33のセルの値を変更すればよいというものにしたいのです。 それで、 =MATCH(7777,"[TEST.xlsx]"&$A33&"!$B:$B",0) としてみたのですが、#VALUE!が返ってきます。 何処が間違っているのか?教えてください。 よろしくお願いします。

  • エクセルの関数組み合わせについて

    エクセルの関数組み合わせでうまくいかず困っています。 (1)あるセルに紙サイズを入力し、別シートにある一覧表行から参照 (2) (1)と同じ行の別セルに部数を入力し、別シートにある一覧表列の以上~未満で参照 (3) (1)と(2)の交差する値を反映。 イメージを添付しました。 以下の式を入れて、サイズと部数から反映できるのですが、以上~未満がうまくいきません。40,000や50,000で入れるとできますが、45,000や47,000などを入れた場合の数式がうまくいきませんでした。 =IF(ISERROR(INDEX(単価表!$B$3:$F$42,MATCH($D6,単価表!$A$3:$A$42,0),MATCH($B6,単価表!$B$2:$F$2,0))),"",(INDEX(単価表!$B$3:$F$42,MATCH($D6,単価表!$A$3:$A$42,0),MATCH($B6,単価表!$B$2:$F$2,0)))) どなたかお力を添えていただければと存じます。 なにとぞよろしくお願いします。

  • Excel2010参照セルから担当を表示

    教えてください。 下表を作っています。 表(1)と表(2)は同一シート内にあるのを説明用に切り抜いています。表は場所毎に担当を毎日割り振りしたものです。表(2)にはプルダウンリストで入力しておりますが、表(1)には表(2)から場所を参照して、その時の担当を表示するように考えていますが、どうしても記述がわかりません。どなたか詳しい方教えてください。よろしくお願いします。

  • Excelで行挿入しても計算範囲を変えたくない

    Excel2003です 例えばセルD200にD$4:D$100とセル範囲を指定した計算式があります。 この表に行を追加したり削除したりすると自動的にセル範囲が修正されますが、このセルの計算式だけ自動修正がされず常にD$4:D$100で固定する方法を教えてください。 困る一例として一番最初のデータ行に新しいデータを追加する場合、4行目を指定して行挿入しデータを入れると計算式はD$5:D$101に変わってしまい新しいデータが無視されてしまいます。 なおセル範囲に名前を付けてやってみましたが同じ結果でした。また行の挿入と削除を使わずデータ内容のクリヤー、移動などで表を更新すれば問題ないことは解っているのですが面倒です。

  • エクセルでHLOOKUP関数の選択範囲について

    エクセルでHLOOKUP関数を使って、検索したいのですが、 シートは、一覧表のシートと データが入っているA101、B203、C305、...シートは300シートくらいあります。 一覧表のシートには、下のような表になっていて、      A列  B列  C列  D列 ...          1003、1004、1005、1006、... 2行目 A101  3行目 B203 4行目 C305       .       .       . データのはいっているシート、A101は下の表になっています。      B列 C列 D列、・・・、Z列 2行目 1004、1005、1006、... 3行目 100、 200、 150、... 一覧表のB列の2行目には HLOOKUP(B2、シートA2のB2:Z3、2行目、FALSE) という感じで、シート名をセルA2のものを参照にして 探して表示させ、B列、C列、D列の2行目から下の行も 表示させたいのですが、うめくできませんでした。 INDIRECT関数を使ってみましたが、セル範囲が無効という エラーがでてしまいます。↓こんな感じで入力してみたのですが... SUMPRODUCT((INDIRECT($A2&"!$B$2:$Z$3"))=$B$1,(INDIRECT($A2&"!$B$2:$Z$3"))) 1つづつデータを見て手打ちはデータが多く、 どんどんデータが増えていくので できれば関数を使って表示させたいと思っています。 詳しい方いらっしゃいましたら、どうか教えてください よろしくお願いします。

専門家に質問してみよう