• ベストアンサー

エクセルの関数で

お世話になります       a       b       c 1    123-3322    りんご     東京 2    342-5534    みかん     静岡 3    439-6754    かき      山口 4    123-3322    なし      広島 5    123-3322    くり      沖縄       a       b       c 1    123-3322    りんご     東京 2    123-3322    なし      広島 3    123-3322    くり      沖縄 のようにd1にa列の検索したい番号を入力して e1にりんごf1に東京というように2.3.4行と 全て摘出したいのです よろしくお願いいたします

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

  • ベストアンサー
  • moon_piyo
  • ベストアンサー率60% (88/146)
回答No.9

こんちは 1) 5つのセルにそれぞれ式をいれてください G1: 0 G2: =G1+H1 H1: =MATCH(D$1,OFFSET(A$1,G1,0,1000-G1,1),0) E1: =IF(NOT(ISERROR($H1)),OFFSET(B$1,$G1+$H1-1,0),"") F1: =IF(NOT(ISERROR($H1)),OFFSET(C$1,$G1+$H1-1,0),"") 2)E1,F1,G2,H1のセルをそれぞれ下方向にコピーしてください。A列のデータ終了位置と同じ列までです 3)G列、H列を非表示にする なおH1 の式の一部の「1000」はA列の件数が最大1000件というのを想定してます。超えるようでしたら変更してください

hajihaji
質問者

お礼

お礼が遅くなりました 思うような事ができました ありがとうございました

その他の回答 (8)

  • saru5
  • ベストアンサー率34% (41/118)
回答No.8

オートフィルタか並べ替えですね。 キーになるA列の数値が複数のBC列の結果を求めるので、関数では無理です。

  • 2v82
  • ベストアンサー率23% (3/13)
回答No.7

#5です。 質問の内容と異なるかもしれませんが、たとえばA列での検索条件に対して、B列(またはC列)のカウントが欲しいというようなことであれば、DCOUNTA関数を使用します。 質問の表をそのまま使用しますので、あとは便宜変更して下さい。 A、B、C列にそれぞれ"番号"、"品名"、"都道府県"という項目名をつけます。 そこで、A1:C6という範囲を"データ"という名前にしましょうか。 8行目に1行目と同じ項目名を入力し、A9にA2:A6でのリスト入力を設定します。そのリストから検索したい番号を表示しておき、B10に次の関数式を入力します。 DCOUNTA(データ,"商品名",A8:C9) たとえばA9で選択した番号が"123-3322"であれば、関数の値は、3となります。 さらに、B9とC9にも検索したい値を入力すれば、番号が"123-3322"で品名が"りんご"、都道府県が"東京"のカウントを取得できます。(この場合、値は1) そのほかにも同様に使用するデータベース関数がありますので、ヘルプを参照して見て下さい。

hajihaji
質問者

お礼

たびたびありがとうございます 私にはちょっと時間がかかりそうなので まずはお礼まで

  • saru5
  • ベストアンサー率34% (41/118)
回答No.6

最初のご質問で、その部分が意味がわからなかったのです。 つまり、A列が同じでもBC列の内容は違う行が存在しているわけですよね? それはデータベースとしては不完全ですので、A列をキーにしての拾い出しはできません。 #2さんの書かれている通り、フィルタを使うのが妥当です。 ACCESSならできますが、EXCELの関数では私の知る限りは無理だと思います。

hajihaji
質問者

補足

ありがとうございます     A   b      d    e     1  111   りんご   111   りんご 2  115   かき         くり 3  111   くり         すいか 4  196   なし         もも 5  111   すいか        めろん 6  111   もも 7  204   ぶどう 8  111   めろん d1に  111と入力するとe1からe5がこのように したいのです わかりにくくてすみません やはりオートフィルターでしょうか

  • 2v82
  • ベストアンサー率23% (3/13)
回答No.5

VLOOKUP関数を使用しますか? まずは、A列を基準に並べ替えを行います。 D列にA列の検索した番号とありますが、この関数ではそのままA列を使用して検索できますので、次のような式になります。(いちおう、E列とF列に結果を表示するということで・・・) E列:VLOOKUP(A1,A$1:C$5,2,FALSE)  :="りんご" F列:VLOOKUP(A1,A$1:C$5,2,FALSE)  :="東京" これらを下にコピーすればOKです。 ただ、このように抽出するなら並べ替えを行った後にオートフィルターをかけたほうが早いような気がしますが・・・

hajihaji
質問者

お礼

夜分遅くありがとうございます >:="りんご"の部分がデーターが多すぎて 設定が困難なんです

  • saru5
  • ベストアンサー率34% (41/118)
回答No.4

#1&3です。 指定した表の一列目がA列ですよね。 E列には、表の「2」列目が出るような式を、F列には表の「3」列目が出るような式を入れればOKです。 がんばってください。

hajihaji
質問者

お礼

ありがとうございます 横にE列 F列に値を出す事は出来るのですが d1に番号を入れた場合3個あれば3行 10個あれば10行ができず悩んでます

  • saru5
  • ベストアンサー率34% (41/118)
回答No.3

