電子書籍の厳選無料作品が豊富!

エクセル関数を使って、表からある条件下でセルを特定する方法を探しています。

match関数とchoose関数の組み合わせでそれなりにできたのですが、その計算式をコピーするにはまた数式を入れなおさなければならない事に気が付いて、その労力に挑む気にはなれません。
マクロを組むという事も考えましたが、関数で対応できそうな気がするので。

例えば、下表にて

    A列  B列  C列
1行目 5/12 りんご 300
2行目 5/14 みかん 400
3行目 5/21 いちご 450
4行目 5/24 バナナ 800
5行目 5/31 メロン 950


B列の中で、みかんに一致するセルを特定し、そのみかんを買った日付をセルに書き出したい。
日付だけではなく、その金額も隣のセルに書き出したい。

ちなみに、品目が重複する場合もあるのですがそれは無視していいです。

=choose(match("みかん",B1:B5,0),A1,A2,A3,A4,A5)

で、やってみたのですが、実はChooseの引数にあたるものが25個あって、みかんにあたる品目が20個くらいありますので、この数式を20個作らなければならないので他の方法を探しています。

どなたかご存知の方がいましたら教えてください。

A 回答 (3件)

No1です。


すみません、日付取得は
=INDEX(A1:A5,MATCH("みかん",B1:B5,0))
でした。
    • good
    • 0
この回答へのお礼

ありがとうございました。

早速やってみます。

お礼日時:2006/05/29 18:40

自称imogasi方式で解けます。


例データA1:E7
A列  B列  C列  E列
みかん
5月12日りんご3000
5月14日みかん4001
5月21日いちご4501
5月24日バナナ8001
5月31日メロン9501
6月14日みかん8002
E2に
=COUNTIF($B$2:B2,$A$1)と入れて下方向に複写する。
結果は上記D列。
どこでも良いが、F2に
=INDEX($A$2:$C$100,MATCH(ROW()-1,$D$2:$D100,0),2)
と入れて下へ式を複写する。D列のMAX行だけ複写する。
$100は適当にデータ行数以上に指定。
別シートにも結果を出せる。
>品目が重複する場合もあるのですがそれは無視していいです
あえてこの条件にしたがってません。
>日付だけではなく、その金額も隣のセルに・・
項目の順序は式を変えればどうにでもなります。
「imogasi方式」で、OKWAVEで照会してもらえば、少し違うが似た質問に、同じようなやり方で答えています。
    • good
    • 0
この回答へのお礼

ありがとうございました。

他の回答例も参考にして、やってみます。

お礼日時:2006/05/29 18:41

日付取得


=INDEX(C1:C5,MATCH("みかん",B1:B5,0))
で、セルの書式を日付にしてください。

金額取得
=INDEX(C1:C5,MATCH("みかん",B1:B5,0))
    • good
    • 0

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