• ベストアンサー

検索値から、その行の抽出。II

検索値から、その行の抽出。II シート1にある“あか”の行をシート2に抽出。 任意の番号をふった後、番号の若いもの順に並び替えをしたい。 また、“あか”のみの縦の合計を求めたい(緑色部分) 明日仕事の資料を作りたいので、ご回答いただければ幸いです。 よろしくおねがいします。

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

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

こんばんは! 一例です。 今回はSheet2のA列の番号に重複があるということですね? ↓の画像で説明します。 Sheet1に作業用の列を設けています。 作業列F2セルに =IF(COUNTIF(A2:E2,Sheet2!$A$1),ROW(),"") という数式をいれ、オートフィルで下へずぃ~~~!っとコピー Sheet2のB3セルに =IF(COUNT(Sheet1!$F:$F)<ROW(A1),"",INDEX(Sheet1!A:A,SMALL(Sheet1!$F:$F,ROW(A1)))) という数式をいれ、列方向と行方向にオートフィルでコピーします。 そして、Sheet2のA列に好みの番号を入力。 H3セルに =IF(COUNT($A$3:$A$1000)<ROW(A1),"",SMALL($A$3:$A$1000,ROW(A1))) I3セルに =IF($H3="","",INDEX(B$3:B$1000,SMALL(IF($A$3:$A$1000=$H3,ROW($A$1:$A$998)),COUNTIF($H$3:$H3,$H3)))) これは配列数式になりますので、この画面からコピー&ペーストしただけではエラーになると思います。I3セルに貼り付け後、F2キーを押す、またはI3セルをダブルクリック、または数式バー内で一度クリック。 編集可能になりますので、Shift+Ctrlキーを押しながらEnterキーで確定します。 このI3セルをM3セルまでオートフィルでコピー。 最後にH3~M3セルを範囲指定し、M3セルのフィルハンドルで下へオートフィルでコピーすると 画像のような感じになります。 ここまでくれば後は簡単です。 J1セルは =SUMIF(I3:I1000,A1,J3:J1000) L1セルは =SUMIF(K3:K1000,A1,L3:L1000) という数式を入れています。 尚、この数式はSheet2の1000行目まで対応できるようにしてみました。 実際のデータがこれだけないのであれば範囲指定の領域はアレンジしてみてください。 この場合配列数式の中に「1000」と「998」がありますので、これを間違えないようにしてください。 仮に100行目までの数式だと 1000 → 100  998 → 98 とします。 以上、長々と失礼しました。 参考になればよいのですが・・・m(__)m

hyolli
質問者

お礼

お返事が大変遅くなりました。 この数式を使い、毎日の仕事が大変楽になりました。 迅速にお答えいただいたのに、お礼が遅くなり失礼しました。 ありがとうございました。m(..)m

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

その他の回答 (3)

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.4

一例です。(VBAを使用していますので参考程度にして下さい) (1)シート2の表見出しを設定 (2)シート2のC1に=SUMIF(B3:B100,A1,C3:C100)、E1に=SUMIF(D3:D100,A1,E3:E100)を設定    この設定は手順最後でも問題ありません。 (3)シート1のシートタブ上で右クリック→コードの表示→以下のコードを貼り付け→F5キー押下→抽出キーを入力→OK→alt+F4キー押下    因みにマクロコードはシート1に貼り付いたままですので不要でしたらalt+F4キー押下前にそのコードを削除して下さい。 (4)任意番号を入力→シート2の並び替え範囲を選択→並び換えで先頭行は見出し行にチェック→昇順で並び替え 上記はご例示の表を参考にしていますので相違している場合、調整して下さい。 ◎抽出コード Sub シート1を検索して結果をシート2() key = InputBox("抽出コードを入力して下さい。", "抽出コードの入力") Sheet2.Cells(1, 1) = key b = 3 For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row For k = 1 To Cells(i, Columns.Count).End(xlToLeft).Column If Sheet1.Cells(i, k) = key Then Sheet2.Cells(1, 2).Offset(b - 1).Resize(1, 5).Value = _ Sheet1.Cells(1, 1).Offset(i - 1).Resize(1, 5).Value b = b + 1 Exit For End If Next Next End Sub

