• ベストアンサー

エクセルのデータベースについて

エクセルの表を項目ごとに振り分けたいのですが、関数などを使おうとしてもいまいちひらめきません。 何か良い方法がありましたらお教えください。 具体的に行いたいことは・・・ 区分 氏名           区 分    A  あ          A  B  C A  い          あ  え  か A  う     →    い  お B  え          う  B  お             C  か           という感じで区分ごとに振り分けしたいと思っています。  データは400個ほどあり、区分も細かいので何か良い方法があればよろしくお願いします。

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

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

どんなに区分が増えても、データが増えても式を変える必要もなく、比較的分かり易く単純な方法として作業列を作って対応する方法を提案します。目障りでしたら作業列は最後に非表示にすればよいでしょう。 例えばシート1のA2セルから下方に区分名が、またB2セルから下方に氏名があるとします。 作業列は離れた列で構いません。例えばE2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(A2="","",A2&COUNTIF(A$2:A2,A2)) 次にシート2にお求めの表を作るとします。 A2セルから横のセルにはA,Bなどの区分名を入力します。 A3セルには次の式を入力して右方向にオートフィルドラッグしたのちに下方向にもオートフィルドラッグします。 =IF(OR(COUNTIF(Sheet1!$E:$E,A$2&ROW(A1))=0,A$2=""),"",INDIRECT("Sheet1!B"&MATCH(A$2&ROW(A1),Sheet1!$E:$E,0)))

KYO6171
質問者

お礼

みなさまご回答ありがとうございます。 おかげさまで無事解決することが出来ました。 エクセル初心者の私にも出来る方法があったとは感激です。 失礼ながら、ポイントは私に合っていた方法をご教授いただいた方にお付けいたしましたことをお詫びさせていただくとともに、、失礼ながら、お礼を一箇所にまとめさせていただきました。

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

その他の回答 (3)

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

こんばんは! すでに回答は出ているみたいですが・・・ 他の方法の一例です。 画像の表のような配置で、説明させていただきます。 こちらも配列数式になってしまいますので。 ↓の数式をD2セルにコピー&ペーストして =IF(COUNTIF($A$2:$A$7,D$1)>=ROW()-1,INDEX($B$2:$B$7,SMALL(IF($A$2:$A$7=D$1,ROW($A$1:$A$6)),ROW()-1)),"") F2キーを押すか、数式バー内を一度クリックした後に Shift+Ctrl+Enterキーを押してください。 そうすると数式の前後に { } マークが入り、配列数式になりますので それを行方向と列方向にオートフィルでコピーすれば 希望に近い形にならないでしょうか? 以上、参考になれば幸いです。m(__)m

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

  A   B  C D  E  F 1 区分 氏名    区分 2 A  あ    A B C 3 A  い    あ え か 4 A  う    い お 5 B  え    う 6 B  お 7 C  か 8 1.セル D3 に次の[条件付き書式]を設定     数式が   =ISERROR(D3)     フォント色 白 2.セル D3 に次の配列数式を入力     {=INDEX($B$2:$B$500,SMALL(IF($A$2:$A$500=D$2,ROW(A$2:A$500),""),ROW(A1))-1)} 3.セル D3 を右方および下方にドラッグ&ペースト

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

一例です。 仮に元データはA:B列、F:H列の1行目は区分コードを設定とします。 (1)F2に=IF(COUNTIF($A:$A,F$1)>ROW(A1)-1,INDEX($B:$B,SMALL(IF($A$2:$A$400=F$1,ROW($A$2:$A$400),99999),ROW(A1))),"")を設定、縦横に必要分コピー  尚、配列数式の為、入力完了時にshift+ctrl+enterキーを同時押下して下さい。 (2)F:H列コピー→貼り付け先で「形式を選択して貼り付け」→値を選択→OK

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

