dポイントプレゼントキャンペーン実施中!

エクセルでつくったN×Mのサイズの表からデータを抜き出すよい方法をさがしています。具体的には、表の中から、1行目(の数値)と1列目(の数値)の組み合わせと対応して決まる、一定の条件に合ったものだけを抜き出して表示したいと思っています。よろしくおねがいします。

A 回答 (6件)

こんばんは。



>表の中から、1行目(の数値)と1列目(の数値)
これらは同じ数値はないのでしょうか?
ないとして・・・・

10列×20行を考えます。A1:J20にあります。
で、21行目に、B列からJ列まで2から20までに数値を入れます。

列の検索値をA、行の検索値をBとします。

まず、HLOOKUPで列の列数を取得しましょう。
HLOOKUP(A,B1:J21,11,FALSE)
で、何列目か取得できると思います。で、この値でVOOKUPで行を検索します。
VLOOKUP(B,A1:J20,HLOOKUP(A,A1:J21,11,FALSE),FALSE)
これでいいと思います。

関数ではなく、マクロ的なものが欲しかったのならすいません。

この回答への補足

早速の回答ありがとうございます!ただ私の説明が悪かったのでこの場で補足させていただこうと思います。まず、1行目(の数値)と1列目(の数値)は全て同値ではありません。また、1行目(の数値)と1列目(の数値)の組み合わせと対応して決まる、一定の条件に合ったものというのは、具体的に説明すると、例えば1行目がある調査の開始日、1列目がデータ取得日だとしたときに表の中身のデータは開始日がN日でデータ取得日がM日のときの、期間M-N(日)のデータということになりますよね。そのときの期間が例えば1ヶ月から2ヶ月の間におさまっているというようなデータを抽出したいと思っています。

補足日時:2002/09/08 00:28
    • good
    • 0

再度#1回答者です。



気になるので、しばらくお付き合いをお願いします。

>毎日調査していないためにシリアル値ではなく飛び飛びの日付です。
飛び飛びでもかまわないのですが、
例えば、A1に2002年2月15日、B2に2002年3月17日として、
=B2-A2
の演算結果は、30になりますか?(表示形式は標準か数値にして)

抽出した結果の表は、たとえば30日から40日とした場合、
一番左の列に30、31、32・・・40となり、
一番上の行に調査の開始日(N個)となるような表ですか?
    • good
    • 0

#1回答者です。



>例えば1ヶ月から2ヶ月の間におさまっている
>というようなデータを抽出したい

すいません。こんなイメージですか?
データ開始日が、2002年2月15日としたら、
その30日後(3月17日)から60日後(4月16日)の値を抽出して表示させたいと。
これをずべてのデータ開始日(N個)について抽出したい、みたいなことでしょうか?

1列目と1行目の日付データはシリアル値でしょうか?

この回答への補足

2002ponさんのおっしゃられる通りでデータ開始日が、2002年2月15日としたら、その30日後(3月17日)から60日後(4月16日)の値を抽出して表示させたいというようなことです。1列目と1行目の日付データは毎日調査していないためにシリアル値ではなく飛び飛びの日付です。補足要求ありがとうございました。

補足日時:2002/09/08 11:14
    • good
    • 0

>なにせ組み合わせの数が多いので


うーん、nishi6さんあたりなら、オートフィルタのオプション条件をいくつかのテキストボックスにでも入力できる形にして、ボタン一発で抽出!なんてことも考え付くんでしょうが・・・登場を待ちましょう。
    • good
    • 0

#1の方への補足を見て。


横レスのカタチですが失礼します。
すると、一定の条件全てを抽出するのですね?

1行目をクリックして「データ」→「フィルタ」→「オートフィルタ」→条件を設定したい列の「▼」ボタンをクリック。これでたいがいの抽出は出来ます。5年ほど前はマクロを組まなければ出来なかった技ですが、かなり詳しく条件検索できます。
    • good
    • 0
この回答へのお礼

確かに地道にやればフィルタでもできるのですが・・。なにせ組み合わせの数が多いので一度にたくさん抽出できるわけではなく、フィルタだとかえって面倒になってしまいます。こちらの説明不足だと思うのですが・・。ご回答ありがとうございました。

お礼日時:2002/09/08 01:17

列の数値と行の数値を入力すると交差する場所のデータを表示させるんですよね?


行番号と列番号が分かればINDEX関数で抽出できます。
ここでは行番号をA1に入力し列番号をA2に入力すると、A3に交差データを抽出できるようにします。
実際の表はA4:J23までが範囲とします。4行目とA列が見出しになりますね。

行や列の番号を知るために最終行と最終列を使います。これは非表示にしてかまいません。
行番号は=IF(A1=A5,ROW(),"")として、最終行にその列の合計を求めれば、結果として行番号が返されます。
列番号は既に方法が出ているので割愛します。
    • good
    • 0

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