• ベストアンサー

エクセルの自動入力について

エクセル2007を利用してリストを作る際、リストが三つ以上のフィールドから成っていて、たとえば、Cのフィールドに入力すると、自動的にAのフィールドに連続データ(1,2,3,4,5のような連続する番号)、Bのフィールドに入力した日付が表れるようなことはできないでしょうか。 よろしくおねがいします。

質問者が選んだベストアンサー

  • ベストアンサー
  • TinyPine
  • ベストアンサー率30% (719/2386)
回答No.4

ひょっとしてA1から始められていませんか? もちろん A2の場合は= A1 + 1 としますから、 A1だけは =if( C1 = "", "", A1 = 1 ) にしなければ成りません。A0のセルはありませんので。

dendecoden
質問者

お礼

できました! if関数、勉強します。 ありがとうございました。

その他の回答 (4)

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.5

入力シートが請求書など、入力した日の日付をそのまま印刷したいような場合には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)
回答No.3

一つ忘れていました bは書式で日付指定しておいて下さい

  • TinyPine
  • ベストアンサー率30% (719/2386)
回答No.2

B2 は =if( C1="", "", TODAY() ) A2 は =if( C1="", "", A1+1 ) として置いて、BとCのセルを下に必要な分だけコピーして置く  では駄目でしょうか。 そうで無いとマクロ(VBA)を使う事に成ります。

dendecoden
質問者

お礼

ありがとうございました! ただ、B列は上手くいきましたが、A列がうまくいきません。 うまくコピーできないようです。

  • Cupper-2
  • ベストアンサー率29% (1342/4565)
回答No.1

可能ですが、 >入力した日付が表れるような~ と言うことですので、マクロを使わないと無理です。 #マクロを示してもらっても、それを理解できなければ解決ではないと思うんですけど…まあ良いか。

dendecoden
質問者

お礼

ありがとうございます。 理解できるかわかりませんが、教えていただけないでしょうか。

関連するQ&A

専門家に質問してみよう