こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

Googleスプレッドシートでの出欠管理

毎週行う行事の出欠管理をGooglスプレッドシートで行いたいのですが
シート1に出欠の◎(チェック)をつけ、シート2に◎を付けた人のリストを出すという感じにしたいです
=FILTERを使ってシート2に◎をつけた人のリストを出す事は出来たのですが
毎週の事でシート1の出欠欄の列を削除し、また後ろに次の週のを足してってするとシート2にリスト出力したい=FILTERの部分でエラーが出ます
削除した列の部分が#REFとなってしまうのですが
(=FILTER('シート1'!A1:A20,'シート1'!B1:B20="◎")が列を削除すると=FILTER('シート1'!A1:A20,#REF!="◎")になってしまいます)
列を消して後ろに継ぎ足すという方法で、◎をつけた人のリストを出す事はできないでしょうか?

投稿日時 - 2018-01-19 01:50:25

QNo.9419862

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(5)

ANo.5

普通に参照すると列を削除した時に 参照元がなくなるので 参照
エラーを起こします。 INDIRECTを使うくらいかなと思います。

=FILTER('シート1'!A1:A20,INDIRECT("'シート1'!B1:B20")="◎")

「◎」でなければ IMPORTRANGEと QUERY関数の組み合わせ
でもいいんですが……

投稿日時 - 2018-01-30 23:10:53

ANo.4

>列を消して後ろに継ぎ足すという方法で、◎をつけた人のリストを出す事はできないでしょうか?
「スプレットシートで計算する」という概念を知らずに「人が判断することを自動的に読み取って処理してもらえる」ものと勝手解釈しているようです。
計算の対象であるシート1のA列とB列の何れかを削除した時点でシート2の数式は計算対象が無くなるので数式が壊れてしまいます。
一旦、壊れた数式はロールバック(編集で元へ戻す)以外に修復できませんので代わりの列を継ぎ足しても元には戻せません。
シート2へ抽出したリストを値のみに置き換えて、次週のデータを採取する手法にしないと目的に合わないでしょう。

シート1で1週間分を集計して、シート2の目的セル範囲へ計算結果の値のみをコピー&ペーストで保存する方法が良いと思います。
貼付画像はSheet1で計算した結果(J2:P11)をCopyし、Sheet2の所定位置へPaste values onlyで貼り付けようとしたものです。

投稿日時 - 2018-01-19 09:25:26

あ、ごめん。矛盾。

横軸に「名前」
縦に「予定」

それと、「他のソフト」ってカテゴリが良いと思う。

投稿日時 - 2018-01-19 06:28:13

「消す」という行為が分かりません。
消すので、リファレンスエラーとなると思います。

縦軸に「名前」横軸に53個の「予定」
横軸は、最初固定だけど、横28、縦988が最大。確か横も縦も増やせると思うけど、20人ぐらいで良ければ・・・

んんんー 最後が xxxxx.gs でゴーストスクリプト であることは、確からしい。

これが、インタープリター形式で、変数は登場順、変数名の長さでスクリプトの速度が決まる。

大枠では、予定表を立て、Gmailで送信・・・が可能だったような。全てはヘルプに記載されてると思う。

とにかく

一度設計したら、動的に消す・・・というのは考えづらい。消さなくても良いように設計すべきだと思う。

投稿日時 - 2018-01-19 05:51:39

ANo.1

PEかSEへ相談:デベロッパーへ聞いて下され

投稿日時 - 2018-01-19 02:46:20

あなたにオススメの質問