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

このQ&Aに関連する最新のQ&A

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に関連する人気のQ&A

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

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

このQ&Aと関連する良く見られている質問

Qエクセル プルダウンの作り方

お世話になります。
エクセルでプルダウンの作り方を教えていただけませんでしょうか?
住所を▼のボタンでクリックしたら【北海道,青森,秋田,岩手・・・】などの選択ができるようにしたいのです。
宜しくお願いします。

Aベストアンサー

メニューから「データ」、「入力規則」、「設定」で「入力値の種類」を「リスト」を選択します。
そうすると「元の値」という表示がでますので、そこで前もって作っておいたリストの範囲を指定します。
多くないのでしたら、そのままそこにカンマで区切って入力しても出来ます。

QMS-wordで,ワイルドカードを用い,n人(1, 2, 3)を3人(1, 2, 3)に置換

ワイルドカードを用いた置換の仕方についてお伺いします.

用いているのはword for mac 2004です.

n人(1, 2, 3)や、n人(2, 3, 4)や、n人(3, 4, 5)
n人(1, 2, 3, 4)や、n人(2, 3, 4, 5)や、n人(3, 4, 5, 6)

といったものを,

3人(1, 2, 3)や、3人(2, 3, 4)や、3人(3, 4, 5)
4人(1, 2, 3, 4)や、4人(2, 3, 4, 5)や、4人(3, 4, 5, 6)

という風に,nを()内の数字の個数に一度に置換したいのですが,

検索文字列は
n人(1, 2, 3)や、n人(2, 3, 4)や、n人(3, 4, 5)の場合は

n人(?, ?, ?)

で検索できることはわかっているのですが,置換後の文字列はどのようにすればよいでしょうか?
ちなみに数字やn、カンマとその後のスペースは半角,括弧は全角です.

よろしくお願いします.

Aベストアンサー

