どなたかご教示下さい。
下記のようなCSVファイルをエクセルにて扱う場合、
例えば女性で30歳以上かつ8月生まれの人だけを抽出したい時(今年の8月で30歳になる人を含みます)、
どのようにすれば良いのでしょうか?

最初に私が考えたのは、生年月日が8桁の標準形式になっている事から、
このセルを(ここではE2とする)を一旦、3つの別のセルにそれぞれ、
=INT(E2/10000)
=INT(MOD(E2,10000)/100
=MOD(E2,100)
の関数にて、
生年・生月・生日に分解し、さらにそれで得られたセルの値を別のセルに、値貼り付けし、
そして性別と生年と生月のそれぞれのセルを対象に、データ → フィルタ の
「フィルタオプションの設定」にて検索条件を設定し抽出する方法です。
しかしこの方法では、生年月日セルの分割や値貼り付けなどの工数が必要となる事から、
できる事ならこの工数を経ずに、8桁の生年月日に対してダイレクトに生年・生月を判断し、
性別と合わせて条件抽出したいのです。
実際に対象となるファイルは約3万人のリストからの抽出となります。
何か良い方法はありませんでしょうか?
よろしくお願い致します。

<ファイル例>
顧客番号,氏名,フリガナ,性別,生年月日,居住区
0001,山田 太郎,ヤマダ タロウ,男性,19600612,東京
0002,山田 花子,ヤマダ ハナコ,女性,19790806,東京
0003,鈴木 花子,スズキ ハナコ,女性,19820512,福岡
0004,鈴木 次郎,スズキ ジロウ,男性,19790725,福岡
0005,高橋 一郎,タカハシ イチロウ,男性,19701223,東京
0006,佐藤 二郎,サトウ ジロウ,男性,19900524,名古屋
0007,上田 花子,ウエダ ハナコ,女性,19690801,大阪
0008,坂田 次郎,サカタ ジロウ,男性,19590814,福岡
0009,中村 太郎,ナカムラ タロウ,男性,19790915,札幌
0010,中村 花子,ナカムラ ハナコ,女性,19860830,札幌

A 回答 (5件)

NO2です。


抽出条件を勘違いしていました、回答文は読み捨て下さい。

因みに、抽出条件を確定するには生年月日列だけでは抽出できませんので、別セルに抽出する工数が発生する事は避けれないと思います。
例えば、データ→区切り位置で日付にすれば、年齢ならばDATEDIF関数、月はNONTH関数で抽出できます。
    • good
    • 0

普通はエクセルに読み込んで、シート上の関数を


年月日列を対象に
(1)MONTH関数で月を
(2)DATEDIF関数で「単位」をY(年)で出して条件とします。
多分質者はこの関数を知らず、標準と違う法を質問に書いているのでしょう。
(3)女性の条件は、文字列の「女性」を使う
ーー
CSVファイルで19600612となっている項目を、エクセル標準日付(日付シリアル値)のするには,データー区切り位置の操作でウイザード3/3の画面で列ごとに書式を指定できるので、E列は日付指定をする。
>生年月日が8桁の標準形式になっている
こういうのは標準形式とは言わないと思う。
ーーー
また質問に>抽出したい、というが、過去に多分エクセルの関数を用いて毎日抽出の質問が有る。
例えばGoogleで「imogasi方式」で照会してご覧。ほとんど抽出の質問だが、エクセル関数では如何に難しいかが判る。エクセル関数では条件による抽出は難しいのを知らないのだ。
現状の質問者には、過ぎたる質問と思うので、相当勉強してください。
ーー
上記3条件で、作業列にコード1を表示する関数も、3条件では、SUMPRODUCT関数しかないと思うが、一言も質問に出ていない。
この関数知ってますか。AND関すでも出来そうだが。
ーーー
質問例で説明してみる。
データ部ー区切り位置で作った状態
A-F列
1山田 太郎ヤマダ タロウ男性1960/6/12東京
2山田 花子ヤマダ ハナコ女性1979/8/6東京
3鈴木 花子スズキ ハナコ女性1982/5/12福岡
4鈴木 次郎スズキ ジロウ男性1979/7/25福岡
5高橋 一郎タカハシ イチロウ男性1970/12/23東京
6佐藤 二郎サトウ ジロウ男性1990/5/24名古屋
7上田 花子ウエダ ハナコ女性1969/8/1大阪
8坂田 次郎サカタ ジロウ男性1959/8/14福岡
9中村 太郎ナカムラ タロウ男性1979/9/15札幌
10中村 花子ナカムラ ハナコ女性1986/8/30札幌
ーーーーーー
式で作ったデータ部文
H,J-M列
0FALSEFALSE48TRUE
0TRUETRUE29FALSE
0TRUEFALSE26FALSE
0FALSEFALSE29FALSE
0FALSEFALSE38TRUE
0FALSEFALSE18FALSE
1TRUETRUE39TRUE
0FALSETRUE49TRUE
0FALSEFALSE29FALSE
0TRUETRUE22FALSE
J列J2 =D2="女性"
K列K2 =MONTH(E2)=8
L列L2 =DATEDIF(E2,"2009/4/20","Y")
M列M2 =DATEDIF(E2,"2009/4/20","Y")>30
それぞれ下方向に式複写したことで出るデータ
3条件(J,K,M列)のAND条件がH列で
式は
=SUMPRODUCT((D2="女性")*(MONTH(E2)=8)*(DATEDIF(E2,"2009/4/20","Y")>30))
条件にかなうものは、第8行のみ。実際は複数1が出る場合が有る。
これ(複数行の場合も)を別シートなりに、ぬき出すのは、前記のWEBでの「imogasi方式」を勉強してください。ほかにもやり方は、他の方の回答に載ってます。
ーー
H列の1を対象にフィルタという手操作で我慢するとかもある。
>エクセルにて、CSV形式の顧客名簿から
A。CSVファイルからエクセルに読み込む
Bエクセルに読み込まれた後
を分けて質問すること。
エクセルのシートのデータになってしまえば、CSVから読み込んだ、入力した、関数で導出したなど、来歴はエクセル関数を使う上では、関係ないことを知るべし。
    • good
    • 0

No1です。


30歳のみではなく、30歳以上でしたね。訂正です。
=AND(DATEDIF(E2,DATEVALUE("2009/8/31"),"Y")>=30,MONTH(E2)=8,D2="女性")
    • good
    • 0

次の方法は如何でしょうか。


(1)生年月日列を選択→データ→区切り位置→次へ→次へ→列のデータ形式で「日付」を選択→完了
(2)フィルタ→オートフィルタで性別列で「女性」、生年月日列で「1979/8/1」「以降」「and」「1979/8/31」「以前」で抽出
    • good
    • 0

すでにエクセルにとりこんであるのですね?


ならば、日付の列を選択し、メニューの「データ」、「区切位置」で「次へ」、さらに「次へ」で、「列データの形式」を「日付」にします。
これで日付に変わります。

次にあいてる列に、仮に日付がE列、性別がD列、データが2行目からなら、2行目に
=AND(DATEDIF(E2,DATEVALUE("2009/8/31"),"Y")=30,MONTH(E2)=8,D2="女性")
といれて下までコピーします。
これで「TRUE」が返った行だけを並べ替えで抽出すればOK
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

今、見られている記事はコレ!

  • 縦書きと横書きはどちらが読みやすい?

    普段何気なく読んでいる文章ですが、縦書きか横書きか、意識したことはありますか?制作側としては読み手はどちらの方が読みやすいと思うかはとても大きな問題です。教えて!gooには、 「『横書き』と『縦書き』、...

  • 昭和の日ってどういう日?

    ゴールデンウィーク初日の4月29日は「昭和の日」です。今や平成生まれの人も多い時代ですが、「なぜ昭和の日があるの?」という疑問をもったことはありませんか?和暦を挙げるのなら、大正の日、明治の日、平成の日...

  • Excelの意外な使い方とは?

    会社のパソコンに必ず入っている、と言っても過言ではない、Office系ソフトの「Word」と「Excel」。PCを使う職場にいた方なら、一度は触ったことがあるかと思います。Wordは仕事以外に使う方法がすぐ浮かびそうです...

  • たまランチ:第56話「サンドウィッチ」

    外ランチを愛してやまない元気な女子社員・たまちゃん(26)。オシャレなお店より「安くておいしい」お店が大好き! そんな女子力低めなたまちゃんの、色気より食い気な日々をつづります。

  • エルフ田さん:第79話「いい汗流そう!」

    エルフ(ファンタジーとかに出てくる長寿の種族)の「エルフ田」と、ただの人間である女子社員2人による日常ギャグ。エルフならではのズレたツッコミでバシバシ人間界の話題を斬っていきます。

おしトピ編集部からのゆる~い質問を出題中

お題をもっとみる

このQ&Aを見た人が検索しているワード

コンピュータやスピーカーなどのオーディオ、スマートフォンをはじめとした携帯電話とそのサービスに関する質問が充実。急なトラブルの対策案もここで得られるかもしれません。

このカテゴリの人気Q&Aランキング

おすすめ情報

カテゴリ