• ベストアンサー

Excelで値を抽出する方法

現在以下のようなExcelシートがあります。      1958年 1959年… 北海道1月 ○○(データ)○○ 北海道2月 ○○    ○○  ・  ・ 北海道12月○○   ○○ 青森県1月○○   ○○ 青森県2月○○   ○○   ・  ・ 青森県12月 岩手県1月  ・  ・ これを以下のような並びにしたいのですが、LOOKUP関数などを使ってできないでしょうか?よろしくお願いします。 1月  1958年 1959年… 北海道○○  ○○ 青森県○○  ○○ 岩手県○○  ○○  ・  ・ ※ちなみにパソコンのOSはWindows XPで、使っているのはExcel2007です。また一番最初に書いた表は、「北海道」で1つのセル、「1月」で1つのセルにしています。

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

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

安直ですが、オートフィルタを利用されては如何でしょうか。 (1)シート任意セルを選択→データ→フィルタ→オートフィルタ (2)「月」の列にあるフィルタボタンで1月~12月を選択、抽出範囲を別シートにコピー&ペーストして表編集

maydraft
質問者

お礼

ご指導の方法で試したら、うまくいきました。 だいぶ作業量が減りました、どうもありがとうございました。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

セルのデータの有様が十分わからないが、勝手に解釈して 標準モジュールには、月数を割り出す関数を作る。 質問の書き方だと、月数を決めるのさえ関数では難しい。 (県と月数はセルは分けてあるのか質問ではっきりすべきだが?) Function tuki(a) s = "" p = InStr(a, "月") For i = p - 2 To p - 1 If IsNumeric(Mid(a, i, 1)) Then s = s & Mid(a, i, 1) Next i s = StrConv(s, vbNarrow) tuki = Val(s) End Function ーー (例データ) B列に1列挿入して=tuki(A2)と入れて下方向に式を複写 A列   B列 北海道1月   1 北海道2月   2 北海道3月   3 北海道4月   4 北海道12月   12 青森県1月   1 青森県2月   2 青森県3月   3 青森県4月   4 青森県11月   11 青森県12月   12 岩手県1月   1 岩手県2月   2 岩手県3月   3 B列でソート ーー北海道1月 1 青森県1月 1 岩手県1月 1 北海道2月 2 青森県2月 2 岩手県2月 2 北海道3月 3 青森県3月 3 岩手県3月 3 北海道4月 4 青森県4月 4 青森県11月 11 北海道12月 12 青森県12月 12 この表を月見出し行を挿入して整える。計数データ列も同時に範囲指定して、ソートすること。 ーー 北海道ー青森ー・・の順が保存されることに注意。A列をソートキーに指定すると県順序が崩れるから注意。 === 47府県そろっているのかなど規則性があれば関数でも不可能ではないかもしれないが関数では難しい。 北海道のあとに青森が来るというルールさえも関数では取りにくい。 従って完成の表で北海道の後に青森を持って来ることが難しい。

maydraft
質問者

お礼

不十分な点もあったようですが、回答いただきありがとうございます。 関数ではなく、ソートを使うという手もあったのですね。 今後の参考にさせていただきます。 ありがとうございました。

