• 締切済み

EXEL関数

2つのEXCELシートが有り、各シートには以下の様なデーターが載ってます。 例えば、A・Bシート共に A列:商品No B列:型番 C列:数量  と記載されてます。 ただ、BシートにD列:棚番 が所々に記載されてます。 このA・Bシートの 商品No と 型番 が一致するデーターに対して、Bシートの所々に記入されて いる棚番をAシートのBシートと一致する列にワンクリックで転記したいのですが、関数の使い方、 関数の設定の仕方が解りません。 何方かわかる方、関数の設定の仕方を教えてください。 Aシート 品番  型式  数量 1234 ABCD 100 1257 abcde 2 1266 xzabc 15 1556 CHYU 85 1324 ccdeu 158 Bシート 品番  型式  数量 棚番 1234 ABCD 100  A-1 1457 abcdg 2 1536 CHwU 85 1266 xzabc 15  B-4 1335 cDdeu 168 E-8       ↓ Aシート 品番  型式  数量  棚番 1234 ABCD 100  A-1 1257 abcde 2 1266 xzabc 15  B-4 1556 CHYU 85 1324 ccdeu 158

  • dundy
  • お礼率60% (55/91)

みんなの回答

  • Nouble
  • ベストアンサー率18% (330/1783)
回答No.6

