• 締切済み

エクセルで常に一番下の行に値を入れる・・・

エクセルで作成した表の中に、別表からの項目や数値を関数で反映させていくような場合の質問です。 場合によって表中の行数が変わってくる場合に、常に最後の行に決まった値を反映させるには、 どうしたらいいでしょうか(使える関数はあるでしょうか) 例) 売上表作成時、A列に品物を入力していき、品物が何個あっても(A列が何行になっても) 最後の行に『消費税』の項目を自動的に出したい場合 説明がわかりにくいかもしれませんが、よろしくお願いします。

みんなの回答

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.2

横レスですが、、、 > IF関数で表示したり非表示にしたりと設定しようと思っていました。(そこまでは出来るんですけど・・・) > 関数を使って表示するセルの場所を指定するのは、無理ということになりますよね・・・?? この補足の言わんとする意味が理解出来ませんでしたが、、、 入力セルと関数セルは両立させられません。 行数は不定でA列に品名を入力して行き、且つ、どうしても関数で行うならば A列はあくまでも入力するための列とし、印刷範囲から除外させて考えるようにする等、運用上の工夫が必要かと思います。 例えば、A列は印刷範囲外に設定しておき 1)セル B2 に =IF(A2<>"",A2,"") 2)セル B3 に =IF(A3<>"",A3,IF(AND(B2<>"",B2<>"消費税"),"消費税","")) 3)B3 を想定行まで下にコピー これで、A2 に「hoge」と入力すると、 B2 にも「hoge」と表示され、B3 に「消費税」と表示されます。 --- 見れば解る事でも文章で説明するのは大変なものです。 シート上のデータの持ち方や設定している関数などをセル座標と併せて説明された方が、回答者に質問の意図が伝わりやすいかも。

k-simple
質問者

補足

遅くなりましたが、回答ありがとうございました。エクセルの関数を言葉で説明するのって難しいですね。しかも関数の知識があまりないので、ほんとにわかりずらくてすみません。 初めの質問文中の<例>には、「A列に品物を入力していき~ 最後の行に・・・」と記入しましたが、実際は入力シートと印刷シートは分けて作成しています。以下、シート名を「入力」「印刷」として、回答いただいたA列が「入力」シートのA列、回答のB列を「印刷」シートのB列として説明させていただきます。そして2つ、お聞きしたい事があります。 まずひとつめ 現在、「印刷」シートの表のB列2行目のセルは =IF(入力用!A2="","",入力用!A2) とIF関数を設定しています。回答者様の1)に出てくる関数に直し =IF(入力用!A2<>"",入力用!A2,"")としても同じ設定が出来ました。すごく初歩的なことを聞いているかも知れませんが、両者は同じ意味なのですか? また、A2<>""は何を意味するのでしょうか。 そしてふたつめ 同様に「印刷」シートのB列3行目のセルに いただいた回答の2)を設定したところ、「この関数に対して多すぎる員数が入力されています」と エラーメッセージが出ました。これは、何か対処法が推測できますでしょうか。 またもわかりずらい文章になっているかもしれませんが、よろしくお願いいたします。

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

値をセットするセルが、逐次変わるようなタイプの課題は、関数でははやりにくい(苦手)。 前もって、セルに式を埋め込む(設定する)ことになりますす。別列セルにA列のデータの最終行を捉えることはできますがそれどまり。 VBAでやっとそれらしくできそうだが、常時最終行の次ぎに「消費税」という文字が現れるのも、うっとうしくは無いですか。 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column <> 1 Then Exit Sub Application.EnableEvents = False Range("a65536").End(xlUp).Offset(1, 0) = "消費税" Application.EnableEvents = True End Sub また例えばA列データには実際の問題として、最終行の制限があるでしょうし。 データの終わりということが察知できれば、VBAででもスマートにセットできそうだが、それなら前もってそこに文字を入れておけばよい。 エクセルも原データシートと、印刷などのシート(派生データー原データか計算できるもの)は分けるべきところ、 ゴッチャにしたり、印刷帳票を前面に出して、シート化するからややこしくなると思う。 この程度のことでVBAのイベント利用など大げさですよ。 消費税というのは思いつきの例かなと思う。 ーー 使うべき本当のニーズを、洗いざらいもう少し説明してみては。

k-simple
質問者

補足

回答ありがとうございます。 「消費税」というのは、確かに思いつきの例です。 実際は、領収書のようなものを何枚も作成するのですが、1枚ずつ項目数が異なるけれども、最後の一行は決まった項目を挿入したいんです。 しかも本当は、その最後の一行の項目は、いらない場合も稀にあり、 そこはIF関数で表示したり非表示にしたりと設定しようと思っていました。(そこまでは出来るんですけど・・・) VBAがよく分からないので、関数で出来ればなあと思ったんですが、 基本的に関数は、決まったセルに設定するものなんでしょうかね。 そしたら、関数を使って表示するセルの場所を指定するのは、無理ということになりますよね・・・??

関連するQ&A