• ベストアンサー

エクセルの関数で・・・

エクセルで領収書の整理をしています。 同じ日にちが続くときに日にちの入力をせずにしたいのですが、例えば A4が空白の時には上のセル(A3)と同じ日にちを表示する。空白でない場合は何も表示せずに自分で入力する。それを列全体に設定する。 といったようにしたいのですが… 本を見ながらIF関数で言葉通りの式を作ったつもりなのですが、何も入力しない空白の時には”0”が入りました。 関数はほとんど分からないもので、出来ればわかりやすく教えてください。

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

  • ベストアンサー
  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.2

>空白でない場合は何も表示せずに自分で入力する。 B列に何か入力された時、A列に表示ということでしょうか? A3=IF(ISBLANK(B3),"",IF(A2="","日付を入力してください",A2)) これを下方にコピーする。 ※1.A2は日付が必須です。 ※2.入力された場合は式が無効になるので、B列を消去しても日付が残ります。 本当はマクロ使った方がいいんでしょうけどね。

777ke-ko777
質問者

補足

>空白でない場合は何も表示せずに自分で入力する。 これは、A列を日付の列として決めているのですが、 空白でない場合…同じ日付が続かずに例えば翌日の日付を手入力。。。 空白の時には勝手に上段の日付を参照してほしいのです。。B列には項目などの入力しているので、同じ日付が続いた場合には、その行の日付をとばしてB列の項目に入力した時点で1つ上の行の日付を自動入力させたいのですが。。。 なんだか自分でも説明が分からなくなってきてます。。。すみません。 マクロは教わりながらやったことありますが、さっぱりわかりません。 丁寧に教えていただいたのですが、うまくいかないので、手入力で先に進めてみます。 ありがとうございます。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

>関数はほとんど分からないもので この質問を見ると関数の使い方が基本をわきまえてなくて、基本から説明するのは、長くなるし、それを理解してもらえるか心配。もう少し本を読むか、経験を積んでこの問題を考えて見てください。 関数式の利用は 2タイプある (A)あるセルに関数式を入れて結果を出す(単発式)。それがあちこちあるときも含めて。 (B)あるセルに式を入れて、行方向や列方向のセルに、式を複写する (B)が関数の便利なところで、醍醐味である。 ーー (1)関数式を入れても、そのセルにデータを入れると式が壊れます。 壊れるのを覚悟で(B)の方法で式を全行に入れて、変わる日付セルだけ、日付データを入れるという使い方はしません。 (2)データのないセルにだけ、式を手動で入れていくということもしません。手数がかかり、同じ日付を繰り返し入力したほうがましとなるから。 (3)普通のやり方は、A列は日付をいれるべき(質問のケース下は変わった日付)行だけ入れて行く。そして別列へ全行日付が入ったセル列を関数で作る。 (注)A列A2以下に空白セルもある、日付セル列がある場合、B列には全て日付を入れるのは、その関数式はB2セルに=IF(A2<>"",A2,B1) そしてB2セルの式をB3以下に複写する。 なぜなら上と同じ日付のセルを同じ日付けだと歯抜け(空白)にしておくと、関数式でA列のそのセルの値を参照するとき、式が 非常に壊滅的に複雑になって困る。プログラムで使うときも同じ。 以上は先人が経験上エクセルを使って会得したこととおもう。 IF関数がどうのという前に、関数式総論というようなものがあるので それを学んでください。 それを知らないと、質問のようなことになり、それを解決するために 、複雑な関数式の組み合わせや、非常に高等なプログラム技術を使う必要が出てきてしまう。 ーー 勉強が進んで、視野が広がると ・省力化するなら入力規則や ・見てくれが悪いなら同じ値は、条件付書式で白色文字にする などポピュラーな方法がエクセルにあり、それらを勉強してから色々考えてください。それまではそろりそろりと、少しは手間がかかっても、並みのやり方をすべきです。

777ke-ko777
質問者

お礼

ご意見ありがとうございます。

  • TON-KATSU
  • ベストアンサー率32% (27/84)
回答No.1

確かに、空だと0が入ってしまいますね。 では、IF関数を勉強されたのですから、 さらに「"0"だったら""にする」という条件を加えてはどうでしょうか? または、空だと0になるのですから、いっそのこと 「"0"だったら上の行と同じ日付を入力」としてしまいます。 ただ、ですね。 「空白だったら前のセルの日付を入力」とすると、未入力の部分は全て日付が入力されてしまい、見た目が非常に、悪くなってしまうのではないでしょうか?? 【同じ行の別の列(B列など)に何かデータがあり、 かつ自分の列(A列)が空白(または"0")だった場合には上の行と同じ値を入力。】 …というIF関数を組んでみてはいかがでしょう?

777ke-ko777
質問者

お礼

IF関数を勉強…というほどわからないので、式が作れませんでした。 未入力の部分全てに日付は必要なんです…。後に打ち込んだデータを分けて計算しなくてはならなくて…。 言葉的にはとても分かりやすかったのですがうまく出来ずでした。 ありがとうございます。