hyolli
質問者

お礼

マクロを使ったことも、作成したこともなく まだまだ勉強不足ですが、今後の参考にさせていただきます。 ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.3

補足です。 お分かりと思いますが、Sheet2のA1セルに抽出したい項目が入力されている場合は、セル参照の数式にしてください。 また、Sheet1のデータ数が20行を超えている場合は20の数値を1000などに適宜変更してください。 Sheet1!$A$2:$A$20="あか" → Sheet1!$A$2:$A$1000=$A$1

hyolli
質問者

お礼

親切にありがとうございます。 参考にさせていただきます

全文を見る
すると、全ての回答が全文表示されます。
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.2

No1の回答と同じレイアウトで表示するなら、Sheet2のB2セルに以下の式を入力し、Ctrl+Shift+Enterで確定し、右方向および下方向にオートフィルします。 =IF(SUMPRODUCT(((Sheet1!$A$2:$A$20="あか")+(Sheet1!$C$2:$C$20="あか")>0)*1)<ROW(A1),"",INDEX(Sheet1!A:A,SMALL(IF((Sheet1!$A$2:$A$20="あか")+(Sheet1!$C$2:$C$20="あか"),ROW($A$2:$A$20),""),ROW(A1)))) 同様に右の表には以下の式を入力します。 H2セル(下方向にオートフィル) =IF(B2="","",SMALL($A$2:$A$20,ROW(A1))) I2セル(Ctrl+Shift+Enterで確定し、右方向および下方向にオートフィル) =IF(B2="","",INDEX(B:B,SMALL(IF($A$2:$A$20=$H2,ROW($A$2:$A$20),""),COUNTIF($H$2:$H2,$H2))))

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

