• ベストアンサー

エクセル検索

A  B         C 111 佐藤      【111】 111 岩本      佐藤 111 榎元      岩本 222 仙田      榎本 222 飯田 222 斉藤 333 飯原 333 佐野      【222】 444 鳥島      仙田 555 凛田      飯田             斉藤 Aの列にクラスの名が表示してあり、B列に名前が表示してあります。 A列B列ともに人数は増える可能性はあります。 それをリストにしたいので C列もしくは別シートにクラス別に縦で表示させるためには どのような数式を使えば表示可能になるでしょうか? 

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

  • ベストアンサー
  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.4

>C列もしくは別シートにクラス別に縦で表示させるためには >どのような数式を使えば表示可能になるでしょうか? Excel 2013で検証してみました。Excel 2007以降のバージョンで再現できると思います。 貼付画像のA列は組の番号として数値を入力しました。 A列は昇順になっていることが必要条件です。 A1は0で表示書式をユーザー定義で 0"組" としました。 C列に111組から順に組番号と名前を抽出しました。 C2=IF(ROW()=2,$A$2,IF(COUNTA(B$2:B$100)-SUMPRODUCT((C1:C$2<>"")*1,ISTEXT(C1:C$2)*1),IF(C1="",INDEX(A:A,MATCH(MAX(C1:C$2,A$1),A:A)+1),IFERROR(INDEX(B:B,LARGE(INDEX((A$2:A$100=MAX(C1:C$2))*ROW(A$2:A$100),,1),COUNTIF(A:A,MAX(C1:C$2))-ROW(#REF!)+MATCH(MAX(C1:C$2),C1:C$2,0))),"")),"")) C2を下へ必要数コピーします。 今回が組番号と名前の列は最大100行としましたが中間で行の挿入をすれば検索範囲は自動的に増加します。

13mtg13
質問者

お礼

ありがとうございます! 助かりました!! ここまでは考えられませんでした。

その他の回答 (3)

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.3

クラス名が添付画像のようにクラスごとにまとまってA2セル以下に入力されており、抽出したいクラスがD1セルに入力されているなら、以下の式を入力して下方向にオートフィルするのが簡単です。 =IF(COUNTIF(A:A,$D$1)<ROW(1:1),"",INDEX(B:B,MATCH($D$1,A:A,0)+ROW(1:1)-1))

13mtg13
質問者

お礼

ちょっと思った感じと違ったので ごめんなさい。 でも今後数式参考にさせていただきます。

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

こんばんは! VBAでの一例です。 ↓の画像のように左側Sheet1のデータをSheet2に表示するとします。 Sheet1の1行目は項目行となっているとして・・・ Alt+F11キー → メニューの「挿入」 → 標準モジュール → VBE画面のカーソルが点滅しているところに ↓のコードをコピー&ペースト → Excel画面に戻りマクロを実行してみてください。 (Alt+F8キー → マクロ → マクロ実行です) Sub Sample1() 'この行から Dim i As Long, lastRow As Long, wS As Worksheet Set wS = Worksheets("Sheet2") Application.ScreenUpdating = False wS.Range("A:A").Clear With Worksheets("Sheet1") lastRow = .Cells(Rows.Count, "A").End(xlUp).Row .Range("A:A").AdvancedFilter Action:=xlFilterCopy, copytorange:=wS.Range("B1"), unique:=True wS.Range("B:B").Sort key1:=wS.Range("B1"), order1:=xlAscending, Header:=xlYes For i = 2 To wS.Cells(Rows.Count, "B").End(xlUp).Row .Range("A1").AutoFilter field:=1, Criteria1:=wS.Cells(i, "B") wS.Cells(Rows.Count, "A").End(xlUp).Offset(1) = "【" & wS.Cells(i, "B") & "】" Range(.Cells(2, "B"), .Cells(lastRow, "B")).SpecialCells(xlCellTypeVisible).Copy _ wS.Cells(Rows.Count, "A").End(xlUp).Offset(1) Next i .AutoFilterMode = False wS.Range("A1").Delete shift:=xlUp wS.Range("B:B").Clear wS.Activate End With Application.ScreenUpdating = True End Sub 'この行まで ※ Sheet1のA列の並びはバラバラでも構いません。 ※ 関数でないのでデータ変更があるたびにマクロを実行する必要があります。m(_ _)m

13mtg13
質問者

お礼

すみません。 マクロが使いこなせないので ごめんなさい。

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

簡単な方法: B列に「番号」列を挿入 B2に =IF(A2="","",A2&"-"&COUNTIF($A$2:A2,A2)) と記入、以下コピー F1にクラスを記入する F2に =IF(ROW(F1)>COUNTIF(A:A,F$1),"",VLOOKUP(F$1&"-"&ROW(F1),B:C,2,FALSE)) と記入、以下コピーする。 #適切に応用してご利用ください。

13mtg13
質問者

お礼

遅くなりましたがありがとうございます。 今回は列も増やしたくなかったため 今後の参考にさせていただきます!

関連するQ&A

  • エクセルで出席簿を作る

    エクセルの初歩的質問です。 簡単な出席簿を作ろうと思いますがどんな数式を入れたらいいのか調べてもさっぱり解りません。 例えば A列 B列 C列 D列 123 山田 Aクラス 男 456 鈴木 Bクラス 女 789 佐藤 Aクラス 女 と入れた時それぞれクラス別のシートに飛ぶように したいのです。出来ればAクラスでも同じシートに男女別に飛ばすことは出来ますか。 よろしくお願いします。

  • エクセルの検索機能について

     エクセルの詳しい方に質問です。  まず下記のようなデータがあります。  A列  B列  安部  10  佐藤  20  佐藤  30  佐藤  25  田中  10  このデータをもとに下記のような表をつくりたく思っています。  A列  B列  C列  D列  安部  10  佐藤  20   30   25  田中  10 なお、A列はこちらで入力し、B列~D列に式を入力しておき自動計算するようにしたいのです。 わかる方のお力添えをよろしくお願いします。  

  • EXCELで条件に合った行のデータを抜き出して、重複も削除

    excelに関する質問です  | A | B | 1|001|斉藤| -+--+------ 2|001|渡辺| -+--+------ 3|001|田中| -+--+------ 4|001|斉藤| -+--+------ 5|002|飯田| -+--+------ 6|002|矢田| -+--+------ 7|002|飯田| -+--+------ 8|001|渡辺| -+--+------ 9|001|田中| 10| 001 | 斉藤 11|   . | 渡辺 12|   . | 田中 A1:B9にデータが入っています。 A10に番号「001」を入れるとB10:B12に その番号のデータを検索してきて入るように 関数を利用したいのですが、上手くいきません (A10に番号「002」を入れると飯田、矢田のデータが表示される) MATCH関数とindirect関数、index関数などを使い、検索結果が重複して表示されるようには出来たのですが やり方を教えて下さい、お願いします。

  • Excel 検索結果の表示について

    Excel2000を使用しています。 【現在の状況】 ■A列に検索値が入力されています。 ■B列に結果を表示させたいので、空欄です。 ■C列にVLOOKUPの式が入力されていて、結果が表示されています。 ■別シートに検索範囲が入力されています。 【作業したい内容】 ■A列の検索値を使用して、C列に結果が表示されているのですが、C列の結果をB列に表示させたい。 ■B列に「=C1」と入力せず、B列は空欄の状態で、C列のVLOOKUPの式に、B列に値を表示させるように、式を入れたい。 以上、どのような式をC列に記述すればいいのでしょうか。 ご回答の程、よろしくお願い致します。

  • データベースを検索するマクロ(エクセルで)

    エクセル初級者です。 データベース化してある顧客名簿がsheet2にあり、A列は個人別コードが、B列は氏名、C列は郵便番号、D列は住所、・・・といった感じになってます。 教えていただきたいのは、sheet1上で氏名を入力して検索するフォームを作り、検索の結果、ヒットしたすべてがsheet3上に抜き出す方法って可能ですか? うまくいえないのですが、例えば「佐藤」と入力して検索ボタンを押せば、sheet2のすべての佐藤さんのデータがsheet2の形式と同じ形でsheet3に表示されるようにしたいのです。 情報に不足があれば補足しますので、どなたかVBAの書き方を教えてください。よろしくお願い致します。

  • エクセルで、リストから絞込み選択できるようにしたいです。

    学年 グループ 名前 1  A    佐藤 1  A    鈴木 1  B    田中 1  B    伊藤 1  C    山本 1  C    高橋 2  A    中村 2  A    加藤 ・ ・ 3  C    村山 のようなリストがあるとします。 別の空白の表を作りまして 列A 列B   列C 学年 グループ 名前 ・▼ ・▼   ・▼ ・・ ・・   ・・ 列Aはプルダウンで学年「1~3」を選択できるように します。同様に列Bはグループ、列Cは名前を選択できる ようにします。 (入力規則→入力値の種類をリスト→元の値を設定  までは自力でできます・・・) 普通に設定しますと 列Aではプルダウンから「1~3」が選択でき、 列Bではプルダウンから「A~C」が選択でき、 列Cではプルダウンから「佐藤~村山」が選択できます。 実現したいのは、列Cのプルダウンの際に絞込みを することです。 具体的には 列Aのセルでたとえば「1」、列Bのセルで「A」を プルダウンで選択すると、 列Cのプルダウンリストの候補に「佐藤」「鈴木」 だけが出てくるようにしたいのです。 列Aと列Cの間だけ結びつけることはなんとかできます。 (列Aで「1」を選ぶと列Cで「佐藤~高橋」に絞り込む) が、3列パターンにすると全く動きません。。 どなたか教えてください。お願いしますっ。

  • 【至急】エクセルで、一致するデータを紐付けたい

    エクセルでsheet1のA列のデータに、sheet2の並び順の異なるA列~F列のデータを紐付け、一致、並び替えする方法がありましたら、ご教授ください。よろしくお願いいたします。 ※sheet1のA列とsheet2のA列は、同じデータですが順不同で入力されています。 sheet1 A   B   C   D   E   F   G 田中 斉藤 新井 伊東 塚越 佐藤 吉田 sheet2 A   B    C     D      E      F   斉藤 東京都 文京区 123-0000 0120-・・・ × 伊東 東京都 台東区 123-1000 0120-・・・ ○ 新井 東京都 江東区 123-0000 0120-・・・ × 吉田 東京都 豊島区 121-0100 0120-・・・ △ 塚越 東京都 文京区 122-0000 0120-・・・ × 佐藤 東京都 新宿区 121-0000 0120-・・・ ○ 田中 東京都 大田区 111-0000 0120-・・・ ◎ ◆得たい結果◆ sheet1 A   B   C    D      E      F     G 田中 田中 東京都 大田区 111-0000 0120-・・・ ◎ 斉藤 斉藤 東京都 文京区 123-0000 0120-・・・ × 新井 新井 東京都 江東区 123-0000 0120-・・・ × 伊東 伊東 東京都 台東区 123-1000 0120-・・・ ○ 塚越 塚越 東京都 文京区 122-0000 0120-・・・ × 佐藤 佐藤 東京都 新宿区 121-0000 0120-・・・ ○ 吉田 吉田 東京都 豊島区 121-0100 0120-・・・ △

  • エクセルで検索、抽出を教えてください。

    いろいろ考えたのですが、わかりません。ご指導よろしくお願いします。 下記の表があります。A1:C1でタイトル、A2:C7でデータが入っています。Dの列にLOOKUPやMATCHなどを用いてそれぞれの氏名の人のQ3の回答を出したいのです。(D2,D3,D4にはうううを入れたい。D5,D6,D7にはかかかを計算で入れたいのです。)よろしくお願いします。   A, B, C, D 1 氏名,Q,こたえ 2 佐藤,Q1,あああ 3 佐藤,Q2,いいい 4 佐藤,Q3,ううう 5 鈴木,Q1,えええ 6 鈴木,Q2,おおお 7 鈴木,Q3,かかか

  • Excelでのセルの検索

    セルの検索方法について、質問します。 現在の表       A    B      C     D --+-------+-------+-------+-------+------+-------+------- 1   鈴木   加藤   斎藤    --+-------+-------+-------+-------+------+-------+------- 2   佐藤   清水         --+-------+-------+-------+-------+------+-------+------- --+-------+-------+-------+-------+------+-------+------- 3   山田              --+-------+-------+-------+-------+------+-------+------- 理想形       A    B      C     D --+-------+-------+-------+-------+------+-------+------- 1   鈴木   加藤   斎藤   斎藤 --+-------+-------+-------+-------+------+-------+------- 2   佐藤   清水         清水 --+-------+-------+-------+-------+------+-------+------- --+-------+-------+-------+-------+------+-------+------- 3   山田              山田 --+-------+-------+-------+-------+------+-------+------- 上記のような表(現在の表)で、D列に空白セル以外の一番右のセルを探して表示できるような関数を探しているのですが?。 仕事で進捗表の作成を行っており、困っていますのでよろしくお願い致します。

  • エクセルで、2つの列を比較して判定する方法。。。

    宜しくお願いします。 2つの列を比較して、判定結果を表示させる方法はないでしょうか? 例えば A         B 田中      加藤 佐藤      志村 吉田      吉田  のような列があった場合、 A列の文字がB列にもあった場合は1 A列の文字がB列になかった場合は0 をかえす式は作れないでしょうか? A         B     C 吉田      加藤     1(”吉田”はB列にあるので1)  佐藤      志村     0(佐藤はB列にないので0) 田中      吉田     0(田中はB列にないので0) やり方を教えてください。 宜しくお願いします。

専門家に質問してみよう