関連するQ&A

  • エクセルでデータの抜き出してについて

    A3に項目1、B3に項目2、C3に項目3、D3に項目4、E3に項目4がありそれぞれデータが入っています。 この表から項目1にある総務課のみデータを抜き出すためにはどのようにしたらよいですか。 エクセルバージョンは2019です。 関数で抜き出す方法を教えて下さい。

  • エクセルデータベースの結合について

    2つのエクセルデータを結合したいのですが、欠番があり、うまくいきません うまく説明できなく、分かりにくくて申し訳ありませんが、具体的には   A   B    C             A    B    C        1 No. 氏名  1月金額         1 No.   氏名  2月金額     2 001 田中  500           2 002  山田   100 3 002 山田  300    と      3 003  鈴木   150 4 003 鈴木  200            このようなそれぞれのデータがあります。右のデータはNo.001田中が欠番になってます。 このままコピーして貼り付けると一行ずれてしまします。ずらして貼り付ければいいのですが、数百人ぐらいのデータで、かなりの欠番がありますので手作業でずらして貼り付けるには効率的でなく大変です。  A   B    C      D                1 No. 氏名  1月金額   2月金額           2 001 田中  500     空欄       3 002 山田  300     100       4 003 鈴木  200     150      のように自動的に結合する方法があれば教えていただきたいのですが、なにぶん初心者なもので困っております。なにとぞ宜しくお願い致します。

  • エクセルについて教えてください。

    エクセルについて教えてください。 コードの振られたデータシートが新旧2つあります。旧データに含まれる項目を新データに追加項目として反映させたいのですが、関数は何を使って、どう範囲などを入れたらよいのでしょう。追加・削除されたコードもあります。 このような感じのデータです⇒新データはA列:コード、B列:氏名となっており、旧データには、AB列にC列:グループ名が入っています。 新データにC列の内容を反映させ、最終的にはグループごとにソートをかけたいのです。

  • エクセルの関数…?

    過去の質問を探しましたがうまくヒットしなかったのと、何万件もあったのでもし同じような質問がありましたらお詫びすると共に、再度質問をお許し下さい。 エクセルの表を作成し、そこにランダムに項目などを入力したとします。 で、最終的に同じ項目だけをまとめて表示する(Aの項目がある行だけを拾い出してまとめて、また別のBの場合も同じ)ことになったとき、それは関数を使えますか? その時はIF関数を使うんでしたっけ? 最後はAの項目が揃っている分の表、Bの表、Cの表…とまとまった表を作りたいんです。 昔、少しだけ関数をかじったことがあったんですが、ど忘れしてしまいました(汗) もしこんな言葉足らずの質問がわかる方がいましたらよろしくお願いいたします。

  • エクセル表のグループ分け

    以前ここで 「エクセル2010を使用しています。  表の項目の冒頭にA,B,C...などの記号で分類する用のセルをつけ、その分類ごと、  たとえばAと分類した項目のみ別の表に反映することは出来ますか?  ある表をA,B,C...で分類し、その中のAの項目のみを別の表にする感じです。  フィルターを使って特定の分類の項目だけを表示させる方法ならわかるのですが…」 と質問した者ですが、その時に帰ってきた回答が 「記載した項目をVLOOKUP関数で比較抽出し  同時にIF関数で抽出されたものに通し番号をつけ  再度VLOOKUP関数で通し番号の通りにつめて表示させる  でOKです。」 というものでした。しかし、私はVLOOKUP関数、IF関数を使ったことがないのでよくわかりません。 とりあえずネットを参考にしてVLOOKUP関数を使ってみたのですが、 今度は表の中にたくさんあるAの項目のうち1つしか表示されないという疑問が発生しました。 VLOOKUP関数をコピーしてみても表示されるのは上記の1種類のデータだけ… どうすれば表の中のAの項目をすべて抽出して別の表にすることができるのでしょうか?

  • エクセルで・・・

    会社で毎日、数十件のデータが届きます。 一日の終わりに今日届いたデータの各項目ごとの数がでます。 それを使って各項目の日々の推移を把握するのですが、今はエクセルで作った表を印刷して、手で書き込んでいます。これでは計算間違いや時間がかかるので、エクセルで自動計算したいのです。 例えば、 2月6日  項目A:20 項目B:10 項目C:5 6日計:35  だったとします。      2月7日は、 項目A:10(7日分)/30(6日の20+7日の10) 項目B: 5(7日分)/15(6日の10+7日の5) 項目C:30(7日分)/35(6日の5+7日の30) 7日計:45(7日分)/80(6日計35+7日計45) というように、1日分の各項目の数と前日までの数+今日の数を/で区切って表示したいのですが・・・。 こんなことって可能なのでしょうか。他にもっと見やすい表示方法があればアドバイスをお願いします。

  • エクセルのデータベースで参照・貼り付け

    エクセル2003で、データベースを作成してあります。 別のシートに、コードを入力すると、データベースを参照して関連の項目を貼り付けるという作業したいと思っています。 例 シート2にデータベース住所録を作成。 [コード][氏名][住所][電話]... シート1の[A]列にコードを入力すると、データベースから氏名をコピーし[B]列に貼り付け...[C]列に住所... ※貼り付けたデータを後で編集したいため、貼り付けで行いたいと思います。 ※マクロではなくて、関数で行いたいと思います。 ※実際には住所録ではなくて、在庫管理です。 よろしくお願いいたします。

  • Excelで・・・関数?VLOOKUP?困っています!!

    Excel初心者です。 どうしてもすぐに作らないといけないのですが どういう関数を使ったらいいのかわかりません。 どうか方法をお教えください! --------------------------------- Excel2002を使用。 まずシート1に   A B C 1 あ 2 い 3 う 4 え   つづく・・ とあるとします。  シート2には   A B C 1 あ 5 2 う 10 3  4   つづく・・・    という感じでシート1の列番号どおりに データが並んでるというわけではありません。 このシート2の表をもとに シート1の B1に「5」B3に「10」と自動的に 入るようにしたいのです・・・。 うまく説明できなくてすみませんが、 大急ぎなので、ぜひぜひなにかいい関数とか 方法をお教えください!よろしくお願いします。 お待ちしています。

  • エクセルでできますか?

    エクセルでできますか? ちょっと説明しづらいのですが、 氏名  項目1  項目2  項目3・・・ Aさん  aaa     1     1 Bさん  aaa     0     1 Cさん  bbb     2     0 Dさん  bbb     1     1 このような内容のリストから aaaに該当  項目2  項目3 Aさん       1     1 Bさん       0     1 bbbに該当  項目2  項目3 Cさん       2     0 Dさん       1     1 といったリストに振分けを行いたいのですが、 関数を使用して可能であれば、その数式を 教えていただきたいです。 すみませんが、よろしくお願いします。

  • EXCELの表作成について

    EXCELについて質問です。 表Aと表Bから表Cのような結果を出すためには、 どうすれば良いでしょうか? 下記の例ではたいしたデータではありませんが、 膨大な数のデータがあるとして、関数などEXCELの機能を活用して簡単に 結果を出したいと思っています。 【表A】 A    B     C    D 1     A店 B店 C店 2 パソコン 3 掃除機 4 冷蔵庫 5 テレビ 【表B】 A店   B店   C店 パソコン パソコン パソコン 掃除機  冷蔵庫  掃除機 冷蔵庫  テレビ  テレビ 【表C】 A    B    C    D 1     A店 B店 C店 2 パソコン ○ ○  ○ 3 掃除機  ○    ○ 4 冷蔵庫  ○ ○ 5 テレビ     ○  ○ ※表A内で、表Bに該当する箇所に"○"が記入されます。 ※1~5はEXCELの行 ※A~DはEXCELの列 当方、EXCELは使い慣れていいますので、 多少難しい方法でも構いません。 (ややこしい関数の組み合わせも理論さえ理解すれば大丈夫です) どなたか分かる方がいましたら、 よろしくお願い致します。

専門家に質問してみよう