質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

Q&A

解決済

2回答

12799閲覧

SUMIFS関数内での配列表現について

wefee

総合スコア5

Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

0グッド

0クリップ

投稿2020/09/17 09:29

編集2020/09/17 09:39

前提・実現したいこと

GoogleスプレッドシートのSUMIFS関数の条件内で論理和を使って合計を行いたい。

試したこと

下画像のように入力されているスプレッドシートに対して、
イメージ説明

=ArrayFormula(SUM(SUMIFS(B1:B3,A1:A3,{"あ","い"})))

と入力すると、本来は1+2で3という結果を得たかったのですが1が返ってきました。
また、試しにSUMIFSではなくSUMIFを使ってみました。

=ArrayFormula(SUM(SUMIF(A1:A3,{"あ","い"},B1:B3)))

と入力すると希望通りに3という結果が得られました。
Excel(2016)ではSUMIFだけではなくSUMIFS内でも配列表現を利用して合計ができたのですが、Googleスプレッドシートの仕様ではSUMIFでは配列が使えてもSUMIFSでは使えないのでしょうか。
分かりやすくするために上記の例ではSUMIFSでも単一条件で書いていますが、実際は複数条件がある為にSUMIFではなくSUMIFSを使いたいです。

=SUMIFS(B1:B3,A1:A3,"あ")+SUMIFS(B1:B3,A1:A3,"い")

と記述すれば希望通りの結果が得られますが、実際のシートでは集計対象とする種数が多いためSUMIFS関数を大量に利用することになってしまい、シートが重くなることを懸念しています。

適した記述方法があればご教示よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

kuma_kuma_さんも検証されてますが、Googleスプレッドシートの ArrayFormula は、SUMIFやCOUNTIFだと機能するのに、SUMIFSやCOUNTIFSなどIFS系では動きません。

実際は質問で記載されている以外にも列があるとのことで、
列によっては OR条件もある & 複数の列の条件に合致する 合計値の算出を SUMIFS以外の方法でとなると、
FilterとSUMを組み合わせる方法があります。

Filterでの OR は、 +を使って記述できます。

=SUM(FILTER(B:B,(A:A="あ")+(A:A="い")))

投稿2020/09/18 08:00

sawa

総合スコア3002

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

wefee

2020/09/21 23:34

Filter関数って抽出して表示するだけではなくて集計にも使えたんですね。 直感的に分かりやすそうです。 ありがとうございました。
guest

0

ベストアンサー

確認してみました

Excel

1=SUM(SUMIFS(B1:B3,A1:A3,{"あ","い"})) 2結果 3

Google

1=SUM(SUMIFS(B1:B3,A1:A3,{"あ","い"})) 2結果 1

どうも複数条件指定でもはじめにHitした値で集計するみたいです
この場合"あ"

よって提示されている方法

Google

1=SUM(SUMIFS(B1:B3,A1:A3,"あ") + SUMIFS(B1:B3,A1:A3,"い")) 2結果 3

となりますが

これが一番良いかと

Google

1=SUMPRODUCT((A1:A3={"あ","い"})*B1:B3) 2結果 3

投稿2020/09/17 21:12

kuma_kuma_

総合スコア2506

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

wefee

2020/09/21 23:32 編集

SUMPRODUCTでは配列表現が使えるんですね。 あとは*で他の条件を書けば論理積も表現できそうですね。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問