エクセル関数で指定した日付の売上明細を表記する方法

このQ&Aのポイント
  • エクセル2010を使い、シートAに記されている販売データから指定した日付の売上明細をシートBに表記する方法を教えてください。
  • シートAには販売時の日付、品番、数量、単価、販売額が記されています。シートBは最大50行くらいの表記が可能である必要があります。
  • シートBの先頭行A1かB1に指定した日付を入力し、A5から品番、B5から数量、C5から金額を表記したいと思っています。
回答を見る
  • ベストアンサー

エクセル関数

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

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

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

 今仮に、シートAにおいて「日付」という項目名が入力されているセルはA3セルであるものとします。  又、シートBにおいて指定する日付を入力するセルはA1セルであるものとします。  まず、シートBのB3セルに「品番」、C3セルに「数量」、D3セルに「単価」、E3セルに「合計」と入力して下さい。  次に、シートBのA3セルに次の関数を入力して下さい。 =ROW(シートA!$A$3)  次に、シートBのA4セルに次の関数を入力して下さい。 =IF(ISERROR(1/DAY($A$1)),"",IF(ROWS($A$4:$A4)>COUNTIF(シートA!$A:$A,$A$1),"",MATCH($A$1,INDEX(シートA!$A:$A,A3+1):INDEX(シートA!$A:$A,MATCH(9E+99,シートA!$A:$A)),0)+A3))  次に、シートBのA3セルとA4セルの書式設定の表示形式を[ユーザー定義]の ;;; に設定して下さい。  次に、シートBのB4セルに次の関数を入力して下さい。 =IF(ISERROR(1/(INDEX(シートA!B:B,$A4)<>"")),"",INDEX(シートA!B:B,$A4))  次に、シートBのB4セルをコピーして、シートBのC4~E4のセル範囲に貼り付けて下さい。  次に、シートBのA4~E4のセル範囲をコピーして、シートBのA列~E列の5行目以下に貼り付けて下さい。  以上です。

katsuns
質問者

お礼

KAGAKUSUKISAN ありがとうございます 無事完了しました 本当にありがとうございます

その他の回答 (4)

  • dogs_cats
  • ベストアンサー率38% (278/717)
回答No.5

NO2です。 >1行目は表記されますが2行目以降表記されません。 1つの数式で全ての項目を表示出来ますので、CTRL+SHIFT+Enterで配列数式を確定させた後に数式を右方向及び下方向にオートフィルして数式をコピーするだけです。 数式バーで数式は{}で挟まれていますか? 数式を記載して頂ければ、アドバイス出来るかもしれません。

katsuns
質問者

補足

dogs_catsさん 色々ありがとうざいます。 1行目の式ができ、Sheet1の最初のラインがでたので{}を付けたところ表記された内容が消えてしまいました。また、未熟さもありますが2行目以降表記されません。何が悪いのでしょうか? もし、可能であればアドバイスをいただければと思います

  • msMike
  • ベストアンサー率20% (363/1775)
回答No.4

以下は Sheet2 における操作です。 1.セル A5 に次式を入力 __=IFERROR(INDEX(Sheet1!B$1:B$1000,SMALL(IF(Sheet1!$A$1:$A$1000=$A$3,ROW(A$1:A$1000),""),ROW(A1))),"") 2.セル A5 を右方へズズーッとドラッグ&ペースト 3.範囲 A5:D5 を下方へズズーッとドラッグ&ペースト 【お断り】提示した式は配列数式です。

  • dogs_cats
  • ベストアンサー率38% (278/717)
回答No.3

