web-dev-qa-db-ja.com

Googleスプレッドシート:一種のマップ機能はありますか?

数式を展開するのは好きではありません。最初に、それらを変更する場合、再度コピーする必要があります。これはプログラミングのコピー&ペーストのようなものです。第二に、変更される可能性のある元の範囲と一致させたい。理想的には、私はそれが動作する式と範囲を定義したいので(例えば、sheet1!B4:B)、それに応じて適用されます。そして、もう1行をsheet1に追加すると(無制限の範囲sheet1!B4:Bが増加します)、新しい計算された行が自動的に追加されます。

それらのトリックのいくつかを実行できるものを見つけました:ArrayFormula。オープンエンド範囲を使用して、あるシートから別のシートにデータを簡単にコピーできます。追加などの簡単な操作を実行できるようです。しかし、sumのように、それ自体で範囲を操作するより複雑な操作を実行する方法がわかりません。たとえば、sheet1:B4:Bの合計を計算し、それを次のすべての列に(手動で展開せずに)自動展開するため、最初のセルの右側のセルにはsum(sheet1!C4:C)、cellが含まれますこの右側にはsum(sheet1!D4:D)などが含まれます。これは、単にArrayFormulaを使用できるようには見えませんが、間違っている可能性があります。

(もちろん、sumは単なる例です。他の数式をいくつか書きたいと思います。)

これを行う方法についてのアイデアはありがたいです。

4
v6ak

代替案:

  • ArrayFormula/MMULT関数を使用します
  • カスタム関数を作成します
    • 制限:
      • オンラインモードでGoogleスプレッドシートデスクトップウェブアプリを使用している場合にのみ機能します。
      • 何らかのプログラミングの知識とスキルが必要です(JavaScript/Google Apps Script)
      • 30秒の実行時間制限
  • マクロ/スクリプトを作成します
    • 制限:
      • カスタム関数に似ていますが、実行時間が長くなります
      • カスタムメニュー、ダイアログ、サイドバー、シンプルまたはインストール可能なトリガー、Apps Script Editorから、またはApps Script APIを使用してトリガーする必要があります
  • Android用のアドオンを作成します
    • 制限:
      • 何らかのプログラミングの知識とスキルが必要です(Java/JavaScript/Android Studio/Google Apps Script)
      • Developer Previewにあります
      • Googleスプレッドシートのデスクトップウェブアプリでは機能しません
      • GoogleスプレッドシートiOSアプリでは機能しません
3
Rubén