関連するQ&A

  • エクセル 行列の条件からデータを検索する

    いつもお世話になります。 Sheet1に、下記の表があります。 (空白),北海道,青森,岩手 売上金額,1000,500,200, 売上数量,10,5,3, という上記の表から、Sheet1のセルA1に岩手県の売上数量のみを表示させたいのですが、どのような関数もしくはマクロを使えば良いのでしょうか?

  • エクセル 2つのシートの抽出

    シート1 コード|地域|住所 0001|青森A|青森県青森市○丁目○-○ 0002|青森D|青森県青森市×丁目×-× 0003|岩手B|岩手県岩手市○丁目○-○ 0004|岩手D|岩手県岩手市×丁目×-×         シート2   コード|(住所を抽出したい) 0003| 0001|  シート1は一覧表で、シート2は今回の対象だとします。 シート2のコードとシート1のコードが一致したら、 シート2のB列にシート1の住所を抽出したいのですが、どのような方法があるのでしょうか?教えて下さい。

  • 【EXCEL】ワークシート名を変更方法しっていますか!?

    以下のようなものをワークシート名として一括変換する方法は ありますでしょうか? (以下の例です) 行番|都道府県|人口 --------------------------- 1  |北海道 |50万人   2  |青森県 |20万人 3  |岩手県 |10万人 4  |宮城県 |30万人 5  |秋田県 |25万人 この表でいうと都道府県名の列の行名(都道府県名)を ワークシート名に一括に変換する方法ってありますでしょうか? 上の表でいいますと5個ワークシートが出来て |北海道|青森県|岩手県|宮城県|秋田県|  と言う感じになります。 ご助言のほどよろしくお願いします。

  • Excel 関数を使う? 抽出データ

     以下について教えてください。 ============================== 【基になる表--「A」の表と呼ぶことにします。】  列方向のリストには左から「月」「日」「地域」「数」が並んでいる。  「月」には1月から12月までのデータが、 「日」には1日から30もしくは31日のデータが、 「地域」には北海道、青森、新潟、東京、大阪の5つの地域が、 「数」には売上数が並んでいるとする。 【基になる表から抽出して作られた表--これから便宜上「B」の表と呼ぶことにします。】  列には「地域」の中から北海道と青森を、 行には「月」から9月を、「日」から15日を、 列と行が交差するセルには「数」を置き、「9月15日の北海道と青森の売上数」の合計を抽出したい。  さらに、Bの表において、 「地域名」の北海道を削除して新潟にしたり、9月15日ではなく9月18日に置き換えても、 列と行が交差するセルに自動的に集計結果が表されるようにしたいのです。  ちなみに、Aの表もBの表も同じブックに作り、シートは別にします。 ===================================  DSumやIfSum関数だと私が作りたいBの表のような形式になりません。列方向にしかラベルを置けません。  ピボットテーブルを使った集計ならば、求めているデータ以外のデータも表示されてしまいます。  どうすれば求めていることができるでしょうか?どうか皆さんの知恵をお貸しください。

  • EXCELの式を教えてください。

    LOOKUP関数で#N/Aのエラーが出ます。EXCEL97です。 1つのシート内でやると、うまくいくのですが、シートをまたがると、エラーが出ます(-_-;)以下のようにA列にある文字と一致したセルの2つ隣のセルの数字を持ってくるという単純な式なのです。(C列の100が出ればいいのですが・・) Sheet3に式を入れています。 Sheet1の表   A   B   C 1 4月計    100 2  5月計    200 3 6月計    300 Sheet3の式 =LOOKUP("4月計",Sheet1!A1:A3,Sheet1!C1:C3)

  • Excelのユーザー定義関数

    シート名の一部とセルの値が一致したらLOOKUP関数をかえす関数を作成したいのですが… 例として。。。 シート名:20020301売上表、セルA1:2002/3/1の値があります。 シート名の"01"とA2の日付"1日"が一致したら、セルA2にLookup関数をかえす関数を作成したいのですが。。。 よろしくお願いします

  • Excel、複数シート同セルを別シートで列に表示するいい方法教えてください

    Excelで、複数シートの同セルに数値又は、文字が入力されているものを別シートの列に表示(反映)させるいい方法を教えてください。 ・sheet1は、一覧表(sheet名):纏めるsheet ・sheet2~は、各物件名(sheet名) となっています。 例) sheet2~sheet4のA1セルに数値、B2に文字が入力されていたとします。 それを、sheet1(一覧表)のB2、B3、B4とC2、C3、C4にそれぞれ表示させたい。以下参照。    A    B   C 1 物件名  件数 有・無 2 北海道  10   有 3 青森   15   無 4 岩手   20   無 ・sheet1(一覧表)には項目、物件名は入力済です。  データのみ反映させたい。 ・sheetは、左から順番に並んでます。  (北海道、青森、岩手の順に) ・集計するわけではないので、最終行には合計とかはいりません。 ------------------------------------------------------------- また、できるかどうかわかりませんが、 sheet1(一覧表)を修正したらそれぞれの物件(sheet2~)も修正される。というような、画期的なこともできるのでしょうか? こちらは、上記が出来た上でのことなので、出来なければ出来ないで構いません。 どうぞ、よろしくお願いいたします。

  • エクセル2003で表引き

    こんにちは いつもお世話になっています。 エクセル2003で表引き Sheet1のB列に都道府県名があります。 青森 秋田 岩手 愛媛 鹿児島 Sheet2のK1セルにSheet1のB1データを引いてくるために =Sheet1!B1 という関数を入れました。 Sheet2のL1セルにSheet1のB2を引いてきたいのですがフィルハンドルでのコピーに失敗します。 どのような関数を使えば横にコピーできるようになるでしょうか。Sheet2のM1,N1に同様にコピーしていきたいのです。 縦のデータを横にしたいのではなく、関数で引っ張りたいのです。 よろしくお願いします。

  • エクセルで並べ替えて比較をしたいのですが。

     エクセルで並べ替えて比較をしたいのですが。 現在データの集計を行っているのですが、データ(仮に都道府県名としておきます)比較をするに際して シートAにあるデータとシートBにあるデータが必ずしも全て一致するわけではなく、 シートAは47都道府県全てのデータがあり シートBには所々データが抜けていて順番もAとは全然異なる配列で並んでいます。 この際にシートBのデータをシートAのデータの順番に並び替え一つのシートにし、データの分析を行いたいのですが、シートBの並べ替え方がわかりません。是非教えてください。よろしくお願いします。 変更前 シートAシートB 県名|顧客数 県 名|a|b|c 北海道|156 秋田県|1|5|4 青森県|283 | | | 岩手県|384 岩手県|2|6|4 宮城県|294 福島県|4|6|4 秋田県|148 | | | 山形県|54   青森県|3|5|1 福島県|213  宮城県|1|2|2 変更後 シートAシートB 県名|顧客数  県 名|a|b|c 北海道|156 青森県|283  青森県|3|5|1 岩手県|384  岩手県|2|6|4 宮城県|294  宮城県|1|2|2 秋田県|148  秋田県|1|5|4 山形県|54 福島県|213  福島県|4|6|4

  • エクセルのfind関数で、複数の条件

    エクセルで、住所に"北海道"が含まれていると、"北海道"と表示し、 "青森県"や"岩手県"などが含まれていると、"東北"と表示したいです。 以下の関数を作ったのですが、北海道のときは想定どおり"北海道"と表示されますが、 それ以外のときは#VALUE!になってしまいます。 どこが悪いでしょうか? =if(find("北海道",A1)>0,"北海道",if(find("青森県",A1)>0,"東北",if(find("岩手県",A1)>0,"東北",if(find("宮城県",A1)>0,"東北",if(find("秋田県",A1)>0,"東北",if(find("山形県",A1)>0,"東北",if(find("福島県",A1)>0,"東北","該当なし")))))))

専門家に質問してみよう