アプリ版:「スタンプのみでお礼する」機能のリリースについて

シート①のA1に日付、B1に場所、C1に数値
シート②のA1に日付、B1に場所、C1に数値
が入っています。
上記をシート③に一覧で表示したいと思っております。

例えば、
シート③のA1にシート①のA1の日付、シート①のB1の場所、シート①のC1の数値
    のA2にシート②のA1の日付、シート②のB1の場所、シート②のC1の数値
といった形です。

調べた結果、できそうでできず悩んでおります。
indirect関数を使うのでしょうか。

マクロなどを使わず実現できる方法ないでしょうか。

A 回答 (2件)

No1です



>順にシートが増えた分を全て集計シートに自動計算したいです。
関数でシートを跨ぐ計算を一般化するのは難しいと思います。
さらには、不定数のシートの存在確認をするだけでも相当な苦労が必要になると思います。

よしんばできたとしても、無駄な計算が増加するのと、関数式が長くなって文字数制限をオーバーする可能性もあります。
シート数を特定するのに、INDIRECT関数で配列計算をさせる方法を試みてみましたが、あまりうまくいかず、私にはシートの特定さえできませんでした。

無駄な計算をさせるよりは、素直にマクロで処理した方が宜しいように思います。
(マクロなら、問題なく効率的に処理できますので)
    • good
    • 0
この回答へのお礼

たびたびありがとうございます。
頂いた関数を改変して入れてみたのですが、「この関数に対して、多すぎる因数が入力されています。」というエラーが表示されてしまいました。
=IF(MOD(ROW(),2),OFFSET(Sheet1!A$1,INT(ROW()/2),0),OFFSET(Sheet2!A$1,INT(ROW()/2-1),0),OFFSET(Sheet3!A$1,INT(ROW()/2-2),0))
どの部分が異なりますでしょうか。
申し訳ございませんが、よろし宇くお願いいたします。

お礼日時:2020/01/16 12:59

こんにちは



ご提示の様に、単純に交互に参照すれば良いのであれば
Sheet3のA1セルに、
=IF(MOD(ROW(),2),OFFSET(Sheet1!A$1,INT(ROW()/2),0),OFFSET(Sheet2!A$1, INT(ROW()/2-1),0))
の関数式を入力して、必要な範囲にフィルコピーで、基本的なことは可能かと。
奇数行と偶数行で参照するシートを交互に変えているだけです。

「基本的」と書いたのは、ご存知のように関数での参照の場合、参照先が空白セルだったりすると結果が0値となるので、表示が0になったりすること。
このあたりの調整方法はいろいろあるろ思いますが、上式では省いています。
また、Sheet1とSeet2でデータ量に大きく差がある場合は、後半は1行おきにデータが存在する形になるることが、構わないのか何らかの対処が必要なのか・・・

複数シートを合成するにしても、ご質問のように交互に参照する方式と、あるシートを先に参照して次にその次のシートのデータを並べるといった考え方と大きくはふたつの考え方がありそうに思います。
    • good
    • 0
この回答へのお礼

早々にご回答いただきありがとうございます。
頂戴した関数を理解できておらず、申し訳ないのですが、
sheet1~2だけでなく、sheet1以降基本無限にシートからデータを引っ張ることは可能でしょうか。

シート①のA1に日付、B1に場所、C1に数値
シート②のA1に日付、B1に場所、C1に数値
 ↑こちらを①と②だけでなく、順にシートが増えた分を全て集計シートに自動計算したいです。

シート③のA1にシート①のA1の日付、シート①のB1の場所、シート①のC1の数値
    のA2にシート②のA1の日付、シート②のB1の場所、シート②のC1の数値

お礼日時:2020/01/15 18:26

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!