プロが教えるわが家の防犯対策術!

エクセルについて質問があります。
sheet1にB2列目に 納期 20180104
D2列目に 商品名 ケーキ
G2列目に 発注数 3

sheet2には、カレンダーがあります。
C列に商品名を入力しています。
D3列目 2018年1月1日、E3列目2018年1月2日、
AH3列目2018年1月31日を入力しています。
D4列目〜AH4列目まで発注数です。
もし、sheet1の納期、商品名が同じ場合は、発注数を自動でsheet2に入力する事は可能でしょうか?

A 回答 (3件)

「B2列目」「D2列目」「G2列目」などと、Excel で称することはありません、


どういう意図で仰っているのですか?
    • good
    • 0

>発注数を自動でsheet2に入力する事は可能でしょうか?


できますよ。
でも、それ、Sheet2の表の作りが悪いなあ。
 ・A列に日付
 ・B列に発注数
…のようにすることを勧めます。

あと、Sheet1のB2セルに入力する値は「20180104」ではなく「2018/01/04」のようにすることを勧めます。
これは前の回答者さんも指摘しているように ”シリアル値” という考え方があるからです。
シリアル値は1900年1月1日から積算した日数です。
さらに24時間を1として時間を0から1の間の少数で示しています。
これによりExcelでは日付と時間の計算を行うように作られているのです。


・・・本題・・・
この場合、いくつかポイントがあります。
 ・Sheet1のB2セルに入力されている数値をシリアル値と一致させる必要がある。
 ・Sheet2からSheet1のセルを参照する。
…の2つ。

数値をシリアル値へ変換する場合は、MID関数で数値を切り出してDATE関数を使うのが一般的でしょう。
 DATE(MID(B2,1,4),MID(B2,5,2),MID(B2,7,2))
など。
シリアル値を数値へ変換する場合はTEXT関数を使うと良いでしょう。
 TEXT(D3,"yyyymmdd")
など。

他のシートのセルを参照する場合は
 「シート名+!+セル番地」
として参照します。
 =Sheet1!B2
のようになります。
数式に組み込むと、
 DATE(MID(Sheet1!B2,1,4),MID(Sheet1!B2,5,2),MID(Sheet1!B2,7,2))
と長く見づらい式になるので注意が必要です。

・・・
これだけアドバイスをすれば、あとは自身で考えて処理できると思いますがいかがでしょう。
    • good
    • 0

こんにちは!



① Sheet1の入力セル(B2・D2・G2)は一定なのでしょうか?
② Sheet1のB・D・G列の2行目以降にデータが続く!というコトなのでしょうか?

①の場合は関数では無理でVBAになると思います。
②の場合であれば数式で処理できます。

②だとすると・・・
(Sheet1のB列はシリアル値が入っていて、表示形式が yyyymmdd となっているという前提です)
Sheet2のD4セルに
=SUMIFS(Sheet1!$G:$G,Sheet1!$B:$B,D$3,Sheet1!$D:$D,$C4)

という数式を入れフィルハンドルで列・行方向にコピーしてみてください。

※ エラー処理はしていません。m(_ _)m
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!