- 締切済み
Excel 条件に一致する日付の求め方について
こんにちは!初めて質問します。 Excel関数の使い方がわからずに困っています。 売上と在庫管理をそれぞれ別シートに入力しています。 売上が出た場合、在庫管理シートに売上日が表示されるようにしたいのです。 シートは、このような形で、それぞれデータを入力しています。 売上表シート A列 B列 C列 D列 日付 顧客名 商品コード 売上金額 在庫管理シート A列 B列 C列 D列 E列 入荷日 商品コード 商品名 売上日 売上金額 商品コードが一致する売上表シートの日付を、在庫管理シートの売上日に表示させたいのですが、 上手くいきません。 売上金額はSUMIF関数で処理することができました。 Excelに関する知識も乏しく、非常に困っています。 なにぶん初めての質問のために質問内容も的を得ず、わかりづらいかもしれませんが、 どなたかお分かりになる方、是非ご教示くださいませ。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- keithin
- ベストアンサー率66% (5278/7941)
ごく簡単な方法: ご利用のエクセルのバージョンも不明のご相談ですが、エクセル2007以降を使っているなら D2に =IFERROR(INDEX(売上表!A:A,MATCH(B2,売上表!C:C,0)),"") 以下コピー として、必要に応じてセルの書式設定の表示形式で日付の設定を付けておきます。 この数式はエクセル2003以前を使っていると使えません。 そのときは代わりに =IF(COUNTIF(売上表!C:C,B2),INDEX(売上表!A:A,MATCH(B2,売上表!C:C,0)),"") といった式にします。 ご相談投稿では、必ずあなたが普段使うソフトのバージョンまでキチンと明記する事を憶えて下さい。 #補足 あなたにとってエクセルの関数が謎だらけであるのと同様、一般人である私たち回答者には、あなたにとって常識の「単品管理」が一体「最新の日付を表示したい」なのか「最初の日付を参照するのでいい」なのか、あなたが「何をしたい(具体的にどんな結果が欲しい)」のかまるでイミフメイです。 その意味で1番の人が丁寧にコメントを付けたにもかかわらず、一体何が指摘されたのか理解できなかったご様子ですし、回答者は好き勝手に数式を回答します。
- KURUMITO
- ベストアンサー率42% (1835/4283)
売上表シートをシート1としてA1セルからD1セルまでにお示しの項目名が有り、2行以降に各データが入力されるとします。 在庫管理シートをシート2としてA1セルからE1セルにはお示しの項目名が入力されているとします。 D列とE列のデータはシート1の表から関数で表示させるとしてD2セルには次の式を入力してE2セルまで横にドラッグコピーしたのちに下方にもドラッグコピーします。 =IF(COUNTIF(Sheet1!$C:$C,$B2)=0,"",IF(COLUMN(A1)=1,INDEX(Sheet1!$A:$A,MATCH($B2,Sheet1!$C:$C,0)),IF(COLUMN(A1)=2,INDEX(Sheet1!$D:$D,MATCH($B2,Sheet1!$C:$C,0)),""))) D列には日付のシリアル値が表示されますのでD列を選択して右クリックし、「セルの書式設定」の「表示形式」の「日付」から好みの表示に設定します。
- shintaro-2
- ベストアンサー率36% (2266/6245)
>商品コードが一致する売上表シートの日付を、在庫管理シートの売上日に表示させたいのですが、 上手くいきません。 関数レベルでは無理でしょうね そもそも、商品Aが5個入荷して、6/1に1個、6/5に3個、7/1に1個売れたような場合はどうされます。 あるいは、在庫が3個の状態で商品を補充したような場合とか・・・ もし、入荷と出荷とをひも付したいのであれば、商品コード(種類単位)ではなく、個々の商品毎に通し番号を付ければ、お考えのことは可能になりますが、とっても面倒です。
お礼
お忙しいところ、ありがとうございました。 ご指摘のとおり、今回の在庫管理は商品毎の単品管理でした。 私の説明が足りず、申し訳ありませんでした。 このような言葉足らずの質問に回答を寄せて頂いたお気持ちが、とても嬉しかったです。 お世話になりました。
お礼
ありがとうございます! ご指示通りに関数を入力し、表を完成させることができました。 感激です!! 想像以上に複雑な関数で、自分一人では到底できない事であり、本当に助かりました。 お忙しいところ、ありがとうございました。