※ ChatGPTを利用し、要約された質問です(原文:GoogleDoc.Spreadsheet配列数式)
GoogleドキュメントのスプレッドシートでExcelの配列数式を実現する方法
このQ&Aのポイント
Googleドキュメントのスプレッドシートにおいて、Excelで使用されている配列数式を実現する方法について教えてください。
数式の適用につまずいている問題があり、参照先の値に特定の条件を満たす場合に値を加算するという処理を行いたいです。
アカウントを作成しなくても解決できる方法がある場合には、それを教えていただきたいです。
GoogleDoc.Spreadsheet配列数式
お世話になります。
GoogleドキュメントのスプレッドシートにMS Excelシートを移植しようとしているのですが
数式の適用に躓いています。
Excel上では
{=SUM(IF((G2:G62<4)*(G2:G62>0),30+IF(R2:R62,1,0),0))}
{=SUM(IF(G2:G62={1,2,3},30+IF(R2:R62,1,0),0))}
(以上Ctrl+Shift+Enterで確定した配列数式)
=SUMPRODUCT((G2:G62>0)*(G2:G62<4)*30+(G2:G62>0)*(G2:G62<4)*(R2:R62>0)*1)
などのような数式で求まるのですが、(#自らの数式には頓着してません。)
Googleドキュメントのスプレッドシートで同じことを実現する数式が書けなくて困っています。
参照先のG2:G62、R2:R62の値は、数値(非負整数)または空白であることは確実に担保されています。
この条件で、2:62行のそれぞれについて、
G列の値が、1、2、3のいずれか(0より大きく且つ4未満)である場合、
且つ、
R列の値が1以上である(0より大きい)(0や空白ではない)場合は、
31を
それ以外の場合は
30を
(G列の値が、1、2、3のうちのいずれでもない場合は無視(0))
それぞれ加算した合計を求めたい。
以上が「やりたいこと」です。
暫定的に作業セルを設けて計算させているのですが、
実用上、作業セルの存在が編集効率を損ねている実感がある為、
ひとつの数式に纏めたいと考えています(他に理由はありません)。
ここでお願いしていることは具体的な数式のご教示なのですが、
代わりに、例えば、
「GoogleドキュメントのスプレッドシートでMS Excelの配列(CSE)数式や配列定数を実現する方法」
「Googleドキュメントのヘルプを補う解説」
などの日本語ドキュメントをご紹介頂くのも求める回答としては有難いです。
尚、Googleドキュメントを利用するのに必要なアカウントを既にお持ちの方にのみお願いするもので、
新たなID作成を求めるようなものでは決してありませんので、誤解なきよう。
以上、質問に不備不足等ございましたらご指摘ください。
ご面倒お掛けしますがよろしくお願いします。
お礼
ご回答ありがとうございます。 ご教示頂いた数式にて望み通りのことが出来ることを確認しました。 また、MS ExcelにおけるCSE数式に代わる機能としてGoogleDoc.では arrayformula()関数を使うのだということも(ヘルプを引いて)理解できましたので、 今後大いに役立てていけそうです。 今後ともよろしくお願いします。 本件は以上をもって解決とさせていただきます。