#1です。補足ありがとうございます。 それならvlookup関数の代表的な使い方です。 うまくいかなかったとのことですが、参考書などをもう一度見返してください。簡単にできる内容です。

hajihaji
質問者

お礼

何度もありがとうございます 1行ごとのvlookupはよく使っているのですが それの応用ですね がんばってみます

  • bqpd
  • ベストアンサー率24% (11/45)
回答No.2

それを実現させる関数は思いつかないのですが、検索したいだけなら 列aを選択 ↓ フィルタ(オートフィルタ) ↓ 列aあたりに出てる"▽"を押して 123-3322を選ぶ で、その結果と近い形になりますが・・・・ 関数・・・ですよね、すみません。 ちなみにオートフィルタでよければ画面上部のメニューを探してください (割と右側のメニューだったかと。)

hajihaji
質問者

お礼

ありがとうございます 早速試させていただきます

  • saru5
  • ベストアンサー率34% (41/118)
回答No.1

vlookup関数?いやhlookupでしょうか? ちょっと、ご質問の内容が理解できないのですが・・・

hajihaji
質問者

お礼

早速ありがとうございます vlookupでは試してみたのですがうまくいきません 仮にd1に摘出したいa列の番号を入力して その番号があればe1にb1の値 f1にc1の値というように したいのです 説明不足ですみません

