• ベストアンサー

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/17069)
回答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

専門家に質問してみよう