- ベストアンサー
エクセルで、検索したセルの下の行を出したいときは?
たとえば、一つのシートに数字が入った表があるとして(シート1)、 隣のシート(シート2)でA1のセルに数値が入るとシート1から 同じ数値を探し出す(作業しているのはB1)。 その探し出したセルの下の行にあるものを出したいのですが、 その方法がわかりません。関数の数式の中で、 ”+1行”とか、”+1列”というのは、 どういった入力をすればいいのでしょうか? ちょっと説明がうまくできないので、伝わりづらいと 思いますが、補足していきますので、よろしくお願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
簡単なやり方を思いついたので回答いたします。 基本的な関数を二個(IFとCOUNTIF)使ってるだけですので、目的を達成できそうなら、是非お試しを・・・。 シート1の一行目に(Aさん、Bさんといった)フィールドがあり、第1期から第3期まで、つまりB2:D4の範囲で値(販売台数)が入ってるとします。 1)シート2に、シート1と同じフォームの表をコピぺ(値不要)。 2)その下に、シート1上で検索しようとする数字を記入するセルを用意し(問題文でいうとシート2のA1セル。ここではB6=下のX欄とします)、さらに、できればそのすぐ下に、翌期の販売台数を集計するため、それをあらかじめ昇順(または降順)にいれておきます。下のような感じ。 A B C 1期 2期 3期 当期 X 翌期 1(※翌期販売台数1台) 2 3 … 3)B2に「=IF(Sheet1!B1=$B$6,Sheet1!B2,"")」を貼り付け、B2:D4の範囲でコピー(シート1にある、一つ上の行の値をチェックするためのものです)。※二行目の数式は、前期実績がないから本当は不要なんですが。 4)B7以下に翌期販売台数をいれてあるので、それぞれその右隣に式をいれます。つまり、C7に「=COUNTIF($B$2:$D$4,B7)」を貼り付け、それを下方にコピーしてください。 5)たとえば、販売台数が2台だった時期の翌期の実績が知りたいなら、X欄(B6)に「2」といれます。そうすると、シート1上で「2」のすぐ下にある値(その翌期の販売台数)だけが、シート2のB2:D4上に返されます。また、そのうち「1」が三件あるとすると、シート2のB7「1」の右隣り(C7)の値が「3」となります。 6)翌期販売台数の値が返ってきたら、Xといっしょにコピーして、値「だけ」を別のところに貼り付けて(すぐ右隣にストックしていっていいと思います)表を作成していってください。 ※行(A,B,・・・)、列(1,2,・・・)、シート名は手元の表にあわせて書き替えてください。
その他の回答 (4)
- imogasi
- ベストアンサー率27% (4737/17069)
#2です。 >販売台数の表などで、一番上の行には「Aさん、Bさん、Cさん・・・」 左の列には(Aの列)「1期、2期、3期、・・・」というように入っていて、たとえば、 販売台数が10台だった所を検索し、その次の時期が何台なのかが知りたい。 --------------- 各期・個人別販売台数表 A B C 第1期 8 7 10 第2期 10 8 7 第3期 12 13 5 第4期 6 8 13 なら Cの第1期の10の次期7 Aの第2期の10の次期12 をみつけるのでしょうか。 10は可変でしょうが、Sheet2に入力する。 結果はどのSheetのどのセルにどのように出すのでしょうか。 Cが A B C 第1期 8 7 10 第2期 10 8 10 第3期 12 13 5 第4期 6 8 13 なら10の次10、10の次5のように出すのでしょうか。 この質問の解決は、VBAでないと無理のように思う。
お礼
返事が遅くなり、申し訳ありませんでした。 VBAですか・・。今までマクロ同様むずがしそうなので、目をそむけていました。 これから少しづつ勉強しようと思います。 ちょっとパソコンを見る時間が空いてしまったので、次のNo5さんの回答が出ていました。そこで大体の目的の表が作れそうなので、それを自分で応用して、完成させたいと思います。 この質問に取り組んでいただき、本当にありがとうございました。
- WWolf
- ベストアンサー率26% (51/192)
シート1の「数字が入った表」とは、仮に10行×10列の表で探すのはシート2のA1に入った値と同じ値のセルの一つ下のセルの値でしょうか?
補足
はい。そうなんです。NO.2さんの補足で答えたような内容なんですが、 うまく伝えられませんでした。
- imogasi
- ベストアンサー率27% (4737/17069)
質問内容確認 シート1に(数値列)データがあるとして、シート2のA1に、数値を入力すると、シート1のデータの中から同じ数値をみつけ出したい。 2つ以上ある場合はないのですか?。 2つ以上あれば、あるだけ出したいと言う質問もよくあり、数日前に答えました。 (同じデータは1つしかあり得ないデータならそれでも良いですが) それと見つかった行の右隣列のデータを採りたいが多いと思いますが、直下行で良いのですね?。 同じ数のセルをみつけて、その直下行で良いのなら =OFFSET(Sheet1!$A$1,MATCH(A1,Sheet1!$A$1:$A$100,0),0) 見つからない場合のエラー表示は、式が長くなるので略。 $A$100は最下行ですから適当に。
補足
申し訳ありません。やはり情報をうまく伝えられませんでした。 データの表の中に同じ数字のものは存在します。 (imogasiさんが数日前に答えられたものがどれかもわかりませんでした。 6千件以上回答されているなんてすごいですね!尊敬します!) 具体的な形で表すと、販売台数の表などで、一番上の行には「Aさん、Bさん、Cさん・・・」 左の列には(Aの列)「1期、2期、3期、・・・」というように入っていて、たとえば、 販売台数が10台だった所を検索し、その次の時期が何台なのかが知りたい。 その際、誰の成績かは問わない。また、複数の答えがあるので、 1台=2件、2台=4件、3台=12件・・・・というように、それぞれ数えてくれるとベストです。 ここまで書いて、最初の私の質問がどれだけバカなものか解かりました。 申し訳ありませんでした。
=INDEX(Sheet1!A:A,MATCH(Sheet2!A1,Sheet1!A:A,)+1) こうでしょうか。
お礼
素早い回答ありがとうございました。 ただ、ちょっと僕には使い方がわかりませんでした。 (本当に申し訳ありません。) 実際にコピーしてエクセルに貼り付けてみたのですが、 関数を使うときに出る小さいウインドウの使い方がわかりませんでした。
お礼
返事が遅くなり申し訳ありませんでした。 tascanyさんの回答で目的の表が作れそうです! これから自分で応用して完成させたいと思います。 こんな方法があるんだな~と感心するばかりです。自分で答えを導き出せる様になると、 パズルを完成させるように、きっと楽しいだろうなと思います。 これから少しづつ勉強して自分のレベルを上げたいと思います。