自由気ままに

銀嶺

書いてみる~♫

たまにはExcelのお勉強でもね^^;

勉強

リアルで講師をしている銀です  彡O┓ペコリ

下らない事ばかり書いてるので、たまには講師らしい事でも日記に書こうかと・・・。

Excelというソフトは、表計算をしたり、グラフを作ったり、ピボットでクロス集計をしたり、更にはVBAでプログラムを組んだり、色々な用途で使える便利なソフトですが、とりわけ必須と言えるのが関数というもので、使い方を覚えると便利な物でもあります。

「関数」と言って一番先にピーンと来るのは多分「SUM」関数かと思われます
数値を集計してくれる、まあ誰でも知っているメジャーな関数です。

例えば、セルA1に「個数」と入力し、セルA2~A10まで適当に数値を入れておき、その集計をセルB1に求める場合・・・

一般的な方法としては『SUM(A2:A10)』というようなセル範囲を指定して答えを返しますが、これではセル範囲が増えた場合再度範囲を訂正する必要が出てきます。
そこでもっと簡単な方法として『SUM(A:A)』という式を代入する方法があります
要するにA列全てを範囲してしていますので入力行が増えても範囲の編集は行わなくて済みます。

他にもSUM関数を応用した式も組み立てる事が出来ます。
例えば、『=SUM(A2:INDIRECT("A"&COUNTA(A:A)))』 のような式や
『=SUM(OFFSET(A2,0,0,COUNTA(A:A),1))』 のような式など・・・

「INDIRECT」はセルアドレスや文字をそのまま返してくる関数ですので、例えばセルB1に次の式を入れます。
『=INDIRECT("A1")』と入力するとセルA1の文字が返ってきます。
また、セルB2に「A5」と入力してセルB1に『=INDIRECT(B2)』の式を入れるとセルA5に入力されている数値が返ってきます。

このようにINDIRECT関数は文字やセルアドレスを返してきます。
上の式の『=SUM(A2:INDIRECT("A"&COUNTA(A:A)))』を分解すると次のようになります。
セルA2からINDIRECT("A"&COUNTA(A:A)))の行までに入力されている数値をCOUNTA関数で数え、最終行に入力されている数値までをSUM関数で足しています。
INDIRECT("A"&~)の部分はセル”A&行のセル番地”となっていますので、ここでは最終行に入力されている数値”10”のアドレスになります。
”("A"&COUNTA(A:A)”の部分はA列の最終行に入力されている番地、セルA10を示していますので、直訳すると次のようになります。
『=SUM(A2:A列の最終行に入力されているアドレスまで)』
よって、『=SUM(A2:A10)』と、現時点ではセルA10までしか数値が入力されていませんので『=SUM(A2:A10)』となり、セルA11に新に数値を入力すると
『=SUM(A2:A11』と自動的に最終行までの集計をしてくれます。

但し、数値の途中に空白セルがある場合は正確な合計を返してこなくなりますので空白セルにするのではなく「0」を入力するといいでしょう。

以上、 SUM+INDIRECT+COUNTAの3つの関数をネストした式の作り方を、お教えいたしました。

ではまた・・・。
    ICT Solution・・・講師/銀嶺より  <(_ _)>

  • 銀嶺

    銀嶺

    2013/11/01 22:12:54

    <維野眞充さん>
    VBAでも使いますねぇ~
    VBAも使いだすとずっと使っちゃうので、たまには関数も使うといいですよ ^^

  • 維野眞充

    維野眞充

    2013/11/01 20:45:31

    「A:A」のような使い方はVBAの方では良く使いますよ。
    それにしても、
    最近、あまり関数使わなくなりました・・・・ もう少し関数使ってみようかな^^;

  • 銀嶺

    銀嶺

    2013/10/29 23:21:51

    <なつみさん>
    ( ̄▼ ̄|||)  それは無理というものよ >< 

  • なつみ

    なつみ

    2013/10/29 23:12:53

    病み上がりに関数は・・・クラクラ~w

  • 銀嶺

    銀嶺

    2013/10/28 23:40:55

    <kokoさん>
    意外と知られていない式なんですよ(* ̄ノω ̄)コッチョリ

  • koko

    koko

    2013/10/28 23:32:10

    なるほど~^^
    行が増えた時は範囲をなおしていましたです。
    便利ですね^^

  • 銀嶺

    銀嶺

    2013/10/28 21:50:32

    <なごみさん>
    よく使っているんですねぇ~ ^^

    そそ、セル指定をすると増えた時また編集しなきゃならないので
    例えば 『SUM(A:A)』のように(。´・ω・)(・ω・`。)ネー
    IF関数は、殆どの方が苦手なようですが・・・? ( ´艸`)ムププ

  • 銀嶺

    銀嶺

    2013/10/28 21:47:36

    <素敵姐さん>
    「絶対番地」じゃなくて「絶対参照」ね ^^
    「NULL」は空白セルの意味ですよ ^^

  • なごみ

    なごみ

    2013/10/28 16:11:54

    関数、よく使います。
    セルで指定してたので、そっか・・・((φ(-ω-)カキカキ
    前はifも使っていたけど、しばらくやらなかったら忘れてしまいました(-.-)

  • 素敵姐

    素敵姐

    2013/10/28 14:57:04

    みんな習ったような・・・(^^;
    絶対番地とかNULLとか習いましたが・・・よく分かりませんでした・・・(◎_◎;)