『一か月分の記録を残したい』(マコ) お世話になりますがよろしくお願いします。    A B C  DE   FG   HI   JK   LM   NO   PQ  1 品名 数量    4月1日 4月2日 4月3日 4月4日 4月5日 4月6日 4月7日 2 3 4 ・ ・ ・ 18 19 4月8日 4月9日 4月10日 4月11日 4月12日 4月13日 4月14日 20 21   2週 D19:P19 3週 D36:P36 4週 D52:p52 5週 D68:P68となっています。 この表で、A2にあられ B2に500 と入力した時、今日の(4月6日)N2 O2のセルにあられ 500と表示させたいのです。   よろしくお願いします。    Excel:2010 Windows:7 < 使用 Excel:unknown、使用 OS:unknown > ---- N2=B2 なんて単純な話じゃないですよね? なんとなくですが、A2,B2に入力されたら、今日の日付のセルに数値を転記したいってところでしょうか? いつも言っているのですが、見るだけの表と、入力される表は分けて管理したほうがよいと思います。 (稲葉) 2015/04/06(月) 10:28 ---- 一瞬DE列、FG列かと思ってずいぶん離れたセルに表示させているなと思ったら 結合しているという意味なんですね。 D2セル =IF(LOOKUP(10^16,$D1:D1)<>TODAY(),"",$A$2) E2セル =IF(LOOKUP(10^16,$D1:D1)<>TODAY(),"",$B$2) D2セルとE2セルを選択した状態で右にフィルコピー D2セルからQ2セルを選択した状態でコピー 20行目、37行目・・・69行目に貼り付け ※追記 上記の数式だと明日になればN2セル、O2セルが消えてしまいますが、もし過去の分も 残しておきたいならマクロになるのかな(でもそれだったら今日の日付のところに 直接入力した方がいいってことになりそうですが) (se_9) 2015/04/06(月) 10:35 追記10:40 ---- (se_9)さんありがとうございます。 上手くできました。 出来ましたら、過去の分も残せるようにお願いできますか。 (マコ) 2015/04/06(月) 11:00 ---- 半分お遊びで。 (マクロが出てくるまでのつなぎ) Excelのオプションで「数式」の「反復計算を行う」にチェックを入れて「最大反復回数」を「1」にする。 D2セルに =IF(AND(CELL("address")="$A$2",TODAY()=D1,$A$2<>""),$A$2,IF(D2=0,"",D2)) E2セルに =IF(AND(CELL("address")="$B$2",TODAY()=D1,$B$2<>""),$B$2,IF(E2=0,"",E2)) と入力してD2セル・E2セルを選択してQ2セルまでフィルコピー。 次にD2セルからQ2セルまでを選択してコピー。 D19、D36、D52、D68にそれぞれ貼り付け、として見てくれ。 その日のうちはA2セル・B2セルが書き換えられるたびに対応するセルの中身を変わるがA2セル、B2セルが空白になった場合は そのまま直前の値が残る。 また、日付が変わった場合にも以前の値が残る。 (ねむねむ) 2015/04/06(月) 11:13 ---- A2セル、B2セルの値を削除した場合には該当する日の値も消したい場合は式を D2セル =IF(AND(CELL("address")="$A$2",TODAY()=D1),IF($A$2="","",$A$2),IF(D2=0,"",D2)) E2セル =IF(AND(CELL("address")="$B$2",TODAY()=D1),IF($B$2="","",$B$2),IF(E2=0,"",E2)) としてくれ。 (ねむねむ) 2015/04/06(月) 11:24 ---- ねむねむさん ありがとうございます。 D2セルに =IF(AND(CELL("address")="$A$2",TODAY()=D1,$A$2<>""),$A$2,IF(D2=0,"",D2)) E2セルに =IF(AND(CELL("address")="$B$2",TODAY()=D1,$B$2<>""),$B$2,IF(E2=0,"",E2)) 各々のセルに書き込みました。 何とか1週目のはじめは出来たのですが下へフィルコピーした時に どこの $ を消したらいいのでしょうか?  また、どこかに $ を加えるのですか?   よろしくお願いします。 (マコ) 2015/04/06(月) 12:56 ---- 下へはそのままコピーするのでいいのだが? コピーした後、その行の上の日付を当日にしてA2セル・B2セルの値が表示されるかテストしてみてくれ。 (ねむねむ) 2015/04/06(月) 13:03 ---- D2セルに =IF(AND(CELL("address")="$A$2",TODAY()=D1,$A$2<>""),$A$2,IF(D2=0,"",D2)) E2セルに =IF(AND(CELL("address")="$B$2",TODAY()=D1,$B$2<>""),$B$2,IF(E2=0,"",E2)) と入力してD2セル・E2セルを選択してQ2セルまでフィルコピー。 N2のセルは =IF(AND(CELL("address")="$A$2",TODAY()=N1,$A$2<>""),$A$2,IF(N2=0,"",N2)) O1のセルは =IF(AND(CELL("address")="$B$2",TODAY()=O1,$B$2<>""),$B$2,IF(O2=0,"",O2))  となって、OKですよね。  これから下にコピーすると、 N3 =IF(AND(CELL("address")="$A$2",TODAY()=N2,$A$2<>""),$A$2,IF(N3=0,"",N3)) O3 =IF(AND(CELL("address")="$B$2",TODAY()=N2,$B$2<>""),$B$2,IF(O3=0,"",O3)) になり、数字は表示されないのです。   よろしくお願いします。 (マコ) 2015/04/06(月) 15:02 ---- もしかしてA3セル、B3セルに値を入れることがあり、その場合は3行目、21行目、38行目…に表示させたい、 以下4行目から18行目も同じということだろうか? とりあえず値を入力するセルがどこからどこでその時に表示させたいセルがどこかを説明してくれないか? (ねむねむ) 2015/04/06(月) 15:27 ---- 説明がまずかったようで、申し訳ないです。 A3:A16に品名 B3:B16に数量が入ります。  4月8日は、2週目のD20に品名 E20に数量 5種類あればDE24までになります。   よろしく (マコ) 2015/04/06(月) 15:45 ---- 一週目: 2行目から19行目までの18行 二週目:20行目から35行目までの16行 三週目:37行目から51行目までの15行 四週目:53行目から67行目までの15行 と週によって行数はバラバラなのだろうか? (ねむねむ) 2015/04/06(月) 16:05 ---- もしかしたらそうかなと思ったらやはり・・・。 マクロ案です。 Sub a() Dim r As Long, c As Long r = Columns("D:Q").Find(what:=Date, lookat:=xlWhole).Row c = Columns("D:Q").Find(what:=Date, lookat:=xlWhole).Column Select Case r Case 1 Range(Cells(r + 1, c), Cells(r + 14, c + 1)).Value = Range("A2:B15").Value Case 19 Range(Cells(r + 1, c), Cells(r + 14, c + 1)).Value = Range("A20:B33").Value Case 36 Range(Cells(r + 1, c), Cells(r + 14, c + 1)).Value = Range("A37:B50").Value Case 52 Range(Cells(r + 1, c), Cells(r + 14, c + 1)).Value = Range("A53:B66").Value Case 68 Range(Cells(r + 1, c), Cells(r + 14, c + 1)).Value = Range("A69:B82").Value End Select End Sub 範囲は適当に変えてください。 (se_9) 2015/04/06(月) 16:11 ---- ねむねむさん ありがとう もう一度きちんと整理します。       A B C  DE   FG   HI   JK   LM   NO   PQ  1 品名 数量    4月1日 4月2日 4月3日 4月4日 4月5日 4月6日 4月7日 2 a 50 a 50 3 b 80 b 80 4 5 18 4月8日 4月9日 4月10日 4月11日 4月12日 4月13日 4月14日 一週目: 2行目から16行目までの15行 二週目:20行目から33行目までの15行 三週目:36行目から49行目までの15行 四週目:52行目から65行目までの15行 五週目:68行目から81行目までの15行  になります。 (マコ) 2015/04/06(月) 17:02 ---- se_9さんありがとう コードを貼り付けてみましたがダメでした。  (マコ) 2015/04/06(月) 17:11 ---- D2セル:=IF(AND(CELL("address")=CELL("address",$A2),TODAY()=D$1,$A2<>""),$A2,IF(D2=0,"",D2)) E2セル:=IF(AND(CELL("address")=CELL("address",$B2),TODAY()=D$1,$B2<>""),$B2,IF(E2=0,"",E2)) D20セル:=IF(AND(CELL("address")=CELL("address",$A2),TODAY()=D$19,$A2<>""),$A2,IF(D20=0,"",D20)) E20セル:=IF(AND(CELL("address")=CELL("address",$B2),TODAY()=D$19,$B2<>""),$B2,IF(E20=0,"",E20)) D36セル:=IF(AND(CELL("address")=CELL("address",$A2),TODAY()=D$35,$A2<>""),$A2,IF(D36=0,"",D36)) E36セル:=IF(AND(CELL("address")=CELL("address",$B2),TODAY()=D$35,$B2<>""),$B2,IF(E36=0,"",E36)) D52セル:=IF(AND(CELL("address")=CELL("address",$A2),TODAY()=D$51,$A2<>""),$A2,IF(D52=0,"",D52)) E52セル:=IF(AND(CELL("address")=CELL("address",$B2),TODAY()=D$51,$B2<>""),$B2,IF(E52=0,"",E52)) D68セル:=IF(AND(CELL("address")=CELL("address",$A2),TODAY()=D$67,$A2<>""),$A2,IF(D67=0,"",D67)) E68セル:=IF(AND(CELL("address")=CELL("address",$B2),TODAY()=D$67,$B2<>""),$B2,IF(E67=0,"",E67)) と入力してそれぞれ右と下へコピーしてくれ。 (ねむねむ) 2015/04/06(月) 17:23 ---- 何がだめだったのかわかりませんが Case 1 Case 19 となっているところは実際日付が入っている行を指定して Case 1 → 一週目の行番号 Case 19 → 二週目の行番号 Range("A2:B15").Value となっているところも実際の範囲 Range("A2:B16").Value などと変更してみてください。ちなみにマクロは実行しないとデータは貼り付けられません。 (se_9) 2015/04/06(月) 17:30 ---- ねむねむさん 遅くなってごめんなさい D2セル:=IF(AND(CELL("address")=CELL("address",$A2),TODAY()=D$1,$A2<>""),$A2,IF(D2=0,"",D2)) E2セル:=IF(AND(CELL("address")=CELL("address",$B2),TODAY()=D$1,$B2<>""),$B2,IF(E2=0,"",E2)) を入力しました。 A2にAA B2に50と入力したところ、D2:Q2にAA 50 AA 50 AA 50 AA 50 AA 50 AA 50 AA 50 と表示されてしまいます。 (当日だけを表示させる。 過去は残しますが)   また、N2から下にコピーすると FALSE となります。 そこで、N2にりんごと入力すれば、 りんごと表示されますが、A3にミカンと入力すると、正しく表示されますがA2がFALSEとなってしまうのです。 よろしくお願いします (マコ) 2015/04/06(月) 23:20 ---- se_9さん 実行してみましたが、オブジェクト変数またはWithブロック変数が設定されていません。と出ます。 A列 B列は16までなのですが。 (マコ) 2015/04/07(火) 08:37 ---- こちらで試すとA2セルにリンゴ、B2セルに50でP2セル、Q2セル(今日が7日なので)だけに表示、A3セルにミカン、B3セルに60で P3セル、Q3セルに表示されている。 実際の表のレイアウト、および入力した式に間違いはないだろうか? 式が =IF(AND(条件1,条件2),真の場合,IF(条件3,真の場合,偽の場合)) という構成なのでそもそも「FALSE」が表示されるのがおかしいのだが。 (A2セル、B2セルに「FALSE」と入力されていない限り) (ねむねむ) 2015/04/07(火) 09:24 ---- ねむねむさん ありがとうございます。 何とか出来ました。  どこが間違ってたか分かりませんができました。 本当にありがとうございました。 (マコ) 2015/04/07(火) 10:31 ---- (se_9)さん 2015/04/06(月) 16:11に書いていただいたコードを再検証しましたところ完璧でした。 私が間違っていました。 マクロの実行を違ったマクロを実行していたようです。  ありがとうございました。 (マコ) 2015/05/01(金) 11:19