OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

エクセル関数でデーターベースから値を抽出するには・・・

  • すぐに回答を!
  • 質問No.103851
  • 閲覧数2351
  • ありがとう数2
  • 気になる数0
  • 回答数8
  • コメント数0

お礼率 55% (15/27)

 エクセル関数のDGETはデータベースから1つの値を抽出しますよね。でも条件を満たす値が複数ある時には「#NUM」が返されて抽出出来ない。条件を満たす値を複数返すような関数は無いのでしょうか ?
 
住所、氏名、年齢、職業、のデータの中で「"東京*"」にすむ人の名前を抽出しなさい。「"東京*"」に住んでいる人がいない場合は空白セルを返すようにする、と言った内容です。 
 どなたか教えて下さい。
通報する
  • 回答数8
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.8
レベル12

ベストアンサー率 52% (322/612)

こんにちは!

>「名前」の設定が出来ない
設定ではなくB54セルに記載するのみなのですが!
これも不可となると元々DGETなどのデータベース
関数での条件式の書き込みも不可と言うことですね!

残るは関数のみ 1例として(だらだら長いです^^;)

   A   B  C   D
1 住所 氏名 年齢 職業
2 
3


13
14

条件
「同姓同名はいない」
「空白セルの「B55~B60」に値を返す。」として

セルB55
=IF(COUNTIF($A$2:$A$14,"東京*")>ROW()-55,INDEX($B$2:$B$14,MATCH("東京*",$A$2:$A$14,0)),"")
セルB56
=IF(COUNTIF($A$2:$A$14,"東京*")>ROW()-55,INDEX($B$2:$B$14,MATCH(B55,$B$2:$B$14,0)+MATCH("東京*",INDIRECT("A14:A"&2+MATCH(B55,$B$2:$B$14,0)),0)),"")

B56の数式をB57~B60に複写
お礼コメント
mikarin-h

お礼率 55% (15/27)

有難うごどいました。大変参考になりました。
投稿日時 - 2001-07-17 19:50:22
-PR-
-PR-

その他の回答 (全7件)

  • 回答No.2
レベル11

ベストアンサー率 33% (131/392)

似たような質問が過去ログにありました ...続きを読む
似たような質問が過去ログにありました
補足コメント
mikarin-h

お礼率 55% (15/27)

>=IF(COUNTIF(対象セル,"*東京*"),"○","×")

この間数式を使って"○"の部分の値を"東京*"に住む「人名」を返す数式

 =IF(COUNTIF(対象セル,"*東京"),"ここに入る関数式が解りません","")

"ここに入る・・・"の部分にデータベース関数のDGETを使って値を求めると当てはまる答えを1つしか返さなく、複数の回答を得るには他の関数を使わないと出来ないと言うところまでは解るのですが・・・なんの関数を代入すれば良いでしょう?
投稿日時 - 2001-07-13 22:26:30

  • 回答No.1
レベル11

ベストアンサー率 37% (133/354)

難しく考えなくても、 IF関数でできるとおもいますが。 (抽出するの、名前だけですよね?) A列のセルに、以下のように入力しました。 A3に、東京都新宿区 A4に、埼玉県さいたま市 A5に、東京都渋谷区 で、A列の隣のB列に適当な氏名をいれました。 で、数式は、適当なセルをアクティブにして、 =IF(A2>="東京",B2,"") ...続きを読む
難しく考えなくても、
IF関数でできるとおもいますが。
(抽出するの、名前だけですよね?)

A列のセルに、以下のように入力しました。
A3に、東京都新宿区
A4に、埼玉県さいたま市
A5に、東京都渋谷区

で、A列の隣のB列に適当な氏名をいれました。

で、数式は、適当なセルをアクティブにして、
=IF(A2>="東京",B2,"")

したら、できましたけど。

ところで、これ、関数使わなくてはならないんですか?
普通は、フィルタオプション使うと思うけど・・・。
補足コメント
mikarin-h

お礼率 55% (15/27)

>で、数式は、適当なセルをアクティブにして、
>=IF(A2>="東京",B2,"")

試してみたのですが、「氏名」は返されませんでした。

 フィルターでは、条件を満たす値が無い場合「空白セル」を返すと言う設定が出来ないので、使えないと思うのですが・・・出来るのでしょうか ?
投稿日時 - 2001-07-13 22:43:07
  • 回答No.3
レベル12

ベストアンサー率 52% (322/612)

こんばんは! 動的に変化するのでは無く、既に入力済みのデータ範囲から単に抽出するだけであればフィルターオプションがよろしいかと! 1.適当なセルに検索条件を記載 住所 東京* 2.抽出したい位置の先頭セルに 名前 と入力 3.データベース範囲を選択   データ → フィルタ → フィルターオプション  [抽出先] 指定した範囲 をチェック   リスト範囲 既に入力され ...続きを読む
こんばんは!

動的に変化するのでは無く、既に入力済みのデータ範囲から単に抽出するだけであればフィルターオプションがよろしいかと!

1.適当なセルに検索条件を記載

住所
東京*