関連するQ&A

  • エクセル関数

    こんにちは。早速質問です。エクセルで以下のことが出来ますか? シート1に購入先(A)ごとに購入物(B)と購入地域(C)を表にしています。例、   A  B  C 1 甲社 みかん 愛媛 2 甲社 りんご 青森 3 乙社 本マグロ 青森 4 丙社 カキ 広島 このシート1をDBとしてシート2は日々購入したリストを作成 例   A   B   C   D  E 1 12/1 みかん 200個 () () 2 12/2 りんご 150個 () () 3 12/3 みかん 100個 () () 4 12/3 カキ  50個 () () 5 12/4 本マグロ 1本 () () このD列に先ほどのシート1から購入地域、E列に購入先が自動で入力される関数ありませんか?

  • エクセル ○○以外を抽出

    (シート1) A     B      1 リンゴ   沖縄    2 みかん  北海道 3 かき    滋賀 4 さんま   山口 5 かき    滋賀 6 いわし   東京 7 リンゴ   沖縄 で、リンゴ・みかん・かきの行以外を別シートに自動反映する方法ありませんか? リンゴだけを抽出といった方法は分かったのですが、、、      ↓(ちなみにそれは) Private Sub CommandButton3_Click() With Sheets("Sheet1") .AutoFilterMode = False .Range("A1:M1").AutoFilter .Range("A1:M1").AutoFilter Field:=1, Criteria1:="リンゴ" .Range(.Range("A1"), .Range("A1").SpecialCells(xlLastCell)).SpecialCells(xlCellTypeVisible).Copy Range("A1") .AutoFilterMode = False End With End Sub のようにやりました。 すんません、教えてください!!!

  • Excelについて

    Excelに下記のようなデータが入っているのですが A列   |   B列 りんご |     2 みかん | 3 ばなな | 1 りんご | 6 すいか | 7 かき | 3 みかん | 4 すいか | 8 りんご | 1 *(実際には100件ぐらいのデータが入っています。) A列で同じ「りんご」があれば、同じ行にあるB列の値を合計したいのでがどうすればよいですか? また「りんご」だけでなく他にもあればその値を合計して出したいのですが。 例えば、今回の例では「りんご」が三箇所あるので「2+6+1]で9と表示したいのですが。 イメージとしては、 A列  |   B列 |   C列   |  D列 りんご |    2  |    りんご |  9 みかん |    3  |    みかん | 7 ばなな | 1  |    ばなな | 1 りんご | 6  |    すいか | 15 すいか | 7  |    かき | 3 かき | 3 | みかん | 4 | すいか | 8 | りんご | 1 | というようにしたいです。どなたか教えてください。

  • エクセルの関数を教えてください

    エクセルのVBで、ある値で列を検索し、その値が何行目かを取得したいのですが、できますか?    A列     1 りんご    2 みかん   3 バナナ   4 かき     5 栗       "みかん"= 2行目 "バナナ" = 3行目  "栗" = 5行目 基本的なことですよね、すいませんがお願いします。

  • エクセルの関数で

    また皆様のお知恵を拝借したく 先週に数値の大きい順番に項目を並べたいという質問をさせていただきましたが、そこに条件を付け足して、同じように求めたいのです。 シート1には A列     B列      C列 1801  りんご    500 1801  みかん    350 1801  なし     700      ・      ・ 1802  みかん    250 1802  ぶどう    600 ・ ・ 1812  かき     1000 B列、C列は以下に項目と数字が並んでいきます。 A列は年月が入ります。 月の入力は毎月20項目程度になります。 そしてシート2のD列1行目から5行目に1801における上位金額の5項目         E列1行目から5行目に1802における上位金額の5項目               ・               ・             O列1行目から5行目に1812における上位5項目 というように取り込みたいのです。 集計シートに関数を入れて自動的に上位項目を表示させるにはどのような関 数を使えばよろしいのでしょうか。 入力されていない場合は表示はしないような形で行いたいのです。 よろしくお願いします。

  • エクセル関数の検索について

    エクセルの関数についてご教授下さい。 以下のように文字列が記入されています。 (列A) りんご a b c (w) (k) ! みかん u b c (w) (k) ! ○”りんご”の行から”!”の行までを検索して、文字列”a”があるかを確認したい ○”みかん”の行から”!”の行までを検索して、文字列”a”があるかを確認したい ○()で記載している文字列は場合によって記入されているため、毎回同じ行数ではない このような条件がある時に、関数で要件を満たす事はできますでしょうか? イメージ的には、以下のようにできればと思ってます。 1.A列全体から”りんご”を検索 2.”りんご”行から下の”!”までの間で”a”があるかを確認 3.A列全体から”みかん”を検索 4.”みかん”行から下の”!”までの間で”a”があるかを確認 もしくは 1.A列全体から”りんご”を検索 2.”りんご”行から下で、”a”があるかを確認 3.A列全体から”みかん”を検索 4.”みかん”行から下で、”a”があるかを確認 このような感じで作れますでしょうか? よろしくお願いいたします。

  • EXCELオートフィルタでいくつも表示させたい

      A   B   C   D   E 1 001 みかん 1  100  100 2 002 りんご 5  120  600 3 003 かき  2  70   140 4 002 りんご 6  120  720 EXCEL初心者です。よろしくおねがいします。このようなものを作って りんごをオートフィルタで表示させると   A   B   C   D   E 1 002 りんご 5  120  600 2 002 りんご 6  120  720 3          計  1,320 となるところまでわかりましたが、続けて他のものも表示させることはできるのでしょうか?たとえば下記のように。   A   B   C   D  E 1 002 りんご 5  120  600 2 002 りんご 6  120  720 3          計  1,320 4 001 みかん 1  100  100 5          計  100 6 003 かき  2  70   140 7          計   140   できるなら関数など詳しく教えていただきたいのですが。 お願いします。たくさんQ&Aがあり探したのですが自分に当てはまるのがわからなかったのです。 すみません。ちなみにマクロなどはわかりません。       

  • Excelでどのような関数を使えばいいでしょうか。

    関数について教えて下さい。 Excelで、同じBook内に以下のような2シートがあるときに、 (Sheet1)    A   B    C   D     1  1  あい   12  りんご 2     うえ   34  みかん   3     おか   56  イチゴ 4  1  おか   78  イチゴ (Sheet2)    A   B    C    D     1     あい   11   りんご 2     うえ   34   みかん   3     おか   78   イチゴ 4     うえ   34   みかん  Sheet2のA列にSheet1にあるデータを入れたいのです。 まず、列B,C,Dのそれぞれのデータが横に3つ一致するものを探して 横3つのデータが同じなら、Sheet2のA列に、 Sheet1のA列にあるデータをシートBにも持ってくる、 というようなイメージです。 (Sheet2)    A   B    C    D     1     あい   11   りんご 2     うえ   34   みかん   3  1  おか   78   イチゴ 4     うえ   34   みかん      ↑このようにしたいのです。 A列にどのような関数を入れればいいのでしょう。 (A列にあるのは1か空欄かのどちらかです。 同じ3つの組み合わせで、1の場合と空欄の場合両方があることはありません。) また、Sheet2には、A列に1とついた行に色を付けたいのです。 例えば、上記の例ですと Sheet2のB3:D3のセルに色をつけたいのです。 関数や条件付書式などで、できますでしょうか。

  • エクセルで列Aの同じ値のものを15行ずつ表示したい

    「エクセルで同じ列の値のものを15行ずつ表示したい」というタイトルではきちんと表現できませんでしたが、 以下のことはできますでしょうか?    A   B   C 1 りんご  1   100  ・・・ 2 りんご  9   100  ・・・ 3 みかん  4   70  ・・・ 4 なし   3   110  ・・・ 5 なし   1   110  ・・・ 6 なし   5   110  ・・・ といったシートがあるとします。 これを「A」の列を基準に15列ずつに分けたいと思います。    A   B   C 1 りんご  1   100  ・・・ 2 りんご  9   100  ・・・ ・・・15まで空白 16 みかん  4   70  ・・・ ・・・30まで空白 31 なし   3   110  ・・・ 32 なし   1   110  ・・・ 33 なし   5   110  ・・・ ・・・45まで空白 何かよい方法があれば教えてください。 よろしくお願いいたします。

  • excelの関数で数式を教えてください。

    下記のような2つのexcelシートがある場合で、条件にあった場合の数値だけを合計したい場合、どのような関数を使えば良いのでしょうか?教えてください。 具体的にはAさんのカロリー数値の合計(答えが4.5) (シート1)    A    B    C   D   ------------- 1|Aさん みかん りんご バナナ 2|Bさん ぶどう なし (シート2)   A    B   ------- 1|みかん 1.5 2|りんご  2.3 3|バナナ 0.7 4|ぶどう  3.1 5|なし   1.2 宜しくお願いします。

専門家に質問してみよう