• 締切済み

エクセルにて、CSV形式の顧客名簿から、女性で○○齢以上の○○月生まれの人だけ抽出する方法

どなたかご教示下さい。 下記のような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,札幌

みんなの回答

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

NO2です。 抽出条件を勘違いしていました、回答文は読み捨て下さい。 因みに、抽出条件を確定するには生年月日列だけでは抽出できませんので、別セルに抽出する工数が発生する事は避けれないと思います。 例えば、データ→区切り位置で日付にすれば、年齢ならばDATEDIF関数、月はNONTH関数で抽出できます。

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

普通はエクセルに読み込んで、シート上の関数を 年月日列を対象に (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列 0 FALSE FALSE 48 TRUE 0 TRUE TRUE 29 FALSE 0 TRUE FALSE 26 FALSE 0 FALSE FALSE 29 FALSE 0 FALSE FALSE 38 TRUE 0 FALSE FALSE 18 FALSE 1 TRUE TRUE 39 TRUE 0 FALSE TRUE 49 TRUE 0 FALSE FALSE 29 FALSE 0 TRUE TRUE 22 FALSE 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から読み込んだ、入力した、関数で導出したなど、来歴はエクセル関数を使う上では、関係ないことを知るべし。

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.3

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

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

次の方法は如何でしょうか。 (1)生年月日列を選択→データ→区切り位置→次へ→次へ→列のデータ形式で「日付」を選択→完了 (2)フィルタ→オートフィルタで性別列で「女性」、生年月日列で「1979/8/1」「以降」「and」「1979/8/31」「以前」で抽出

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

すでにエクセルにとりこんであるのですね? ならば、日付の列を選択し、メニューの「データ」、「区切位置」で「次へ」、さらに「次へ」で、「列データの形式」を「日付」にします。 これで日付に変わります。 次にあいてる列に、仮に日付がE列、性別がD列、データが2行目からなら、2行目に =AND(DATEDIF(E2,DATEVALUE("2009/8/31"),"Y")=30,MONTH(E2)=8,D2="女性") といれて下までコピーします。 これで「TRUE」が返った行だけを並べ替えで抽出すればOK

関連するQ&A

  • エクセルの名簿を名前順に並べ替えたい

    エクセルの名簿を名前順に並べ替えたいです。 Aのセルによみがな、Bのセルに漢字の名前が入っています。 例えば、 サカイ オサム   境 治 サカイ ジロウ   坂井 次郎 サカイ タカシ   酒井 隆史 サカイ タロウ   境 太郎 サカイ ハナコ   坂井 花子 サカイ ヨシコ   酒井 良子 とある場合、Aのセルで並べ替えるとBのセルの名字が揃いません。 これをよみがなでそろえ、さらに漢字でも並べ替えることはできるでしょうか。

  • エクセルについて

    エクセルで住所録を作っているのですが、名前とフリガナを同じセルに入力していました。フリガナだけを横のセルに移動することは可能でしょうか      A             B 1山田 太郎 ヤマダ タロウ  2山田 花子 ヤマダ ハナコ    A | B 1山田 太郎 | ヤマダ 太郎 2山田 花子 | ヤマダ ハナコ 宜しくお願いします。

  • Excelの作業で困っています。

    エクセルで、データをコード管理しているのですが、下記(山田太郎と田中花子)のように、同じ人でコード(C1)を2つ所有している場合があるので、重複しているのデータを探し出し、そのデータを削除する作業をしているのですが、5000件以上のデータがあるものですから、相当時間がかかってしまいます。何か関数とか使って処理する方法がないか教えてください。ちなみに今は、データの並び替えをして1件ずつ削除しています。     C1    C2       C3 R1  100  山田 太郎  ヤマダ タロウ R2  200  田中 花子  タナカ ハナコ R3  105  山田 太郎  ヤマダ タロウ R4  300  鈴木 次郎  スズキ ジロウ R5  250  田中 花子  タナカ ハナコ  

  • エクセルで同じ番号の合計を計算する方法

    それぞれの列に、 A:ID B:名前 C:勤務月 D:出勤日 E:勤務時間 F:時給 G:日当 のデータが入っています。 例を挙げると下記の通りになります。 ID,名前,勤務月,出勤日,勤務時間,時給,日当 0001,タロウ,1月,4日,4.5,800,3600 0001,タロウ,1月,5日,3,800,2400 0001,タロウ,3月,15日,7,1000,7000 0003,ハナコ,3月,15日,7,1000,7000 0003,ハナコ,10月,1日,5.5,900,4950 0004,ジロウ,3月,15日,7,1000,7000 0004,ジロウ,3月,16日,6,1000,6000 0004,ジロウ,3月,17日,6,1000,6000 0004,ジロウ,8月,1日,2.5,800,2000 このデータが8000行で1000人分程度あり、一人ひとりの月毎の給与を計算して欲しいと依頼をされました。 手計算では時間がかかりすぎるので、IDと勤務月と日当を使ってどうにかして計算したいのですが、関数orマクロ等を使った何か良い方法はありませんか? よろしくお願いします。

  • EXCELの技に関する質問

    EXCELに詳しい方がいらっしゃいましたら、すみませんがお教えください。 EXCELであるシートに以下のように一定ではない並びで「名前(年齢)」と複数のセルに入力してあったとします。 【BEFORE】 ヤマダ ハナコ(25)           ヤマダ タロウ(52) スズキ ジロウ(13) この時、この年齢に1歳加え、以下のような状態にしたいと思っています。 【AFTER】 ヤマダ ハナコ(26)           ヤマダ タロウ(53) スズキ ジロウ(14) そこで、上記のように3つくらいであれば普通に年齢を手補正すればいいのですが、数が大量にある時に、何か簡単にプラス1歳をしていく方法はありませんでしょうか? ややこしいことに、いろんな年齢の人がいるので置換を使っても手間がかかりますし、名前と年齢がひとつのセルに文字列として入っているうえ、列などが一定ではないので「=A2+1」といった簡単な数式を使うわけにもいきません。 (これは何かというと人名年齢入りの会社の組織図みたいなものなのです) どなた何か良いアイディアがありましたらどうぞよろしくお願い致します。

  • 【エクセル】別の表を参照し、表の穴埋め

    表A 番号,氏名,フリガナ,性別,生年月日 1,鈴木 太郎,スズキ タロウ,男,1990/1/2 2,佐藤 花子,サトウ ハナコ,女,1993/4/5 3,加藤 次郎,カトウ ジロウ,男,1996/7/8 4,吉田 葉子,ヨシダ ヨウコ,女,1999/10/11 5,斉藤 良子,サイトウ ヨシコ,女,1999/12/13 表B 4,吉田 葉子 1,鈴木 太郎 6,落合 卓 のような2つの表があります。 そこで、以下の様に、 表Aを参照して表Bの穴埋めをする方法を考えています。 4,吉田 葉子,ヨシダ ヨウコ,女,1999/10/11 1,鈴木 太郎,スズキ タロウ,男,1990/1/2 6,落合 卓 表Aで見つからなかった人、部分に関しては 6,落合 卓,-,-,- のように、何か文字が入るとベストです。 マクロを利用してもOKです。 よろしくお願いします。

  • あるシートから条件に合うデータだけを別シートに抽出させる

    会社で上司に質問されたのですが、不明だったので教えてください。 元リストが入力してあるシート 番号 氏名 フリガナ 会社名   部署名 役職 参加費 1  太郎 タロウ  ○×株式会社 経理  課長 \1000 2  花子 ハナコ  株式会社△   総務      \1500 3  次郎 ジロウ  □□株式会社 人事  課長 \1000 このようなデータが100件以上あります。 この中から、参加日が1000円の人だけを下記のレイアウトで抽出をしたいのです。 抽出先リスト 番号 氏名 フリガナ 1  太郎  タロウ 3  次郎  ジロウ ※元リストは今後増える予定。 ※リストが増えた際の、再抽出はできるだけ自動でやりたい。 ※VBA(マクロ)は極力使いたくない(余計なメッセージが出ると余計混乱するので) フィルタオプションの設定を提案したのですが、「操作ごとに範囲を指定するのが面倒」とのことで却下されてしまいました。 オートフィルタで抽出して、コピペの方法も毎回コピペするのが面倒とのこと。 このわがままな上司を納得させる方法、ご存じないですか? もし分かる方がいましたら、ご教授下さい。 よろしくお願いします。 使用環境:Excel2000/WinXP

  • エクセル 関数 3つ以上の複数条件にあった抽出 

    *先日も同じ質問をさせて頂き、類似した様々な質問の中から色々検索してみては、というアドバイスを頂き、検索してみたのですが、わからなかったため、再度質問させて頂きたく投稿しました。(しつこくてすいません) *前回は質問が抽象的というご指摘でしたので、詳しく記入させて頂きます。(表がずれて見にくくなっていてすいません) Sheet1(例1) 項目/  氏名  生年月日  性別 年齢  要介護度  入所日数     たろう  S1.1.1   男  83   3    100     はなこ  T1.1.1   女  97   5    50     いちろう S2.1.1   男  82   4    90     じろう  T2.1.1   男  96   4    80 *たろう=セルC3  Sheet2(例)                  要介護度              1  2  3  4  5 男性 (人数)      ○  ○  ○  ○  ○    (平均年齢)    ×  ×  ×  ×  ×    (平均入所日数)  △  △  △  △  △ *Sheet1 をベースに Sheet2 の表の「○」「×」「△」に値を返したく「○」については Sheet3  性別  要介護度 男     1  *性別=セルA2 Sheet3を新たに作成し =DCOUNTA(Sheet1$C$2:$H$6,"",Sheet3!A2:B3)という関数を入力しそれぞれ値を返すことは何とかできましたが、その値が出た人数の「平均年齢」や「平均入所日数」などの値の求め方がわからない状態です。 無知のため、関数やマクロなど色々検索してみましたがやはり方法が分からず、どなたか教えて頂けないでしょうか??よろしくおねがいします。

  • 米国籍の元日本人との結婚した時の姓って…

    米国籍の元日本人男性と結婚した時の日本人女性の場合、 姓の変更をした場合ですね、 男性の名前が「ヤマダタロウ」、女性が「日本花子」だった場合、 女性の戸籍は「ヤマダ花子」になるのでしょうか? 「山田花子」と名乗ることは可能なのでしょうか。 考えれば考えるほど、訳がわからなくなってきました。

  • 自分の旧姓をミドルネームにしても良いのですか?

    日本人女性で西洋人の男性と結婚した人で、自分の旧姓をミドルネームにしている人を見かけるのです。 たとえば、田中花子(仮名)という女性がジョン・スミスという男性と結婚して、「ハナコ・タナカ・スミス」と名乗ったりする例を見るのです。 それは正式な名前と認められるのでしょうか? 例えばパスポートに、「Hanako Tanaka Smith」と印刷されますか?

専門家に質問してみよう