1

Google Docs(excellや他のスプレッドシートプログラムと多くのコマンドを共有する)には、次の機能があります。

  • SUMIF:述語と範囲を取得し、述語に一致する述語内のすべての項目を合計します。
  • SUMPRODUCT:2つの列範囲を取得し、各行で、他の範囲の隣の要素で要素を乗算し、これらすべてを合計します。
+ ----- + ----------------- + ------ + ------------------ +
| 数量| 製品| アイテム| 製品ごとのアイテム|
+ ----- + ----------------- + ------ + ------------------ +
| 4 | fooのボックス| foo | 10 |
| 8 | foo | foo | 1 |
| 2 | バーの箱| バー| 10 |
| 1 | フロアバーパッケージ| セット| 1 |
+ ----- + ----------------- + ------ + ------------------ +

だから私は製品の注文リスト(基本的に在庫)を持っています。各製品には1つ以上のアイテムが含まれています。ほとんどの場合、アイテムの1つのタイプにすぎません。1つのfooと1つのバーを含むfoobarパッケージを除きます。

注文する各アイテムの数を要約したテーブルを生成したいと思います。希望します:

+ ------ + ---------------- +
| アイテム| 純数量|
+ ------ + ---------------- +
| foo | 49(= 4 * 10 + 8 + 1)|
| バー| 29(= 2 * 10 + 1)|
+ ------ + ---------------- +

括弧内のものは出力テーブルの一部ではありません。各番号がどこから来ているかを明確にするためにhteretoだけです。

どうすればそのようなテーブルを生成できますか?If、Sum、Productを使用することで達成できるようです。Ifsを使用して、キーワード「set」に対抗しているアイテムのいずれかに一致する名前がないものをゼロとしてカウントし、結果をSUMPRODUCTINGします。しかし、これを1行で達成する方法がわかりません

私はIfについて、または一般的にスプレッドシートで複雑なことをしていることについてはあまりわかりません

これは1回限りのことなので、データベースを作成してからspeadsheetをエクスポートする作業には行きたくありません。

4

1 に答える 1

2

このブログに触発されて、これはあなたのデータのために働きます:

=arrayformula(sumproduct(
 (($C$2:$C$5="foo")+($C$2:$C$5="set")), $A$2:$A$5, $D$2:$D$5))
于 2012-06-15T01:38:57.160 に答える