アプリ版:「スタンプのみでお礼する」機能のリリースについて

EXCEL2010です。

シート1に名前、日付、数量、金額が入力されています。
シート2に1月から12か月分の表があります。

行に担当者、列に日付です。
シート1で入力した日付を元に、表の該当する日付欄へ
「1」と自動反映される方法を教えてください。

関数を使ってもマクロを使っても結構です。
お手数ですがよろしくお願いいたします。

「EXCEL(関数・VBA)表の日付欄に入」の質問画像

質問者からの補足コメント

  • さっそく回答いただきありがとうございます。
    該当する箇所はすべて1で結構です。


    念のため下記補足事項です。

    ・シート1の始まりはF列
    ・シート2の始まりはA列
    ・表は見出しを含めて13行、表と表の間は1行あきです。

      補足日時:2016/12/21 17:09

A 回答 (4件)

こんばんは!



一例です。
↓の画像のような配置になっているとします。
尚、下準備としてSheet2の日付セルをシリアル値にしておきます。
Sheet2のA列(結合セル)の表示形式はユーザー定義から
0月
とし、単に「1」や「2」といった数値のみの入力とします。
次にD1セルの表示形式はユーザー定義から
d日
としておき
=DATE(2017,$A2,COLUMN(A1))
という数式を入れ右方向に月末までフィル&コピー!
上記数式は「1月分」(1行目)のシリアル値になりますので、
2月分(D15セル)は
もう一度D1セルを選択 → D1セルの境界をポイントすると
小さな上下左右の矢印になるところがありますので、Ctrlキーを押しながらD15セルまでドラッグ!
これでD1セルの数式と書式がそのままコピーされます。
D15セルのフィルハンドルで右方向にコピー!

同じように各月のD列の見出し行に数式をコピーしておきます。

以上の下準備ができた上で・・・

D2セルに
=IF(COUNTIFS(Sheet1!$G:$G,D$1,Sheet1!$F:$F,$C2),1,"")
という数式を入れ、列・行方向にコピー!
これで1月分が完成です。

2月分のD16セルには
=IF(COUNTIFS(Sheet1!$G:$G,D$15,Sheet1!$F:$F,$C16),1,"")
という数式で列・行方向にフィル&コピー!

3月分は
=IF(COUNTIFS(Sheet1!$G:$G,D$29,Sheet1!$F:$F,$C30),1,"")

といったように数式内のD列の行番号だけを変えていきます。
この操作を表の数だけやれば完成です。

※ 2017年のシリアル値としています。m(_ _)m
「EXCEL(関数・VBA)表の日付欄に入」の回答画像4
    • good
    • 0
この回答へのお礼

さっそく試させていただき、思った通りの表を完成させることができました。ありがとうございました。

お礼日時:2016/12/22 09:41

VLOOKUPの範囲は適当にしてるだけなので、ちょいちょい、調節してみてください...

    • good
    • 0

前もって伝えておきますが、長くなって複雑なので、


もっと簡単な関数を知られてる方がおられたら、その方のを使ってください...
=IF(IFERROR(VLOOKUP($C2,Sheet1!$A$1:$D$11,2,0),"")="","",IF(IFERROR(VLOOKUP(VALUE(CONCATENATE($A$2,D$1)),Sheet1!$B$1:$B$11,1,0),"")="","","1"))
    • good
    • 0
この回答へのお礼

いち早くご回答いただきありがとうございました。

お礼日時:2016/12/22 09:41

該当するところへは、


すべて「1」と表示したらいいのですか?
    • good
    • 0

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