ワイルドカードを使用した場合、()で閉じた内容が一つの式として認識
されますので、(n)が一つ目の式で「n」だけを条件にして、(人(?, ? ))
のようにすることで二つ目の式にして「(人(?, ? )」をまとまった式
にします。

検索条件にした式を参照するのが、\ 記号と式の順番である数字である
「\1」や「\2」のようなものを置換の条件にします。(半角で指定)
今回の場合は、最初の式を変えるので n=\1 ですから \1=3 になること
から、式をそのまま参照するときの \1\2 が 3\2 になるのです。

このように式を利用することで、特定の文字列を参照したときに、その
一部だけを置換する場合に効果的に利用できるようになります。
もっと条件が多い場合では、Wordの置換機能では無理な場合もあります
ので、その場合は正規表現ができるもので置換することになりますが、
今回は関係ないことなので具体的には説明しません。

ちなみにマクロについては、私に提示できる技量が現時点では無いので
回答しませんが、条件としては以下のようなものでマクロを組むことに
なると思います。

検索・置換の条件を指定してのマクロ
**************************************************************
検索する()内の数字の個数を数え、その個数を検索する対象にある
n と置き換えることで、個数が増えても一括で n を個数に置換する。
**************************************************************
これをマクロで組むことで、数字の個数が増えてもマクロが自動で置換
してくれると思います。

ワイルドカードを使用した場合、()で閉じた内容が一つの式として認識
されますので、(n)が一つ目の式で「n」だけを条件にして、(人(?, ? ))
のようにすることで二つ目の式にして「(人(?, ? )」をまとまった式
にします。

検索条件にした式を参照するのが、\ 記号と式の順番である数字である
「\1」や「\2」のようなものを置換の条件にします。(半角で指定)
今回の場合は、最初の式を変えるので n=\1 ですから \1=3 になること
から、式をそのまま参照するときの \1\2 が 3\2 になるのです。

この...続きを読む

Qエクセルでプルダウンメニューの作り方

  エクセルの画面で、よく三角形を逆さまにした形をクリックするといくつかメニューが出てき、どれかを選べるようになっていますが、その作り方を教えてください。
 会社で人事を担当していますが、三角形(プルダウンボタン)をクリックすると社員氏名一覧が表示され、そこから選択できるようにしたいのです。
 しばらく自力でいろいろやってみましたが、さっぱり見当がつかず、どうやればいいのか分かりませんでした。よろしくお願いします。

Aベストアンサー

こんばんは!
当方使用のExcel2003での一例です!

↓の画像のようにSheet2に名簿表を作成しておきます。
画像ではSheet2のA2セル以降を範囲指定 → 名前ボックスに仮に「名簿」と入力しOK
これで範囲指定したセルが「名簿」と名前定義されましたので、

Sheet1のリスト表示させたいセルを範囲指定 → メニュー → データ → 入力規則
→ リスト → 「元の値」の欄に
=名簿
としてOK

これでSheet1のセルをアクティブにすると右側に下向き▼が表示されますので、そこをクリック!
これで希望に近い形にならないでしょうか?
Excel2007の場合は↓のURLが参考になるかもしれません。

http://www.eurus.dti.ne.jp/~yoneyama/Excel2007/excel2007-ny_kis2.html

尚、同一Sheetに「名簿表」を作成する場合は名前定義する必要はなくて
「元の値」の右側の四角をクリックし、リスト表示したいセルをそのまま範囲指定すればOKです。

以上、お役に立てば良いのですが・・・m(_ _)m

こんばんは!
当方使用のExcel2003での一例です!

↓の画像のようにSheet2に名簿表を作成しておきます。
画像ではSheet2のA2セル以降を範囲指定 → 名前ボックスに仮に「名簿」と入力しOK
これで範囲指定したセルが「名簿」と名前定義されましたので、

Sheet1のリスト表示させたいセルを範囲指定 → メニュー → データ → 入力規則
→ リスト → 「元の値」の欄に
=名簿
としてOK

これでSheet1のセルをアクティブにすると右側に下向き▼が表示されますので、そこをクリック!
これで希望に近い形にならない...続きを読む

Q【EXCEL】列の最後のセルのデータだけ抽出したい

いつもお世話になっております。

A1 ○○ B1 ○○ C1 ○○
A2 ○○
A3 ○○ B3 ○○

...といったかんじでセルにバラバラにデータが入っているとします。

列にデータが入っている最終の行だけ取り出したいのです。
上の例だとC1,A2,B3です。

マクロを使わなきゃ無理そうなのですが、アフォなのでわかりません。(T.T)
プログラミングの経験がある方、賢い方、教えてくださいませ。

Aベストアンサー

以下の関数で如何でしょうか。期待値と相違していましたら無視して下さい。
(例)A列の最終行の文字or数値を取り出せます。
=INDEX(A:A,MAX(IF(COUNTIF(A:A,"*"),MATCH("",A:A,-1)),IF(COUNT(A:A),MATCH(MAX(A:A)+1,A:A,1))))

因みに、列にデータが入っている最終の行ならば、A3,B3,C1では無いでしょうか。

Qエクセル(Excel) 納品書の作り方【画像修正版

昨日http://oshiete.goo.ne.jp/qa/7348426.htmlで質問させていただき、詳しくご回答いただき少し進んだのですが、状況が変わったので改めて質問させていただきます。

■エクセル(Excel)で納品書の作成をしています。
シート1に納品書、シート2に商品マスタ(一覧)を作っていて、シート2の一覧を反映させて
納品書に番号を打ち込むだけで、商品名・単価までが出るシステムを作りたいのですが、
昨日のご回答の中の「VLOOKUP」?を入れて、自分なりにマス目の数字を変えてやってみたのですが
反映されずN/?のようなエラーになってしまいます。

※画像が見にくかったのでシート<CENTER></CENTER>だけにしました。

1、上記のように、シート2との関連付けの係数を、写真の場合の数字で教えてください。

2、合計と、合計から20%を引いた数値を割り出す関数も、写真の数字で御願いします。

宜しくご教授お願い致します。

Aベストアンサー

こんばんは!
前回投稿した者です。

当方もかなり古い(人間も古い!なぁ~んちゃって!)Excel2003を使用しています。
↓の画像のようにSheet2にデータを作成しておきます。

#N/A というエラーは、「検索値」がない!ということですので
お示しの画像のB列にSheet2のA列にないデータを入力するとそういったエラーが表示されます。

画像のセル配置ですと
C4セルに
=IF($B4="","",VLOOKUP($B4,Sheet2!$A:$C,COLUMN(B1),0))
(「$」マークの位置に気を付けてください)
という数式を入れD4セルまでオートフィルでコピー!
そのまま最後の24行目までコピーしておきます。

F4セルには
=IF(COUNTBLANK(B4:E4),"",D4*E4)
という数式を入れ、F24までオートフィルでコピー!

これでB列に商品番号を入力すればSheet2のデータが反映され、
E列に数量を入力でF列に金額が表示されると思います。

最後に合計金額のF26セルは
=IF(COUNT(F4:F24),SUM(F4:F24),"")
手数料のF27セルは
=IF(F26="","",F26*0.2)

これで何とか形にならないでしょうか?

※ 振込金額の欄は不明ですので手を付けていません。

参考になりますかね?m(_ _)m

こんばんは!
前回投稿した者です。

当方もかなり古い(人間も古い!なぁ~んちゃって!)Excel2003を使用しています。
↓の画像のようにSheet2にデータを作成しておきます。

#N/A というエラーは、「検索値」がない!ということですので
お示しの画像のB列にSheet2のA列にないデータを入力するとそういったエラーが表示されます。

画像のセル配置ですと
C4セルに
=IF($B4="","",VLOOKUP($B4,Sheet2!$A:$C,COLUMN(B1),0))
(「$」マークの位置に気を付けてください)
という数式を入れD4セルまでオートフィルで...続きを読む

Q一太郎の表で,セル(マス)単位で網掛けする方法はないでしょうか?

上のことについて,ご存じの方はよろしくお願いします。

Aベストアンサー

罫線で表を作った後
[罫線][罫線属性]でダイアログボックスを開き、
[塗りつぶし]で網掛けの種類を選び、網掛けしたい範囲を指定します。

範囲指定は、□の左上が始点、右下が終点のブロック指定のみ。
ワードのようにセルごとに選択することはできないです。

Qエクセル(Excel) 納品書の作り方【改めて】

昨日http://oshiete.goo.ne.jp/qa/7348426.htmlで質問させていただき、詳しくご回答いただき少し進んだのですが、状況が変わったので改めて質問させていただきます。

■エクセル(Excel)で納品書の作成をしています。
シート1に納品書、シート2に商品マスタ(一覧)を作っていて、シート2の一覧を反映させて
納品書に番号を打ち込むだけで、商品名・単価までが出るシステムを作りたいのですが、
昨日のご回答の中の「VLOOKUP」?を入れて、自分なりにマス目の数字を変えてやってみたのですが
反映されずN/?のようなエラーになってしまいます。

※画像が貼り付けてあります。商品名は1番以外伏せさせていただいています。
くっつけてありますが、左側がシート1・右側がシート2です。

1、上記のように、シート2との関連付けの係数を、写真の場合の数字で教えてください。

2、合計と、合計から20%を引いた数値を割り出す関数も、写真の数字で御願いします。

宜しくご教授お願い致します。

Aベストアンサー

画像がいまいちよく見えないのですが、納品書の項目は左から、No、商品番号、商品名、単価、数量、金額でいいのでしょうか(名前は多少違っていても意味があっていればもんだいないです)

でしたら、
C1セルに=IF(ISBLANK(B2),"",VLOOKUP(B2,Sheet2!$A$2:$C$200,2,FALSE))
D1セルに=IF(ISBLANK(B2),"",VLOOKUP(B2,Sheet2!$A$2:$C$200,3,FALSE))
E1セルは空白で
F1セルに=IF(D2="","",D2*E2)
といれて、C1からF1までをコピーしてその下の行にタテに貼り付ければ出来ますよ。
おそらくエラーが出たのは、コピーしたときにVLOOKUP関数の最初のセルの指定がずれてしまっているのでは無いかと思いますよ。     

QACCESS クエリの抽出条件で全てを抽出したい

初歩的な質問で申し訳ありません。

売上入力フォームのオプショングループに配置した3つのトグルスイッチによって、クエリからデータを抽出したいのですが、

オプション値1 全て 
オプション値2 現場
オプション値3 得意先

IIf([Forms]![F_売上入力]![fr_2]=2,"現場",IIf([Forms]![F_売上入力]![fr_2]=3,"得意先","*"))

と抽出条件に入力しましたが、全てのみ上手くいきません。単純なミスとは思うのですが、どうしても出来なくて。。。他に全てを表示させる方法等ありましたら、是非、お知恵を貸して下さい。

Aベストアンサー

IIfの前にLikeをつけてください。つまり、
Like IIf([Forms]![F_売上入力]![fr_2]=2,"現場",IIf([Forms]![F_売上入力]![fr_2]=3,"得意先","*"))

Qエクセル2007でプルダウンで選んだものに反応

Excel2007でプルダウンで選んだものに反応して隣のセルが自動入力される方法(エクセル2007)
A1をプルダウンで「猫」「犬」から選べるようにし、「猫」を選んだ場合B1に自動に「111」が、「犬」を選んだ場合B1に自動に「222」と入力されるようにしたいです。
ご教授の程、宜しくお願いします。

Aベストアンサー

VLOOKUP関数での方法です。
(1)別シートに入力文字列と対応コード表を作成。(仮にSheet2のA:B列範囲で順不同)
(2)B1に=IF(COUNTIF(Sheet2!A:A,A1),VLOOKUP(A1,Sheet2!A:B,2FALSE),"")を設定
   入力文字列が存在しない場合は空白としています。

Q花子を使おうと思っていますが

花子の評価や評判を教えてください
もしあれば
フリーを含む同じ価格帯以下で花子以上の表現能力のあるドロー系ソフトを教えてください
なおOpenOfficeでは花子のように細かい位置合わせはできなかったので挫折しました

Aベストアンサー

フリーソフトでjwキャドは試されましたか?

何に使われるのかを書かれると回答が得られるかも知れません。
カテゴリーを見直すのもいいかも知れません。


人気Q&Aランキング