プロが教える店舗&オフィスのセキュリティ対策術

エクセルのセルに入れる関数で、次のような式を見つけましたが意味がわかりません。
「=K6:K7-J7」
k6, k7 -> 終了日
J7 -> 開始日
普通に開始日から終了日までの日数を出すのなら、k7-J7でいいと思いますが、何故、k6:K7-J7という書き方をするのでしょうか。

よろしくお願いします。

質問者からの補足コメント

  • 例えばですね
    K6に、10
    K7に、12
    J7に、6
    と値が入ってるとします

    すると、
    =K6:K7-J7

    の値はなんですか?
    その理由も教えてほしいです・・・(*^_^*)

      補足日時:2015/06/10 23:41

A 回答 (4件)

なるほど。

式を入れているセルの位置がわかったので式の動きが把握できました。こちらで試したときは式はK8に入れていたのでエラーになったようです。
この動きを理解するにはまず配列の仕組みを知ることが必要になります。
細かいことは省きますが
=K6:K7-L7
という式はExcelの中では1セルでK6-L7とK7-L7を両方計算していることになります。
数式バーでこの式を全部ドラッグしてF9を押すと
={26;21}
となりますね。これはK6-L7とK7-L7のそれぞれの結果です。普通は配列数式はCtrl+Shift+Enterで確定しますがこの状態で配列で確定すると最初の26だけが反映され結果的にはどちらも同じになります。
ですが今回質問で書かれている式は配列ですが{}では囲まれていません。配列の特性として同行に配列数式があればその行の値が採用されるという仕組みを利用しています。
今回はM6とM7に式を入れていますので結果的には
M6→K6-L7
M7→K7-L7
の式を入れたのと同じ結果を返すことになっているのです。
お分かりになりますでしょうか(^_^;)

配列数式の基礎的な内容については下記リンクを参考にしてください。

“達人”芳坂和行氏に学ぶ、エクセル「配列数式」講座
http://pc.nikkeibp.co.jp/pc21/special/hr/

また、質問の際にはこちらが正しく検証できるように情報はなるべく正しく多めにお願いします。
    • good
    • 0
この回答へのお礼

大変わかりやすいご回答ありがとうございました。しかし、やはり此の式は意味が無いように思います。というのは、実際にはM7の式が縦にコピーしてあります。すると、各セルにおいて、一行前のKのセルの値は何も使用しておらず、同じ行のKとJの値を使ってその差分の日数を算出しているからです。だから、前任者が何故このような式を使ったのかが、今だにわかりません。

お礼日時:2015/06/15 13:28

>=K6:K7-J7


>の値はなんですか?

実際の式を見ていらっしゃるんですから、それはわかりますよね?

№1でも書きましたし、№2の方も書いてますがこれは配列数式ですので式を入れて確定時にCtrl+Shift+Enterを押さないと結果がエラーになりますし、その通りに確定してもK6-J7の結果しか返りません。
この式単独で使う用途はないと思いますので何かの式に組み込まれているのではないかと思ったのですが。
例えば、
>K6に、10
>K7に、12
>J7に、6
で、普通にこの式を入れて配列数式にすると、K7の結果がどうであれK6-J7の4しか返りませんが
もしも
=MAX(K6:K7-J7)
として配列数式にすると、K7-J7の6が返ります。
実際の式を目にしているのは質問者さんしかいませんので、本当に知りたいと思うのでしたら画面を見ていない人にも状況が分かるように説明をお願いします。
    • good
    • 0
この回答へのお礼

ありがとうございました。すみません。

この変な式は、前任者の方が作ったエクセルファイルの中に入っていた式で、J7が開始日付、K7が終了日付
その間の日数を算出する式が、M7に入っていたのです。
日付は、両方とも縦列に1000行ほど入っています。

M7の式は、K6:K7-J7
これが、M7に入っていました。でも、開始日付から終了日付までの日数を求めるのに、K6は何をしているのかがわかりませんでした。

私も良く意味がわからず困ってしまいました。私も実際にしたほうがいいと思い、セルに値を入れて試してみました。

K6->2015/06/15
K7->2015/06/10, J7->2015/05/20

Mのセルに入れる式・・・
M6: =K6:K7-L7 (試しに比較のために入れた式)
M7: =K6:K7-L7

すると、
・M6の場合、26日
・M7の場合、21日となりました。

M6もM7も同じ式なのですが、それを入れる行が違うだけで答えが違うのは何故なのでしょうか?

お礼日時:2015/06/14 21:09

その式をそのまま書いたら、ふつ~に#VALUE!のエラーになりました。



配列数式であれば、以下のリンク先のような書き方をしないとうまくいかないし、そもそも今のままでは全く意味不明です。

http://pc.nikkeibp.co.jp/pc21/special/hr/hr1.shtml
    • good
    • 0

何でしょうね…


配列ですが、これ結局K6-J7の結果しか返さないですよね。
この式はこのまま使われているのですか?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!