• 締切済み

品名と数量が合致したら、重量を表示したい

エクセルで、品名と数量が合致したら、重量を表示したいです。 (ex.)  品名:ヨーグルト500ML 1000PCS 100KGS →別シートに品名:ヨーグルト500ML 1000PCS と入力したら、   100KGSと表示される。数量が違ったらエラー表示。 抽象的すぎてすみません。DGETでは1行目は表示されるのですが、 コピペしたらエラー表示が出ました。 よろしくお願い致します。

みんなの回答

  • mt2015
  • ベストアンサー率49% (258/524)
回答No.3

SUMIFSを使ってみては? 添付の図の例では、C2セルに↓の式が入っています。 =SUMIFS(Sheet2!C:C,Sheet2!A:A,A2,Sheet2!B:B,B2) ただ、SUMIFSの場合、一致するものが無い場合エラーではなく0が返ります。

runningman4439
質問者

お礼

mt2015様へ お忙しいところ、ご回答いただきありがとうございました。 解決できました。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

下記は、関数しかできない人向けに、無理して関数でやったということで、決して望ましいやり方ではない。 すっきりした関数での回答が出れば、勉強させてもらいます。 なぜ合成列を作るかといえば、単純に結合(&を使用)してしまうと、「XYとZ」も「XとYZ」も同じXYZになり、これを避けるため。 ーー 例データ A1:C10 品目 品質 価格 りんご A 12 みかん X 13 梨 Z 14 ぶどう F1 15 りんご B 16 りんご C 17 みかん Y 18 ぶどう F2 19 梨 ZZ 20 ーー D1:E10 合成列 価格コピー りんご A 12 みかん X 13 梨 Z 14 ぶどう F1 15 りんご B 16 りんご C 17 みかん Y 18 ぶどう F2 19 梨 ZZ 20 D2列の式 =REPLACE(REPT(" ",10),1,0,A2)&REPLACE(REPT(" ",10),1,0,B2) 下方向に式を複写。 E2の式 =C2 下方向に式を複写。 検索列の右の列結果列がないといけないので、複写するもの。 ーー G1:I10 検索語1 検索語2 合成列 りんご B りんご B ぶどう F2 ぶどう F2 梨 z 梨 z りんご A りんご A りんご B りんご B ぶどう F1 ぶどう F1 梨 ZZ 梨 ZZ りんご A りんご A みかん X みかん X ーー 検索語の合成列 I2の式 =REPLACE(REPT(" ",10),1,0,G2)&REPLACE(REPT(" ",10),1,0,H2) 下方向に式を複写。 ーー K列 最終結果 16 19 14 12 16 15 20 12 13 K2の式 =VLOOKUP(I2,$D$2:$E$10,2,FALSE) 下方向に式を複写。 ここからは、普通のVLOOKUP利用。 ーーー これでも式は完全ではない。式複写が必要行数を越えたら、空白を返す式部分をかぶせる必要があるが、複雑な感じを与えるので、省略した。 ーー やはりSQLのようなデータベース言語でも使わないと、エクセル関数では、すっきりしないのかも。

  • shintaro-2
  • ベストアンサー率36% (2266/6245)
回答No.1

>抽象的すぎてすみません。DGETでは1行目は表示されるのですが、 >コピペしたらエラー表示が出ました。 抽象的すぎます 入力セルがどこで、参照データがどこにあるかぐらいは例示してください。 vlookupでtrueにしておけば良いのでは?

runningman4439
質問者

補足

申し訳ありません。 Sheet1  A列:品名  B列:数量  C列:エクセル関数を入力し、Sheet2の重量の値を表示させたい     もし、Sheet1のB列とSheet2の数量が違ったら、エラー表示     が出るようにしたいです。 Sheet2 A列:品名  B列:数量  C列:重量

関連するQ&A

専門家に質問してみよう