関連するQ&A

  • 検索値から、その行の抽出。

    検索値から、その行の抽出。 シート1のデータがあります。 シート2のA1に検索値を置き、“あああ”の行をシート2に抽出。 シート2のA列に任意の番号を振った後、その番号順での表示(ピンク部分)を希望。 自分でいろいろと調べて試行錯誤したのですが、 思うようにいかず、ご質問させていただきます。 ご回答よろしくおねがいします。

  • エクセルで行のみのデータを並び替え

    エクセル2000を使用しています。 LOT6データを整理しています。 横は1~43 縦は回数 各々出た所に○印を付け、縦の合計はCOUNTIFで計算しています。 この合計の数字を多いもの順で並び替えをしたいのですが、 列の並び替えは出来るのですが、行だけのの並び替えが出来ません。 どのように行えば出来るのか教えて頂ければ幸いです。 例)    A10 B10 C10 D10・・・・AQ10 行1  1  2  3  4 ・・・ 43  行6  3   1  4  2・・・・6 このような時、 AQ10 C10 A10 D10 B10  6  4  3  2  1  の様に行6のデータを並び替えをしたいのです。 宜しくお願い致します。   

  • javascriptで行を抽出したいです。

    こんにちは javascriptを使って、textareaに入力された文字列の一行目を抽出し、抽出したものに処理をかけるプログラムを作成したいです。 文字を指定して行を抽出する方法はわかるのですが、指定した行番号から行を抽出するやりかたがわからないです。 どなたか知恵をお貸しいただけないでしょうか? よろしくお願いいたします。 例 明日11日の天気は雨です。 これから1週間は天気が悪そうです。 ↑ここから一行目を取り出し、 明日11日の天気は雨です。 ↑処理をかけて 11 というような形のものを作りたいです。

  • 行抽出マクロについて教えてください。

    エクセルのシート1のB列に整理番号(順不同)が書かれてあり、シート2のC列にも整理番号(順不同)が書かれてあります。 シート1は約数千行・100列、シート2は約数万行・100列です。このシート1のB1と同じ整理番号をシート2のC列より上から検索して、最初に見つかったセル(仮にC7)を含む行をシート3にコピーする。 次にB2について同様にしてシート3にコピーする。この時の検索範囲はC8以下(C7以上は検索範囲外)とする。 同様な作業を続けて、最終的には、シート3のC列がシート1のB列と同じにしたい。 これをマクロで組みたい。どなたかご教授お願いいたします。

  • エクセルで20万行あるシートから100行ずつ抽出したいのですが

    お世話になります。 エクセルで20万行のデーターがあります(時刻と温度のデーター)。 これを100行ずつ抽出し、別のシートにコピーしたいのですがどうすればいいでしょうか? +’sheet’A1 +’sheet’A101 +’sheet’A201 ・・・ と手入力では大変ですので、ドラッグで一度に出来るやり方を教えて頂けると幸いです。 よろしくお願いします。

  • エクセルでデータの並び替えをすると隠れたところに行が含まれる

    オートフィルタを使いその後データの並び替えをしたところ隠れたところに別のデータの行が含まれていた。 例 陸上の大会毎の記録整理 オートフィルタで「100m」を抽出 記録順に並び替え 行番号の行間にポインタを合わせたところ偶然に高さゼロの行が隠れていた。 行間を広げてみたら「400mH]のデータが隠れていた。 以前、メールで添付されたシートを開いたところ同じように一行隠れたままのことがあった。(同じ職場で画面を確認したところ、隠れていることが判明した)

  • 抽出された1行おきのデータだけを合計したい

    1行おきのデータだけを合計するという方法は過去の情報を見て習得し便利に使わせて頂いております。 実は、今回フィルターで抽出されたデーターの1行おき合計を実施したいのです。 私の部下が、1グループの情報を複数行にまとめて表を作成したために今回のような質問に至りました。 なまえ 血液型  身長  ****            体重 --------------------------------- Aさん  O   176 Aさん  O    71 Bさん  A   155 Bさん A    60 Cさん  O   180 Cさん  O    76 *** ***  これは本当に例えの表なんですが、O型だけの人間の体重の合計を計算させたいのです。血液型だけの指定での合計なら他の方法も・・ということもあるでしょうが、他に複数の条件等を指定して抽出させることを考えますと、フィルターで抽出条件を任意に指定して抽出を考えたいのです。抽出後の表示されたデーターから合計を算出する方法・・ さてこんなこと出来ますか?

  • エクセル データの抽出について教えてください。

    エクセルのデータの抽出について教えてください。 大量のデータ(数字のコード)がランダムに縦に並んでいるのを、並び替えで日付順にしたのですが。 重複しているのがとても多く重複しているのは日付が早いのだけを取り出したいのですが。なにかよい方法はないでしょうか? 重複しているのに(重複していらないのに)標しでわかりやすくしてあとでフィルタで抽出して削除でもしようかと思うのですが。 標しがつけれるようなやりかたおしえてください。 

  • エクセル:文字列間の行を抽出

    エクセルファイルで1つのシートに複数の表がひたすら縦に並んでいます。それぞれの表が別々のシートに記載されるようにしたいと思っています。 どの表も基本的な書式は同じなので列数は同じなのですが、行数は表ごとに異なります。 また各表の右下(C列)にTotalという文字列が必ずあります。 文字列Totalがある行の直下の行から次のTotalのある行まで抽出して、シートを作成できれば良いのだと思うのですが、どうすれば可能になるのか分かりません。 どなたか教えていただけ無いでしょうか。

  • 1行から2行へのコピーなんですが

    データベースとなるシートの任意の連続する複数行を違うシートの2行にコピーしたいと考えています。 要は、 番号、氏名、社員番号、生年月日・・・と続く1行のデータを 印刷するためのシートへ 番号、社員番号・・・ 氏名、生年月日・・・のように2行にしたいのです。 1行から1行であればエクセルの基本的な機能で出来ますが、 1行から複数の行へ、終わったら次の行へ移る、の2点でつまづいております。 マクロ初心者へアドバイスお願いします。

このQ&Aのポイント
  • 以前から「オフラインです」というエラーメッセージが出ていたが、USBを入れ直すと印刷可能になった。
  • しかし、今回同様のことをしてもエラーメッセージが消えず、電源を入れ直してもプリンタの電源のランプが点灯しなくなった。
  • 困っているので、回復方法を教えてください。
回答を見る

専門家に質問してみよう