教えて! goo のコンテンツに対する取り組みについて

言っていることが分かりづらい&確認ですいません。

画像をご覧ください。
sheet1には商品についてのデータがあり、sheet2は集計用の表になっています。

sheet2に商品名、個数が入力されたとき、sheet1から条件に合う商品名を検索し
その商品の価格を持ってきて個数と掛けたいです。

自分はこのようにINDEX+MATCHを使ったのですが、なんか他にあるような・・・

---------
=D2*(INDEX(Sheet1!A1:H17,MATCH(Sheet2!B2,Sheet1!$E$1:$E$17,0),6))
---------

他にありませんか?
他にというのは、INDEX+MATCH部分をVLOOKUPなどに変える、ではなく
もっと根本的に簡単に記述できるのでは・・・と思い質問しています。
SUMPRODUCTでできないか・・・と思ったんですが、思いつきませんでした。

気長にご意見お待ちしております。

「セルの文字列と別シートの条件が合ったらそ」の質問画像
gooドクター

A 回答 (3件)

No1です



>VLOOKUPなどに変える、ではなく
とあったので、敢えて書くことはしませんでしたけれど・・・

>もっと根本的に簡単に記述できるのでは
Sheet1のE2:F17を、名前の定義で「一覧」とでもしておいて、
 =VLOOKUP(B2,一覧,2,0)*D2
などとしておくのが、一番簡単な記述になると思いますけれど・・・
    • good
    • 1
この回答へのお礼

ご回答ありがとうございます!
なるほど・・・
NO.1のご指摘についてはすいません、こちらが画像を一枚しか
貼ることができず、画像内2つはsheet1と2と見なして考えてください・・
みたいな感じで出していました・・・
なんとなーく、簡単な関数あるんじゃないか?て思いましたけど
ご提示いただいた内容が一番簡単ですね。

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

お礼日時:2021/04/22 09:59

SUMPRODUCT関数は



 単価×数量
+単価×数量
 ̄ ̄ ̄ ̄ ̄ ̄
のような計算をさせるものですので、質問にある目的に対して使うのはとても特殊なケースになります。

素直にVLOOKUP関数で良いと思いますよ。
もしも Microsoft365 なら VLOOUP関数の上位関数である XLOOKUP関数を使えます。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます!
SUMPRODUCT関数は、自分は
SUMPRODUCT((Sheet5!$C$1:$C$10="売上")*(Sheet5!$D$1:$D$10<>"入力済"),ROW(Sheet5!$F$1:$F$10)))

みたいに該当行を特定するのに使ってますよ!
例えば、フィルタ後の内容からさらに該当する条件のみ合計する・・・
みたいなことに使っています。

VLOOKなどで条件抽出する方が素直ということで了解しました!

お礼日時:2021/04/22 09:53

こんにちは



ご提示の方法が一番まともな方法ではないかと思いますけれど・・・

>SUMPRODUCTでできないか・・・と思ったんですが、思いつきませんでした
できないことはありませんけれど、無駄に計算量が膨らみます。

※ ご提示の図では3行目に見えるけれど、データのある行は2行目だと仮定して
=SUMPRODUCT((Sheet1!E2:E17=B2)*Sheet1!F2:F17)*D2
とか。

※ Sheet1の品名に重複がなく、該当品が存在することが条件になります。

>もっと根本的に簡単に記述できるのでは~~
計算は同じなので、大差ないと思いますけれど・・・?
記述を簡単にしたいのなら、元の表に「名前の定義」を利用して、名前を付けておいて、それを利用する方が有効ではないかと思います。
https://support.microsoft.com/ja-jp/office/%E6%9 …
    • good
    • 0

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

gooドクター

このカテゴリの人気Q&Aランキング