- ベストアンサー
エクセルの自動入力について
エクセル2007を利用してリストを作る際、リストが三つ以上のフィールドから成っていて、たとえば、Cのフィールドに入力すると、自動的にAのフィールドに連続データ(1,2,3,4,5のような連続する番号)、Bのフィールドに入力した日付が表れるようなことはできないでしょうか。 よろしくおねがいします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
ひょっとしてA1から始められていませんか? もちろん A2の場合は= A1 + 1 としますから、 A1だけは =if( C1 = "", "", A1 = 1 ) にしなければ成りません。A0のセルはありませんので。
その他の回答 (4)
- MackyNo1
- ベストアンサー率53% (1521/2850)
入力シートが請求書など、入力した日の日付をそのまま印刷したいような場合にはTODAY関数が使用できますが、翌日になると自動的にその日付に変更されますので、データベースとして使用することはできません(数式を利用する場合は、形式を選択して貼り付けで「数式」から「値」に変更する必要があります)。 このようなケースではイベントマクロを利用することになりますが、データの修正などで自動的に日付が変更されることや、「元に戻す」操作ができないなどのデメリットもありますので注意が必要です。 参考までに、3列目のデータが変更されたとき、そのセルの左側(B列)のセルに日付を、さらに2つ左のセルにそのセルの1つ上のセル(一番上のセルには開始番号「1」を入力しておく)に1加えた値を入力するマクロを提示すると以下のようになります。 そのシートのシート名部分を右クリックして「コードの表示」で以下の内容をコピーペーストして、C列にデータを入力してみてください。 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 3 Then Target.Offset(0, -1).Value = Date Target.Offset(0, -2).Value = Target.Offset(-1, -2).Value + 1 End If End Sub
- TinyPine
- ベストアンサー率30% (719/2386)
一つ忘れていました bは書式で日付指定しておいて下さい
- TinyPine
- ベストアンサー率30% (719/2386)
B2 は =if( C1="", "", TODAY() ) A2 は =if( C1="", "", A1+1 ) として置いて、BとCのセルを下に必要な分だけコピーして置く では駄目でしょうか。 そうで無いとマクロ(VBA)を使う事に成ります。
お礼
ありがとうございました! ただ、B列は上手くいきましたが、A列がうまくいきません。 うまくコピーできないようです。
- Cupper-2
- ベストアンサー率29% (1342/4565)
可能ですが、 >入力した日付が表れるような~ と言うことですので、マクロを使わないと無理です。 #マクロを示してもらっても、それを理解できなければ解決ではないと思うんですけど…まあ良いか。
お礼
ありがとうございます。 理解できるかわかりませんが、教えていただけないでしょうか。
お礼
できました! if関数、勉強します。 ありがとうございました。