要は在庫表を整理したい 型番、品番のセット毎に 何処の棚と何処の棚に 分散して置いてあるか 一覧を作りたい そういう事でしょうか? 裏を返せば 型番、品番のセットは 一度切り現れる とは、限らない ですよね? VLOOKUPは 最初にヒットしたものしか表さない ので、向きません よね こういう場合、配列数式が有効です。 次の式を AシートのD3に入力して 横にずらっとコピー(フィル)し そのまま縦にもコピー(フィル)して ください =if(column(a1)>=  sumproduct(   (Bシート!$a:$a=$a3)   *(Bシート!$b:$b=$b3)   )  ,""  ,offset(   Bシート!$a$1   ,small(    index(     (Bシート!$a:$a=$a3)     *(Bシート!$b:$b=$b3)     *row(      Bシート!$a:$a     )     +not(      (Bシート!$a:$a=$a3)      *(Bシート!$b:$b=$b3)     )*999999999999999    ,,)   ,column(    a1   )-1   ,3,1,1  ) ) 確認して無い ので、難なのですが 如何でしょうか? お役に立てて居たならば幸いです 尚、 望まれる場合は解説致します ので、 その旨、お申し付けください。 (※注:動作異常の時も解説をお申し込みください)

  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.5

回答No.4に見落としがありましたので訂正します。 「このA・Bシートの 商品No と 型番 が一致する」となっていることを商品Noのみの検索として回答してしまいました。 一般的には商品Noで管理するときは重複が無いものとしますので、あなたの設問では重複する商品Noがあると言うことですよね? 基本的にはVLOOKUP関数で可能ですが、検索値と検索範囲および抽出結果について其々に加工が必要になります。 AシートのD2に次の数式を設定してください。 =IFERROR(SUBSTITUTE(VLOOKUP(B2&A2,INDEX(Bシート!B$2:D$10&Bシート!A$2:A$10,0),3,FALSE),A2,""),"") 念のために模擬データを追加して検証した画像を貼付します。 尚、検索範囲の加工に配列式を使っていますので負荷を軽減するためBシートの2行目から10行目までにしてあります。 検索範囲を必要な行数まで拡大して運用してください。

  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.4

>Bシートの所々に記入されている棚番をAシートのBシートと一致する列にワンクリックで転記したいのですが、関数の使い方、関数の設定の仕方が解りません。 「ワンクリックで転記」と言う動作はVBA等のプログラムを使わないとできません。 「Bシートから抽出して代入」と言う動作は関数でできます。 あなたはどちらをしたいのですか? >関数の設定の仕方を教えてください。 関数で処理する場合はVLOOKUP関数で代入できます。 AシートのD2セルへ次の数式を設定し、下へ必要数コピーすれば目的に合うでしょう。 =IFERROR(VLOOKUP(A2,Bシート!A:D,4,FALSE),"") 但し、Excelのバージョンは2003以前ではIFERROR関数が組み込まれていないので再現できません。 Excel 2003以前のときはAシートのD2セルに次の数式を設定してください。 =IF(COUNTIF(Bシート!A:A,A2),VLOOKUP(A2,Bシート!A:D,4,FALSE),"")

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.3

BシートがSheet2ならAシートのD2セルに以下の式を入力して下方向にオートフィルしてください。 =IFERROR(INDEX(Sheet2!$D$2:$D$1000,MATCH(A2&B2,INDEX(Sheet2!$A$2:$A$1000&Sheet2!$B$2:$B$1000,),0))&"","")

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.2

 もしBシートのA列に入力されているデータに同じ品番が入力されている行が複数存在している様な事が無い場合には、AシートのD列のセル(何行目のセルであっても同じ関数を入力すればOKです)に次の様な関数を入力すれば良いと思います。 =IF(INDEX($A:$A,ROW())="","",IF(ISERROR(1/(VLOOKUP(INDEX($A:$A,ROW()),B!$A:$D,4,FALSE)<>""),"",VLOOKUP(INDEX($A:$A,ROW()),B!$A:$D,4,FALSE)))  尚、もしも上記の >BシートのA列に入力されているデータに同じ品番が入力されている行が複数存在している様な事が無い場合 という条件が満たされておらず、BシートのA列に入力されている品番とBシートのB列に入力されている型式の双方が同じ値となっている行が複数存在している事があり得る場合には、それら複数の行のD列のセルに入力されている棚番データの内の、どの値を採用すれば良いのか判断する基準が存在しませんので、その場合は転記する方法は存在しません。

  • aokii
  • ベストアンサー率23% (5210/22062)
回答No.1

BシートのE2に、 =A2&B2 BシートのF2に、 =F2 AシートのD2セルに、 =IF(ISNA(VLOOKUP(A2&B2,B!E:F,2,FALSE)),"",VLOOKUP(A2&B2,B!E:F,2,FALSE))

関連するQ&A

  • こんな関数お願いします

    こんな関数お願いします ドングリを拾った数の合計 Excel2003です、A列 月日 B列 氏名 C列 数量 行は2~60 氏名はA君B君C君D君です、 シート2のA列に氏名 B列に合計数量です。 B列の合計数量セルの関数式をお願いします、 シート1に記入するとシート2のB列に合計数量が出る方法A君でお願いします。

  • 最新の単価を求めるExcel関数について

    例えば以下のシートがあったとします。 データシート A列:品番 B列:型式 C列:得意先名 D列:単価 E列:売上日 集計シート A列:品番 B列:型式 C列:得意先名 D列:最新単価 集計シートのABC列がデータシートのABC列と一致した場合の最新の単価を出すには集計シートのD列にどういう式で求めますか?

  • エクセル関数

    エクセル2010を使っていますが、1つのシートAには販売時の日付、品番、数量、単価、販売額が記されており、同一ファイル内には別のシートBで指定した日付の売上明細を表記したいと思っていますが、うまく関数が組めません。どのような関数を組めば表記できますでしょうか?ちなみにシートAは1か月継続して使うため最大ラインがおおよそ1000行くらいで、シートBは最大50行くらいの表記が可能である必要があります(A5~A55行目) 指定した日付の売上明細(シートB)に表記が必要なので品番、数量、金額になります 指定する日付ですが、シートBの先頭行A1かB1に日付を入力し、A5行目から開始しようと思っています。A5は品番、B5は数量、C5は数量、D5は単価、D6は合計を表記したいと思っています

  • エクセル 関数 ISERROR VLOOKUP

    エクセル関数でご教授お願いします。 今「LIST」シートのA列に品番、B列に単価が入力されています。 これを「入力」シートのA列1行目に品番を入力して、B列1行目に単価を引っぱってくる関数を作りました。 以下関数です。(「入力」シートのB列の関数です) =IF(ISERROR(VLOOKUP(A1,LIST!$A$1:$B$3,2,FALSE)),"品番ミス",VLOOKUP(A1,LIST!$A$1:$B$3,2,FALSE)) 品番が間違っている場合は”品番ミス”と入力されます。 この状態で問題なのは、入力シートのA列に何も入力されていない時に、B列に品番ミスと入ってしまう事です。 何とか、空白にしたいのですがいい方法はありませんでしょうか?

  • データの整合性のエクセル関数教えてください!

    例えばシート1が A列     B列   C列 123さん  12番   1番 345さん  13番   2番 678さん  14番   3番 シート2は A列    B列    C列    D列   345さん   A    13番    3番    123さん   B    12番    1番    678さん   C    14番    3番    という表があった場合にシート1の123さんのB列とC列が シート2の123のC列とD列の番号と一致しているかどうか をE列に●×で表示させたい時はどのような関数を使え ばいいのでしょうか?ちなみにシート1とシート2は順番も 項目も違う内容になっています。 VLOOKとIFを組み合わせたりしたのですが、どうしも うまくいかず困っています。 どなたかおわかりでしたら教えてください。

  • Excelの関数を教えてください。

    Excelの関数で例えば シートAのB行の中の値とシートBのセルA1の値、シートAのC行の中の値とシートBのセルB1の値が一致した行のF列の値を返す関数を考えているのですが、いろいろ試してもエラーになってしまいます。(B列とC列の一致する行は1つしかありません) これができないと家に帰れません;; どなたか、教えてください! よろしくお願いします。

  • Excelの関数について

    エクセルの関数を教えてください。 画像を元にやりたいことを説明させていただきます。 Sheet1のA列の時間がSheet2のA列の時間と一致した場合、 Sheet2のB~E列をSheet1のB~E列に表示させるようにしたいです。 一致しない場合は空白にしたいです。 よろしくお願い致します。

  • Excel関数で違った答えになってしまいます

    Excel関数で違った答えになってしまいます Excelで商品の管理をしているのですが、 関数を入れても答えが違ってしまいます。 [Sheet1]・・・コード入力シート (A1)(A2)・・・商品コード (B1)(B2)・・・数量 [Sheet2]・・・データベースシート (A列)・・・商品コード とあり、データベースの価格を 数量により変化させます。 例えば 商品コード(as400)の価格を 数量100個以上なら10円、100個未満だと15円 としたいのです。 作成した関数は IF(OR(AND('Sheet1'$A$1=A1,'Sheet1'$B$1>=100),AND('Sheet1'$A$2=A1,'Sheet1'$B$2>=100)),10,15) としました。 ただこれだと、[Sheet1]の1行目は正しく表示されるのですが 2行目になると、数量を1個にしても価格が10円になってしまいます。 どのようにすれば良いか悩んでいます。 よろしくお願いします。

  • VLOOKUP関数で取得した数値を加算したい

    はじめまして、初めて質問をさせていただきます。 以下のような処理を行いたいのですが教えてください。    シート1     |   シート2   A   B      |   A    B  1りんご        | 1バナナ  10 2バナナ  25     | 2スイカ  3 3みかん  5      | 3みかん  15 4イチゴ  30     | 4ナシ   5 シート1の数量B列に、品目A列を検索キーとして、シート2の品目A列と一致する品目の数量を「加算」する形で入力したいのです。 関数を入力して、式を下にコピーしていきますが、この際に ・一致するものがない場合は、以前入っていた数値をそのままにする。 ・数値が未記入のセルもValueなどのエラーを出さないで空白セルのままにする。 結果として、このような表になって欲しいのです。   A   B    1りんご    ←空白セルは空白のまま 2バナナ  35 ←一致する品目があったので加算 3みかん  20 ←一致する品目があったので加算 4イチゴ  30 ←シート2に一致する品目がないので変化無し としたいのですが、どのような記述の式にすればよろしいでしょうか? よろしくお願いします。

  • SUMPRODUCT関数で複数条件適用されない

    Sheet1 A列:日付 B列:注文番号 C列:品名 D列:整理番号 E列:数量 集計 A列:品名 B~AF列:日付(1~31日) 【集計】B~AF列の日付、A列の品名が 【Sheet1】A列の日付、C列の品名と一致したら 【Sheet1】E列の数量を【集計】の該当するセルに抽出する 式をSUMPRODUCT関数で作成しました。 例)10/1 りんご 20 【集計】B3セルに以下の数式を入れましたが なぜか数量が「0」のままになります。 =SUMPRODUCT('Sheet1'!$A$3:$A$200='集計'!B$2)*('Sheet1'!$C$3:$C$200="りん ご")*('Sheet1'!$E$3:$E$200) 特に数式のミスはないと思うのですが どうしても正しい値が入りません。 数式に間違いがあればご指摘いただけませんでしょうか。 また、他に良き方法があればご教示いただけるとありがたいです。

専門家に質問してみよう