2.抽出したい位置の先頭セルに 名前 と入力

3.データベース範囲を選択
  データ → フィルタ → フィルターオプション
 [抽出先] 指定した範囲 をチェック
  リスト範囲 既に入力されていると思います
  検索条件範囲 2. の項目も含めた記載範囲
  抽出範囲 3.で記載したセル

ご希望が関数であれば外しています!
補足コメント
mikarin-h

お礼率 55% (15/27)

 フィルター機能で当てはまる条件が無い場合に、空白セルを返すと言う設定が出来るのであればそれでも良いのですが、出来ないように思うのですが・・・?
投稿日時 - 2001-07-14 00:04:32
  • 回答No.4
レベル12

ベストアンサー率 52% (322/612)

少々わかり辛い部分の訂正です! 2.抽出したい位置の先頭セルに 名前 と入力 は 2.抽出結果を出力したい場所の先頭セルに 名前 と入力 です。
少々わかり辛い部分の訂正です!

2.抽出したい位置の先頭セルに 名前 と入力



2.抽出結果を出力したい場所の先頭セルに 名前 と入力

です。
  • 回答No.6
レベル12

ベストアンサー率 52% (322/612)

三度こんばんは(^^; スミマセン!こだわっている訳では無いのですが! >決められた空白セルに値を返す オートフィルタではなくフィルタオプション では、好きな場所(決められた空白セル)に抽出可能です。 そういう意味ではないのでしょうか? 2.のセル位置を決められた空白セル位置の1つ上のみ で指定すれば、ヒットしたもの全てがその下の行以降に 抽出されます。そしてヒットしない場合は空 ...続きを読む
三度こんばんは(^^;

スミマセン!こだわっている訳では無いのですが!

>決められた空白セルに値を返す
オートフィルタではなくフィルタオプション
では、好きな場所(決められた空白セル)に抽出可能です。
そういう意味ではないのでしょうか?
2.のセル位置を決められた空白セル位置の1つ上のみ
で指定すれば、ヒットしたもの全てがその下の行以降に
抽出されます。そしてヒットしない場合は空白のまま!

>抽出範囲設定は出来なくて
範囲は指定する必要は無く、抽出したい位置のスタート
位置の上部に記載した「名前」の位置のみ指定なのですが
それも不可であれば、おっしゃる通り不可ですが!
補足コメント
mikarin-h

お礼率 55% (15/27)

 何度も有難うございます。
 
 >上部に記載した「名前」の位置のみ指定

指定についてですが、おっしゃる通り名前の位置指定が出来れば問題は無いのですが、『空白セルの「B55~B60」に値を返す。』と言うような感じで設定の変更は出来ない状態での作業なんです。ややこしくてすいません。
 
投稿日時 - 2001-07-14 01:47:12
  • 回答No.5
レベル12

ベストアンサー率 52% (322/612)

こんばんは >空白セルを返すと言う設定が出来るのであればそれでも良いのですが 結果、条件に合致しなければ抽出されず空白になりますが、それでは不可なのでしょうか? ...続きを読む
こんばんは

>空白セルを返すと言う設定が出来るのであればそれでも良いのですが
結果、条件に合致しなければ抽出されず空白になりますが、それでは不可なのでしょうか?
補足コメント
mikarin-h

お礼率 55% (15/27)

 ごめんなさい説明不足でした。
抽出範囲設定は出来なくて、決められた空白セルに値を返す
と言う設定の上での動作になります。ですからフィルタ機能では無理だと思うのです。
投稿日時 - 2001-07-14 00:53:17
  • 回答No.7
レベル12

ベストアンサー率 52% (322/612)

何かの練習問題ですか? >『空白セルの「B55~B60」に値を返す。』 え~と!再確認させて下さい! この場合、B54に「名前」と記載して指定をすれば B55からデータベース表から参照してヒットした数が 抽出されます(無い場合は空白のまま) しかし、6こ以上あればB60を超えてヒットした分の 行まで記載してします。 その場合は、2)での範囲指定をB54:B60でOK です! どうし ...続きを読む
何かの練習問題ですか?
>『空白セルの「B55~B60」に値を返す。』
え~と!再確認させて下さい!
この場合、B54に「名前」と記載して指定をすれば
B55からデータベース表から参照してヒットした数が
抽出されます(無い場合は空白のまま)
しかし、6こ以上あればB60を超えてヒットした分の
行まで記載してします。
その場合は、2)での範囲指定をB54:B60でOK
です!

どうしても関数での回答が必要な問題でしたら、データ
の範囲と、『空白セルの「B55~B60」に値を返す。』
部分が分かれば数式でも可能ですが・・・補助列を使わない
限りだらだらした長~い数式になってしまいますけど!
補足コメント
mikarin-h

お礼率 55% (15/27)

 はいそうなんです。ですから問題内容の変更は無理で「名前」の設定が出来ないのです。ですから何らかの関数式では無いかと思うのですが・・・
投稿日時 - 2001-07-14 09:13:40
このQ&Aのテーマ
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このやり方知ってる!同じこと困ったことある。経験を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