きのうは、ある列において偶数行だけの合計を求めたいときの計算式を教えてもらいました。
数式は以下のようになるそうです。
{=SUM(IF(MOD(ROW(A1:A10),2)=0,A1:A10,""))}
(ありがとうございました。)
しかし、そこで出てきた「配列数式」というものが何なのか分かりません。上では{}でくくられた部分だという事はわかるのですが、どうして一番初めと終わりに{}があるのか、たとえば比較として、上において{}がない数式ではどのような計算がされてしまうのでしょうか。
また、{}の位置がSUMの後にあるとき、
=SUM{(IF(MOD(ROW(A1:A10),2)=0,A1:A10,""))}
なんかはどんな計算をしていることになるのでしょうか。
配列数式の計算手順がイメージできないのです。
どなたか教えて下さい。
No.1ベストアンサー
- 回答日時:
こんばんは。
配列数式とは、いくつかの要素を持つ式を一つにまとめ、それらの要素一つ一つについて計算をして結果を出す、という機能です。ご存じかと思いますが、式を入力した後、確定するときにSHIFT+CTRL+ENTERとキーを押下します。
従って、手動で{}を入力しても配列数式としては機能しませんから、例示の式はエラーになります。
>{=SUM(IF(MOD(ROW(A1:A10),2)=0,A1:A10,""))}
は、
if(mod(row(a1),2)=0,a1,"")
if(mod(row(a2),2)=0,a2,"")
if(mod(row(a3),2)=0,a3,"")
if(mod(row(a4),2)=0,a4,"")
if(mod(row(a5),2)=0,a5,"")
if(mod(row(a6),2)=0,a6,"")
if(mod(row(a7),2)=0,a7,"")
if(mod(row(a8),2)=0,a8,"")
if(mod(row(a9),2)=0,a9,"")
if(mod(row(a10),2)=0,a10,"")
という式をまとめて記述したもので、これら全ての式の合計という意味です。
ちなみに、配列数式にせずに=SUM(IF(MOD(ROW(A1:A10),2)=0,A1:A10,""))を入力するとエラーになります。
No.3
- 回答日時:
#2のものです。
再度で済みません。#2の中で言った配列A(1),A(2),・・・は一般には、計算が終われば消えます。ただ行と列を入れ替えるTranspose関数は、配列A(1),A(2),・・・の内容をセルに出せます。こういうタイプもあります。他にもこのタイプは行列関係で存在するが、ご参考までに。
Sumのように加算結果1つが欲しいものと、複数セル値を配列で個々に返さなければならないものとあるわけです。
-------
A1:C3にデータが
人口計数
東京122
大阪83
E1:G3を範囲指定する。カーソルはE1にあるから、
E1に式=TRANSPOSE(A1:C3)といれてshift+CTRLキーを押しながらENTERキーを押す。すると
E1:G3に
0東京大阪
人口128
計数23
となります。本日他の質問で、「行と列を入れ替えるには」の
質問で、「形式を選択して貼り付け」操作の回答しか出ていなかったが、この関数式でも出来ます。
No.2
- 回答日時:
配列数式{・・(if(B1:B10="仕入",C1:C10,""))・}があるとする。
(「・・」の部分の意味は後述。)配列はプログラムではA(1),A(2),A(3),A(4),A(5),
A(6),A(7),A(8),A(9),A(10)と表されますね。
上記配列数式は
IF(B1="仕入",C1,"") --->結果--->A(1)
IF(B1="仕入",C1,"") --->結果--->A(2)
IF(B1="仕入",C1,"") --->結果--->A(3)
・・・・・
IF(B1="仕入",C1,"") --->結果--->A(9)
IF(B1="仕入",C1,"") --->結果--->A(10)
の10式を示すと考える。ただA(1),A(2)・・・は表上では
見えない。そして
「・・(if(」の「・・」の部分にSumがあると配列数式は
Sum(A(1)+A(2)+・・・+A(9)+A(10))の意味になるので、
B1:B10のセルで、Bxセル値が"仕入"なら、Cx列の値を配列A(x)にセットしろとなる。(xは1~10のどれかの値を取る)
そのA(1)~A(10)に対しSumをせよ等とかとなる。
結局10個の式をセルに設定しなくても、一箇所のセルの
配列数式で10個の和が求まる。
http://pc21.nikkeibp.co.jp/pc21/pc_10/hr11.htm
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセル関数についてお教えください 3 2023/07/24 12:33
- Excel(エクセル) エクセル 関数について質問です。 2 2022/10/03 11:14
- Excel(エクセル) If関数に関する質問です。(再掲) 3 2022/10/01 20:51
- Excel(エクセル) VBAで組み合わせ算出やCOUNTIFSの処理を高速化したいです。 4 2022/04/07 02:38
- Excel(エクセル) EXCEL 複数の条件に合致する個数を求めるには? 3 2022/04/19 16:39
- Excel(エクセル) SUMIF関数について 4 2023/06/14 13:13
- Excel(エクセル) エクセルの関数に関しての質問です。 5 2022/10/07 11:17
- Excel(エクセル) A列が指定数値以上になったらD列の計算式を変更 3 2022/07/11 11:03
- Excel(エクセル) エクセルでIF関数中にIFERROR関数を使いたいのですが???? 5 2022/04/08 13:24
- Excel(エクセル) マクロだと数式が表示される 2 2022/09/10 14:48
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
配列数式の解除
-
Excel VBA TREND関数について
-
RPG E仕様書について
-
配列内の内容を全て表示する方法
-
2つ以上の変数を比較して最大数...
-
Excel VBA配列をFunctionに渡す
-
シェルスクリプト中で、ヒアド...
-
順列の作成
-
VBAで近似曲線の係数取得
-
えfor文とか使っちゃう時点で時...
-
【MATLAB】任意の多次元配列か...
-
特定のセル範囲で4文字以上入力...
-
VBのFunctionで、配列を引数...
-
VBA 1次元配列を2次元に追加する
-
配列を任意の数値で埋める方法
-
subの配列引数をoptionalで使う...
-
配列変数の添字が範囲外ですと...
-
for each の現在の配列ポインタ...
-
Dim は何の略ですか?
-
モンテカルロ法を用いた積分計...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
配列数式の解除
-
2つ以上の変数を比較して最大数...
-
for each の現在の配列ポインタ...
-
VBA 1次元配列を2次元に追加する
-
特定のセル範囲で4文字以上入力...
-
配列変数の添字が範囲外ですと...
-
subの配列引数をoptionalで使う...
-
えfor文とか使っちゃう時点で時...
-
ListViewで、非表示列って作れ...
-
Excel-VBAの配列「Public Const...
-
VBAで近似曲線の係数取得
-
VB6 配列を初期化したい
-
VBのFunctionで、配列を引数...
-
エクセルで最小値から0を除く方法
-
Dim は何の略ですか?
-
《エクセル2000》A列・B列の商...
-
配列を任意の数値で埋める方法
-
友愛数を探すプログラム
-
verilogで配列の任意の8bitを取...
-
配列内の内容を全て表示する方法
おすすめ情報