配列式です。 Aシート2000行まで入力可能。 Bシートは数式をコピーすれば行数に制限はありません。 シートAをsheet1 シートBをsheet2としています。 sheet2の4行目の項目名は事前にコピペして下さい。 A5式 =IF($B$1="","",IFERROR(INDEX(Sheet1!B$1:B$2000,SMALL(IF(Sheet1!$A$1:$A$2000=$B$1,ROW(A$1:A$2000)),ROW(A1))),"")) CTRL+SHIFT+Enterキーを同時押しで数式バーの数式が{}で囲まれていれば確定されています。 {で囲まれていない場合はA5セル選択し、数式バーにカーソルを合わせた後に上記3キーを同時押し。 配列式 http://office-qa.com/Excel/ex69.htm 絶対参照を使用しています。 絶対列参照も使用していますのでセルアドレスのの$位置で意味が違ってきますので注意下さい。 絶対参照と相対参照 http://www11.plala.or.jp/koma_Excel/contents1/mame1006/mame100601.html

katsuns
質問者

補足

アドバイスありがとうございます。アドバイスをいただきました式はできたんですが、1行目は表記されますが2行目以降表記されません。何が悪いのかわからず困っています。もし、可能でしたらシート2の2行目からの式はどのように設定したらよいでしょうか?お手数をおかけして大変申し訳ございませんがもう少しお付き合いをいただければ幸いです お手数をおかけして申し訳ございません

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

推奨:ごく基本的な簡単関数だけで行う シートAのA列A1に「番号」と記入する B1以右に「日付」「品番」「数量」「単価」「合計」とする A2に =IF(B2=シートB!$B$1,MAX($A$1:A1)+1,"") と記入、以下コピーして埋めておく シートBのB1セルに日付を記入する A5以右に「番号」「日付」「品番」「数量」「単価」「合計」とする A6に =IF(ROW(A1)>MAX(シートA!A:A),"",ROW(A1)) と記入、以下コピーしておく B6に =IF($A6="","",VLOOKUP($A6,シートA!$A:$F,COLUMN())) と記入、右に下にコピーしておく B1に該当する行が羅列される。 #各関数は当然ですが「正しいシート名」を用いて数式を作成する事 推奨しません:中身は判らなくて(自分で出来なくて)イイ人向け シートAのA列からデータを作成する シートBのA1に日付を記入する シートBのA5以右に「日付」…とする シートBのA6に =IF(ROW(A1)>COUNTIF(シートA!$A:$A,$A$1),"",INDEX(シートA!A:A,SMALL(IF(シートA!$A$1:$A$1000=$A$1,ROW(シートA!$A$1:$A$1000),""),ROW(A1)))) と記入、必ずコントロールキーとシフトキーを押しながらEnterで入力する 下にコピーする そのあと右にコピーして完成。 #間違えずに行えばちゃんと出来ます。出来ない時は間違えているのでやり直す事。

katsuns
質問者

お礼

ご連絡ありがとうございます 複数の方からアドバイスをいただき無事解決できました 貴重なお時間をありがとうございました

関連するQ&A

  • エクセル 関数 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列に品番ミスと入ってしまう事です。 何とか、空白にしたいのですがいい方法はありませんでしょうか?

  • エクセル2010の関数について教えてください

    下記のような シート1 があります。    A     B      C     D       E    1 担当者  商品名   数量   販売単価  売上月 2 山本   えんぴつ  100    150 3 上田   消しゴム   80    180     6月 4 鈴木   ノート     90    170     4月 5 岡田   名刺     500    800 6 松岡   バインダー 300    300     8月 7 遠藤   えんぴつ  110    180 シート1 のE列に売上月が入力された行のみをシート2に自動に表示したいです。 どなたかご指導お願い致します。     A      B      C      D     E    1 担当者  商品名     数量  販売単価  売上月 2 鈴木    ノート      90   170     4月 3 上田    消しゴム    80   180     6月 4 松岡    バインダー  300   300     8月 5  6  7 

  • ExcelのVLOOKUP関数について教えて下さい。

    こんばんは。 下の表をExcelでVLOOKUP関数を使用して、品名と単価を求めたいのですがうまくできません。 エラーがでるそうなのですが、品名のところに1000が表示されます。 絶対参照は使用しました。 どなたかやり方を詳しく教えていただけないでしょうか? よろしくお願いします。 (ケーキ売上日計表) A列4に伝票番号、B4品番、C4品名、D4数量、E4単価、F4売上金額です。 伝票番号 品番 品名 数量 単価 売上金額 1 K001 256 2 M002 157 3 M001 219 4 K002 135 (品名別金額一覧表) A11~C15に 品番 品名 単価 M001 丸型クリーム 2,000 M002 丸型チョコ 3,500 K001 角型クリーム 3,000 K002 角型チョコ 2,500

  • エクセルの関数についてです、よろしくお願いします

    エクセルの関数についてです、よろしくお願いします。 sheet1に以下の様なデータが何百行とあります。 A B C D E 日付  顧客名  品名  数量  金額 上記のsheet1のデータを基にsheet2へ抽出して転記する ものを作りたいと考えています。 具体的に言いますと sheet2のA1に2014/11/21、 B1に2014/12/20、 C1に ○○商店と入力するとその下に A      B     C     D 日付   品名   数量 金額 2014/11/23  りんご 5 750 2014/11/28  みかん 2 300 2014/12/2   いちご 3 600 2014/12/10  りんご 5 750 sheet1のリストから該当するものを引っ張ってきて sheet2へ表示させるものです オートフィルタ等でなく、関数で出来ないでしょうか お詳しい先生方よろしくお願いします。

  • Excelの関数に関して教えて下さい

    パソコンはWindos98です。 ExcelのAシートに     A列    B列    C列    D列    (品名) (ロット) (容量)  (数量) 1行 みかん   123   100g  3 2行 りんご   456   100g  4 3行 ピーチ   789   120g  2 とある場合に新たなBシートの A1のセルに「りんご」と入力した場合に A1 品名 A2 ロット A3 容量 A4 数量 Aシートの2行目のデータをBシートのそれぞれの欄に 自動的に入るという関数はありますでしょうか? ちなみにAシートのりんごのデータは2行目にくるか 3行目にくるかは分からないのでどこの行に入力しても Bシートに反映されるというようにしたいのです。 補足もしますのでどうか宜しくお願いします。

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

    初めまして。よろしくお願いします。 関数を使って、以下のようなデータを作成することができれば、 その関数を教えてください。 Sheet1には次のように入力されています   A       B 1 日付      金額 2 2010/1/1 500 3 2010/2/5  300 4 2010/1/23 10000 5 2010/2/1  200 ・ ・ ・ A列に日付、B列に金額が入力されていて、行は決まっていません。 これをSheet2に集計したいのですが、B2~B13に関数を使ってできますか? Sheet2   A     B 1 月    金額 2 1月 3 2月 4 3月 ・ ・ ・ 13 12月 14 合計 Excelがわからなくてこまっています。詳しい方、ぜひ教えてください。 よろしくお願いします。

  • エクセル関数につきまして

    皆様の知識を頂きたく、投稿させて頂きます。 EXCELのVLOOKUP関数なのですが、2個の条件から一致する項目を選ぶ事は出来ないのでしょうか? たとえばですが、 ≪参照シート≫ A   B   C   コード 数量  日付 → タイトル行 1   1    1/1 2   1    1/1 1   2    1/2 2   2    1/2 ≪入力シート≫ A   B   C  ~ コード 1/1  1/2  ~ 1 2 といった感じで、入力シートと参照シートのコードと日付が一致するデータを取り出したいのです。 VLOOKUPを重ねて使用したりとか、HLOOKUPを使用したり等考えたのですが、うまくいきませんでした。 現在使用しているのは、Microsoft Office EXCEL2003になります。 どなたかご教授下さい。 よろしくお願い致します。

  • エクセルVBAで売上帳作成

    エクセルVBAで売上帳を作成しているのですが、毎日の売上・入金を記載しているシートから、顧客別に売上シートを作りたいのです。 作成しているシートは    A    B     C    D   E   F    G      H 1 日付 顧客NO. 顧客名 品名 数量 単価 売上金額 入金金額 2 3 というように作っていて、これを元に顧客NO.を指定すると、該当する行のみを抜き出して、別のシートに転記されるというようにしたいのです。 どのような命令文を作ればよいのでしょうか?

  • 納品書作成

    初めまして。 Excel関数初心者です。 今、納品書の間違いを減らす為関数を使っての作成を試みてますが 上手く関数が使えません。 まず、取引先からの注文品番、数量、指定日を 毎日の出荷表から日付別に納品書に出したいのですが      A   B  C  D   E  F  1  日付  1日 2日 3日 4日 5日  2  A品番 30        30  3  B品番 10  10              A      B    C  1 品番    数量  指定日 ←A品番の1日のデーター  2 品番    数量  指定日 ←B品番の1日のデーター  3 品番    数量  指定日 ←B品番の2日のデーター  4 品番    数量  指定日 ←A品番の4日のデーター これをすべてExcel関数で、データーから納品書に抽出出来ますでしょうか? 宜しくお願い致します。

  • エクセル関数 支出管理のやり方

    エクセルの関数について質問です。 支出に関する表を作成しているのですが 例えば シート1のA行に1か月分の日付を入れて、B行に預金額の流れを管理します。 シート2のA行に預金額、B行に個々の支払期限日、C行に残高を入れて管理をします。 支払期限日は毎月違うので、シート2のB行に入れた日付がシート1のA行の日付と同じ日付だった場合 シート1の同じ日付になる列に、シート2の同じ日付のC行の残高が自動入力されるようにしたいのですが いくら調べても、関数がわかりません。 分かる方が居たら教えてください。 お願いします。

専門家に質問してみよう