• ベストアンサー

抽出の仕方教えてください!

いい方法を教えてください! 例えば、下図の表があり部品Aを100個単位で買うと単価300円し、1000個単位で買うと単価が280になるといった見方をする単価表があるとして、SHEET1にあるとします。 SHEET2で部品名と購入単位個数(ロット数)を入力すると単価が自動抽出できる良い方法を教えてください。 A列   B    C    D     100個 1000個  2000個 部品A 300   288   260 部品B 500   480   460 部品C 320   318   302 部品D 120   110   102 宜しくお願いします!! 

  • AKI78
  • お礼率63% (70/110)

質問者が選んだベストアンサー

  • ベストアンサー
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.3

次の方法は如何でしょうか。 シート1の1行目は数値(表示形式が#"個")、範囲はA1:D5としますので、範囲は調整して下さい。 シート2のA1に部品名、B1に個数、C1にその単価を表示するとしています。A1が未入力及びB1が99個以下は入力ミスとします。 C1セルに=IF((COUNTIF(Sheet1!$A$2:$A$5,A1)>0)*(B1>99),OFFSET(Sheet1!$A$1,MATCH(A1,Sheet1!$A$2:$A$5,0),MATCH(B1,Sheet1!$B$1:$D$1,1)),"入力ミス")

AKI78
質問者

補足

そういう関数の使い方もあるんですね☆有難うございます。より良いやり方を知りたい為引き続き教えてください!!宜しくお願いします。

その他の回答 (2)

  • Ce_faci
  • ベストアンサー率36% (46/127)
回答No.2

こんばんわ シート2のセルA1、B1に部品名、ロット数が入るものとして セルC1に =SUMPRODUCT((Sheet1!A4:A6=A1)*(Sheet1!B3:D3=IF(B1=0,,IF(B1<1000,100,IF(B1>=10000,9000,INT(B1/1000)*1000))))*(Sheet1!B4:D6)) としました。 表がどこまであるのか分かりませんでしたので、9000個まであるものとしました。仮に表が3000個までの場合は式中のB1>=3000,3000と直してください。

AKI78
質問者

お礼

有難うございます。

回答No.1

購入単位は 100,1000,2000のいずれかと言う事でよろしいですか? VLOOKUPで単価を呼ぶ事が出来て、それをIF関数の入れ子にする事で 読み込む列を変更出来ます。 Sheet2が A    B   C 部品名 数量 単価 として C列に入れる関数は下の通りです。 =IF(B1=100,VLOOKUP(A1,Sheet1!$A:$D,2,FALSE),IF(B1=1000,VLOOKUP(A1,Sheet1!$A:$D,3,FALSE),VLOOKUP(A1,Sheet1!$A:D,4,FALSE))) 改行されている場合は一行にして貼り付けして下さい。

AKI78
質問者

お礼

有難うございます。

関連するQ&A

  • エクセルのVLOOKUP関数で…(複数条件?の抽出)

    ●シート2、A列に部品正式名称、B列に部品略称の一覧表(部品の種類は約500点) ●シート3、A列に略称、B,C,D,E,F,G列と続けて寸法などの詳細を記した一覧表 があります。 ●シート1に検索一覧表として、B列(B3~B8)は項目、セルC3~C8にVLOOKUPでシート3の情報が抽出されるようにしてあります。 C1で略称を入力し抽出するのはOKなのですが、正式名称で入力しても同じようにシート3の情報を抽出するようにしたいです。 (IFを使って思いつく関数を組合わせてみたりしたのですが、うまくいきませんでした(TT) できたら関数で何か良い方法ありますでしょうか? 宜しくお願いします。

  • EXCELで一致する文字列を抽出する方法

    EXCELに関する質問です。 ファイル1に売上デ-タがあります。    A    B   C   D 1 商品名 品番 単価 個数 2  あ    A1  100   3 3  い    A2  110   10 4  う    A3   120   5 5  は    A4  130   3 6  ひ    A5  140   7 7  ふ    A6  150   11 8  へ    A7  160   6 9  ほ    A8  170   3 ファイル2に特定の商品名のリストがあります。   A    B   C 1 商品名 2  い 3  ろ 4  は 5  に 6  ほ 7  へ 8  と 9  ち 10  り 11  ぬ ファイル1のSHEET2に    A    B  C  D 1 商品名 品番 単価 個数 2  い    A2  110  10 3  は    A4  130   3 4  へ    A7  160   6 5  ほ    A8  170   3 の様に抽出する方法ですが、商品名が単純な文字列のときは フィルタ-の詳細設定で出来ますが、 商品名が  [8/1発売] 20%OFF  い A2 の様なキャッチコピ-付の文字列の場合、抽出することが出来ません。 (ファイル1・2共にキャッチコピ-付の商品名です。) この場合でも抽出できる方法をご教授いただけないでしょうか? 宜しくお願い致します。

  • 指定した3つのセルのデータを抽出し別表を作成する

    A表(A~F列、1~7行)のうちB、D、F列にデータが入力表示されたデータを抽出して別のB表(A,B,C列、1~7行)を作成するためのエクセル関数をご教授下さい。下図のとおり、F列は同じデータですのでVLOOK関数で表示できるのですが、B,D列にデータが入力されていない場合は、表示しないようにしたいのです。よろしくお願いします。 また、3つのうち一つでもデータがない場合は、表示させない方法でも結構ですよろしくお願いします。 [A表]    A    B    C    D    E   F 1  5    8     9    12    2   ○ 2  4                       ○ 3       7          10       ○   4                          ○ 5  3    4     10    5       ○ 6                          ○ 7                          × [B表]    A    B     C 1  8    12    ○ 2  7    10    ○ 3  4     5    ○ 4 5 6 7

  • エクセルで項目を抽出したい

    皆様のお知恵をお貸しください。 日々作業者が行っている日報の項目を一覧表より抽出したいのです。 シート1には受付日(A列) 品番(B列) 数量(C列) 納期(D列)・・・ などが記入されています。日々増えていき月あたり100件程度です シート2には作業者の日報に書かれている品番(A列)、作業時間(B列)、作業者名(C列)作業日時(D列)を手入力していきます。 月当たり1000ほどの入力になります。 複数の作業者が同じ仕事をすること、日をまたぐこともあり重複しています。 求めたいことはシート3のA列にシート2で書かれた品名をシート1の品名の中から抽出し自動で書き出したいのです。 今はピボットを使いシート2のデータを表にして、そこの項目をLOOKUP関数を用いて導きだしていますが、その都度ピボットを更新させないといけないので煩わしいと思い、できれば関数で抽出をしたいのです。欲を言えば品番の若い順に自動で抽出できればいいのですが、まずはシート2に書かれた順でもかまいません。 記入例 シート1には A列    B列    C列    D列 10/1   10001    30    10/12 10/2   10002    1     10/5 10/2 10003 3 11/5 ・       ・        ・ シート2には  A列    B列     C列    D列 10001    2.5     ○○   10/2  9058    4      ○○   10/2 10003 1 ○○   10/3 10001 1 ××   10/3  10003 6 ××   10/3 10002 2 △△   10/5 シート3には(希望としては)  A列     9058 10001 10002 10003 . . . よろしくお願いします。     

  • VBAを利用した抽出の仕方を教えてください!

    知恵をおかしください。 sheet1に以下の残業時間早見表があるとします。 A列  B   C  D  /  18:00 19:00 20:00 8:30  1   2   3 9:00  0.5  1.5  2.5 9:30  0   1   2 縦軸を出社時間で横軸を退社時刻として、 SHEET2のA列に出社時間とB列に退社時間を入力すればC列に残業時間がsheet1から条件にあった値を抽出して表示させるようにしたいです。 『例えば、9時に出社して19時に退社したら1.5時間残業したと自動表示されるといったような・・・』 マクロやVBAを利用してやる方法を教えてください。お願いします。

  • <EXCEL>複数の条件を指定して抽出

    データの抽出に関して分からないことがありましたので質問させてください。 現在顧客管理表を作成中で、顧客リストから条件に合うデータを抽出し、 そのデータの個数を同シート内に表示させるような作りになっています。 そのひとつの数式が以下のような感じです。 =SUMPRODUCT((INDIRECT("C3"):C190="○支店")*(INDIRECT("D3"):D190="新規")*INDIRECT("A3"):A190) "範囲 B3:M190の顧客リストからC列(支店名)が『○支店』、かつD列(契約の種類) が『新規』のものを抽出し、個数を表示させる"・・・という数式なのですが、 (A列には、オートフィルにも対応させるため1を表示させる別の数式を入れています) この条件を"C列が『○支店』または『△支店』、かつD列が『新規』のものを抽出" と変えるには、どうすればいいのでしょうか・・・ 単純な内容なのかもしれませんが、教えていただけると助かります。 よろしくお願いします。

  • 検索から抽出

       A  B  C 1  あ  10  20 2  い  11  21 3  う  12  22 ・ ・ ・ 11 ア  51  101 12 イ  52  102 13 ウ  53  103 A列物品名、B列個数、C列単価の上記シ-トがあった時 別表に物品別に検索及び抽出の関数を教えて下さい。 Vre2003です。

  • データ抽出方法

    おはようございます。 sheet1 B列、C列に重複してるデータと、そうでないデータが混在して沢山あります。 sheet2 B列、C列に一点一様の型でデータを抽出したいご伝授下さい sheet1 B列、C列 A-1-1 A A-1-1 A B-2-1 D B-2-2 E C-2-1 B C-2-1 B C-2-3 C sheet2 B列、C列(抽出結果) A-1-1 A B-2-1 D B-2-2 E C-2-1 B C-2-3 C

  • 対象月を抽出して必要項目だけを表示させるには

     下図【ワークシート1】のようなリストから、対象月をワークシート2に抽出させたいのですが、ワークシート2は即印刷可能な形式とするため、対象月を単純に抽出するのではなく、必要な項目だけを抜き取りリスト化させるマクロを実現させたいと考えています。  高度なマクロはまるっきり分からないので、ご教示願います。  なお、対象月は下図例では2月分を抽出させるため「2009/2/?」と記載してありますが、抽出させるために入力する形式は拘りません。 (例えば「<2009/2/1,>2009/2/28」と言った表現でも結構です) 【ワークシート1】  A列  B列   C列   D列  E列  F列   ・・  X列 1 A店 商品a 2009/1/10 承認 山田 2009/1/11 ・・ 鈴木 2 B店 商品b 2009/2/5  否認 田中        ・・ 松田 3 C店 商品c 2009/2/20 否認 鈴木        ・・ 本田 4 B店 商品a 2009/2/25 承認 田中 2009/2/27 ・・ 山本 5 A店 商品c 2009/3/1  承認 加藤 2009/3/2  ・・ 大石 【ワークシート2】上の任意の場所  (例えばA1) 2009/2/? 【ワークシート2】出力例   A列  B列  C列  D列    E列 10 B店 商品b 否認       松田 11 C店 商品c 否認       本田 12 B店 商品a 承認 2009/2/27 山本

  • エクセル 別シートから一覧を抽出したい

    部品一覧表を作成しているのですが、2シートあり 1入力シート・2部品コードシートとあります。 部品コードシートにはB列に部品番号・C列部品名・D列部品番号・E列部品名と2行ずつ使い番号・品名がB~Wまで47行分入力されています。 B1:C47、D1:E47…と2列47行にはそれぞれ【A】、【B】、…とセルの名前の定義をつけました。現在【H】までありますが、今後増える可能性があります。 入力シートに、セルの名前を指定したときに部品コードのシートから 一覧を抽出したいのですが、どの関数を使えばよいのかわかりません。 入力シート                 |部品コードシート G   H                  | A Bコード C部品名  Dコード E部品名 4式入力用にあけています。     |1 1800  ユニットA   1501 電源A 5コード 部品名             |2 1801  ユニットB   1502 電源B 6                       |3 G4に関数を入れてG6~G52まで部品コードのシートA1~A47を一気に表示 させたいのです。部品コードシートの行数が変わることはありません。 マクロを使わないと、関数では難しいでしょうか?

専門家に質問してみよう