関連するQ&A

  • エクセル 関数 2008_12_12

    エクセル関数に詳しい方、教えてください。 どのセルに、どうゆう関数を入れればいいか教えていただきたいです。 1、A1に直接入力されていたら、A2を関数式計算させる(入力済み)  A2に関数式を無視して直接入力したら、A1は空白になる。  A2が空白なら、A1も空白。 2、あるセルに数値が無ければ(空白)、その列を非表示にする関数式。 3、これは関数ではないですが、マクロを使用してないのにセキュリテ ィー警告(開いたときに出るやつ)が出てくるので出ないようにした い。*セキュリティーレベルを下げないやり方。 以上、分かる方教えてください。

  • エクセルIF関数について

    エクセルIF関数について A2セルにA1セルが空白なら空白。8:00ならば、8:00。8:00>ならA3セルに(そのままの値を)表示せよ。 という関数を入れたいのですが、どの関数をどのように定義すれば良いのかわかりません。 IF関数かな?と思ったのですが、IF関数で偽のときは、「別のセルに入力せよ」などというような定義って出来るのでしょうか? どなたか教えてください。

  • エクセルのif関数のエラー

    エクセルでif関数を使ってデータ処理をしたのですが、上手くいき ません。何がおかしいのかが分からない状態で困っています。 状況  A B C D E 1 : + = ? 関数式 とセルに入力してあるとします。(A1=:,B1=+,C1==,D1=?) 関数式のセルに以下の様に入力しました。 =IF(ISBRANK(D1)=TRUE,E1="",VLOOKUP(D1,$A$1$B$15,2,FALSE)) 目的はVLOOKUPだけではD1が空白の時にE1にNAMEと表示されるのを 避ける事でした。 そうすうとD1にA列の数字を入力すると、それに対するB列をE1に 表示するようになるのですが、D1が空白の時はB1が表示されて しまってます。  また一旦D1に入力した後、D1をデリートして空白にしてもE1には もとの数値がそのまま表示されたままになってしまいます。 文章で表現している分、かなり分かりにくい説明になってしまって いますが、お詳しい方いましたらアドバイスお願い致します。

  • Excelの関数がうまく使えません。

    Excelで関数がうまく使えません。 「=IF(E2>=2000,200,IF(E2>=1000,100,IF(E2>=500,50," ")))」というのをH列のセルに入力しています。 計算はうまく?いくのですが、偽の場合に空白にしているのに、E列が空白でも200と反映されてしまいます。 ちなみにE列には「=IF(ISNUMBER(D2),(C2*D2)," ")」このような関数を使っております。 H列が空白のときに正しく空白にするにはどうしたらよいのでしょうか? 教えてください。

  • エクセル 空白を消す関数 IF?

    エクセル2002を使っています。 A1のセルに「あい うえお」 A2のセルに「かきく けこ」 A3のセルに「さ しすせそ」…と200行入力してあります。 空白(スペース)を消したいのですが、スペースが入っている位置はまちまちなので、リプレイス関数は使えません。 何とか関数を使って、空白を消す事は出来るのでしょうか? 私が思いついたのはIF関数で、『もしA1のセルに空白があったら空白を消す』と命令できるかも・・・と思ったのですが、式がどのようになるのか分からないし、もっと簡単な、もしくは別の関数があったらぜひ知りたいです。

  • セルの内容を合わせるエクセル関数

    お世話になります。 エクセルの関数にて、下記条件を満たす関数が作れないので 分かる方がいましたら教えてください。 A列には文字列が、B列には空白か1の数字がランダムに(1番上の行は必ず空白セル)入力されています。 これに対して、B列に空白から1が続いているセルまでをひとくくりとして、 右側のセルに表示させたいです。 画像では C2セル=A2 C3セル=IF(B3=1,C2&A3,A3)としてC4セル以降にコピペ D2セル=IF(B2="",C2,"")としてD3セル以降にコピペしていますが、 C列でひとくくりになるセルが下へ行ってしまい、 希望する結果に表示されないです。 関数が組める方がいましたらご伝授頂けますでしょうか。

  • EXCELの関数について教えてください。

    EXCELの関数について教えてください。 A列のセルに「18:00 」or 「18:30」 or「19:00」 or「19:30」と入力するとB列のセルに「8:00」と表示され、「17:30」と入力すると「7:00」と表示される方法を教えてください。 セルの書式の表示形式は「文字列」ではなく「時刻」に設定したいです。 多分IF関数をつかうを使うのではないかと思うのですが、書式が「時刻」のためかうまくいきません。 よろしくお願いします。

  • エクセルの関数について教えてください

    エクセルの関数について教えてください セルA1に「データーの入力規制」のリストを使って入力したら変更しません 次にA3は同じく「データーの入力規則」のリストを使って空白にしておいて変更が有ったら入力します 問題はA2にA3が空白の場合はA1をA3に入力されたらA3が出る 関数を使って表示される方法を教えてください たとえば       A      B             A     B     1  エクセル              1 エクセル    2 エクセル          ⇒   2 ワード    3 (空白)                3 ワード          ちなみに       A2のセルに「=IF(A3="",A1,A3)」と入力したんですが    A3が空白の時A2も空白になってしまいます    A3にワードと入れるとワードが出ます    A3の「データーの入力規制」を解除して行うとうまく行きますが    どうしても「データーの入力規制」の設定のリストを使いたいです     

  • エクセル関数 IF関数で出来ませんかね

    エクセル関数 IF関数で列への書式設定をしているのですが、私が考えていることが出来ません。お力をお貸ししてください。   A列    B列    C列  請求書   領収書  備考欄 1 ○  2 不要         TEL 3 ○ 4 5 不要         TEL A列はユ-ザ-定義で[=1]"○";"不要"としており、問題はC列へのA列での「不要」となった場合にTEL(=A1とし、セルの書式設定[=1]"":"TEL")でコピ-で自動的に表示させられるのですがA列へのデ-タが莫大に多いもので、IF関数で試行錯誤しています。 =IF(A1=1,"","TEL")でコピ-も考えたのですが、未入力(A4)の場合もTELで表示されます。C列をいっぺんに指定してIF関数で出来ないものでしょうか?  

  • エクセル関数

    A列 B列 エクセル初心者です。B列●の右に直前の空白のセルの数を表示する □       関数はありますか。これが2000行あるので困っています。式の意味 □       も教えていただけますか。 ●  2 □ ● 1

専門家に質問してみよう