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

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

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

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

Q&A

解決済

1回答

834閲覧

Gスプレッドシートで絶対値計算をしたい

shuto_fujiwara

総合スコア26

Google スプレッドシート

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

0グッド

0クリップ

投稿2023/02/27 07:06

編集2023/02/27 07:32

実現したいこと

このようなシート上の表があるとします。

ABA+B
110-100
2-10100
3101020

この表を最終的に

ABABS(A+B)
110-1020
2-101020
3101020

という具合にしたいです。
シンプルに全てに"=ABS()"付ければいいのかもしれないのですが、
大量のデータに対して実行したいため関数でご教示いただきたいです。

試したこと

=ABS(SUM(A1:1)) // 意味無し。SUMだけのときと結果同じ

=SUM(ABS(A1:1)) // エラー 配列の値が見つかりませんでした。

絶対値をとってからSUMを計算すると発想したのですが、これだとエラーが返ってきます。

◎良いやり方ありませんでしょうか?

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

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

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

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

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

guest

回答1

0

ベストアンサー

大量のデータに対して実行したいため関数でご教示いただきたいです。

「関数で」の意味が分かりませんが、C1 に以下のような式を入力すればよいのではないでしょうか。

=ARRAYFORMULA(ABS(A1:A5)+ABS(B1:B5))

追記

メニューバーの「拡張機能」から「Apps Script」を選んで、以下のような function を定義してください。

js

1function absSumRows(range) { 2 const result = []; 3 for (const row of range) { 4 let sum = 0; 5 for (const cell of row) sum += Math.abs(cell); 6 result.push(sum); 7 } 8 return result; 9}

そして、これを ARRAYFORMULA の代わりに使うとよいでしょう。

=absSumRows(A1:ZZ5)

投稿2023/02/27 07:25

編集2023/02/27 08:15
arcxor

総合スコア2857

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

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

shuto_fujiwara

2023/02/27 07:39

回答ありがとうございます! ARRAYFORMULAスゴイですね! これちなみに、C,D,E.....ZZくらいまで列あるのですがカッコの中を無限に増やすしかないですか? =ARRAYFORMULA(ABS(A1:A5)+ABS(B1:B5)+ABS(C1:C5)...+ABS(ZZ1:ZZ5))
arcxor

2023/02/27 08:15

カスタム関数を定義する例を追記しました。
shuto_fujiwara

2023/02/27 08:28

こんな事ができるなんて驚きです! 本当にありがとうございます!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.31%

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

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

質問する

関連した質問