ゴルフのスコア管理におけるGoogleスプレッドシートの問題

このQ&Aのポイント
  • ゴルフのスコアを管理するためのGoogleスプレッドシートで問題が発生しています。
  • 特に、データが不十分な場合に不具合が生じており、解決策が必要です。
  • 具体的には、2つのシート間でデータが連動しない問題や、表示内容がおかしくなる問題が発生しています。
回答を見る
  • ベストアンサー

googleスプレッドシートの2つのシート間の問題

ゴルフのスコアが管理できるグーグルのスプレッドシートを作成しています。 以前に質問させていただいた時にはうまくいっていたのですが、元のデータが十分ないと不具合が出てしまい、どうすればよいか困っています。 具体的には下記のような問題です。 シートは[A0002]と[A0002My]があります。 [A0002]には上から順番にゴルフの実績を書き込んでいきます。 [A0002My]は、[A0002]に記入されたデータをもとに、日付が最新のものを順番に上から20行分表示されるようにB2:L21に式を書いています。 以下のアドレスに問題のあるスプレッドシートを共有しました。 https://docs.google.com/spreadsheets/d/1lDSheilFLCour7o-DT8cb64bcxrkjXqGH_i1HzWjH5M/edit#gid=0 式の一例:[A0002MY]のB2です =IFERROR(OFFSET('A0002'!$A$1,MAX(INDEX(ROW('A0002'!$C:$C)*(1-ISBLANK('A0002'!$C:$C)),0,0))-1,0,1,1),"NoData") 問題は、[A0002]シートに十分なデータがないときに起きます。 例えばA4:K25やA20:K25を削除すると、[A0002My]表示内容がおかしくなってしまいます。 例えば[A0002]シートのA4:K25を削除したときは、[A0002My]シートのB4,C4,D4に日付,ゴルフ場,スコアと出てきます。 これは、データがないと[A0002]シートのA1,A2,A3からデータを取っていてしまっているからだということは分かるのですが、どう対応すればよいかわかりません。 そこで、以下の問題を解決することができないものでしょうか? ●解決したい問題1です 当時は[A0002]シートに情報が20行以上あることが前提で作成されていたと思うのですが、[A0002]シートに情報が20行以上無い場合にもこういった不具合が出ないようにしたいです。 ●解決したい問題2です は[A0002]シートに情報が20行以上無い場合に、[A0002My]シートのデータが無いところに"NoData"と出ますが、データが無ければただ空白にしたいです。 以上、恐れ入りますが解決でる方法があれば、ご連絡いただきたく何卒よろしくお願いいたします。 めぐみ

質問者が選んだベストアンサー

  • ベストアンサー
  • Chiquilin
  • ベストアンサー率30% (94/306)
回答No.1

自分にしか役に立たない質問の仕方をする人に限ってどうして こう しつこいんでしょう…… 今までの数式を全部消して B2に =QUERY({ARRAYFORMULA(ROW('A0002'!A2:K)),'A0002'!A2:K},"select Col2, Col3, Col4, Col5, Col6, Col7, Col8, Col9, Col10, Col11, Col12 where Col2 Is Not Null and Col1 + 19 > " &COUNTA('A0002'!A2:A) &" order by Col2 desc, Col1 desc") 後は他の方にお任せします。

megumi199
質問者

お礼

Chiquilinさま アドバイス頂きましてありがとうございました。 また、ものすごく長い式を書いてくださりありがとうございました。 まず、ご指摘いただいた  ”自分にしか役に立たない質問の仕方” について、大変申し訳ありませんでした。 もう少し、質問した内容が他の皆様にも応用できるようなことを考えていかないといけなことに初めて気付かされました。 こういったことを指摘くださりありがとうございました。 以後、気を付けて質問していきたいと思います。 また、頂いた式については、この投稿次第試させていただこうと思います。 この度は本当にありがとうございました。 めぐみ

megumi199
質問者

補足

Chiquilinさま この度は適切なアドバイスを頂きましてありがとうございました。 1行の式で220のセル対応できました。 また、100パーセント以上に私の質問を理解してくださり、素晴らしい式を教えてくださりました。 今後、Chiquilinさまから教えて頂いたことに注意して行動していきたいと思います。 この度は、技術的な指導だけでなく、OKWAVEでの心構えのようなことまでご指導いただきまして本当にありがとうございました。 めぐみ

その他の回答 (1)

  • Nouble
  • ベストアンサー率18% (330/1783)
回答No.2

おぉー、此は、此は、 ご愛顧、有難うございます。 所で、 言い忘れて、ましたが、 第三者に、開示する時は 私に、教わった旨 示してくださいね、 と、言うのも 過去、 私が、開発した 此、以外を 理解せず、乱用し 使用している、シーンに 巡り会いましてね 改修するのに えらく、苦労を 要しました、 以来、 クレジットの、重要性に 留意するように、なりました。 お金も、求めませんし、 使用も、自由ですし、 変更も、構いません、 しかし、 言及は、欠かさないように 指示して、くださいね。 所で、 問題点と、しては A0002シートの、目次行が 表示される点ですか? 其れ以外は、設計通りですよ? 此は、参照先を 例えば $C:$Cから、$C$2:$C:$1000000 に、でもすれば 如何でしょう? ●解決したい問題1です 当時は [A0002]シートに、情報が 20行以上あることが、前提で 作成していませんよ、 表の、行数を 其れだけ、設けたからです。 其れだけです。 ●解決したい問題2です 式中、NoDataを 削除し "NoData"を、""に してください。

megumi199
質問者

お礼

Noubleさま 第三者に開示する際に、Noubleさまから教わったことを示さずに大変申し訳ありませんでした。 せっかくのNoubleさまの善意の行いに対して、不快な思いをさせてしまったことを深く反省しております。 以後こういったことが無いように気を付けます。 本当に申し訳ありませんでした。 取り急ぎ、お詫びをすぐに書かなければと思い投稿させていただきました。 また、不快な思いをされたにも関わらずアドバイスを頂きましてありがとうございます。 まずはNoubleさまの私への質問に対する善意に対しての不義理な行いへのお詫びをと思い投稿をさせて頂きました。 まだ、アドバイス頂いた式についてはまだ試していませんが、試したらまたお礼のご連絡させていただこうと思います。 この度は、私の行い本当に申し訳ありませんでした。 めぐみ

megumi199
質問者

補足

Noubleさま めぐみです。 アドバイスありがとうございました。 Noubleさまからアドバイス頂いた $C:$Cから、$C$2:$C:$1000000 を $C:$Cから、$C$2:$C:$1000 に変更して、下記の式にして[A0002My]シートのD2に入れてみました。 =IFERROR(OFFSET('A0002'!$A$1,MAX(INDEX(ROW('A0002'!$C$2:$C:$1000)*(1-ISBLANK('A0002'!$C$2:$C:$1000)),0,0))-1,2,1,1),"") 結果なのですがエラーが出てきてしまい、うまく作動しないようでした。 私の知識不足でNoubleさまがアドバイスされたこと以外に当然変更しなければいけないことをしてないことが問題だと思われます。 ただ、この度、Chiquilinさまより合わせてアドバイスを頂きまして、そちらの式を記入したところ2つの問題を解決することができました。 1つのセルに1つの式を記入することで、今回の需要を満たすことができ、1つ1つ220のセルに式を記入するより便利なので、今回はそちらの式を採用させていただくことにしようと思っています。 この度は、Noubleさまにご不快な思いをさせてしまい大変申し訳ありませんでした。 また貴重なお時間を私の説明不足により無駄にさせてしまいすみませんでした。

関連するQ&A

  • GAS(Googleスプレッドシート)について

    お世話になります。 今回は下記の内容について宜しくお願い致します。 シートAの表にシートBのデータを入れ込みたい時の構文が分かりません。 (そもそも理解していないのが問題ではあるのですが。。) また、代入された値(シートAに代入されたシートBの値)を 「選んだシートBの列に上書きしたい」です。 1.シートBはレコードでデータを保持 2.シートBの選んだレコード行のデータをシートAの所定の場所に代入  例)シートBのA@セルのデータはシートAのB2    シートBのB@セルのデータはシートAのH5 など。    シートAは表になっているので、シートBのデータはシートAの所定の    セルに代入。(場所は不変です) 3.シートAに代入された値に変更を加えた場合、シートBの選んだレコード位置   に上書きで代入をしたい。(入れ込みたい) 以上です。 宜しくお願い致します。

  • Googleスプレッドシートフィルター結果の編集

    Googleスプレッドシートにおいて、 Aというシートにフィルターをかけて、Bのシートに結果を出力するように関数を入れました。 =FILTER(A!A6:F300,A!D6:D300="△") という関数をBシートに入力し、"△"を含む行の結果をAシートから引っ張っています。 このBシートに表示されたフィルター結果のセルの文字を編集しようとすると、 「エラー:配列結果は**(編集元のセル番号)のデータを上書きするため、展開されませんでした。」 と出て、上書きできません。 元データを変更させないために、こういったエラーになっているとは思うのですが、 このフィルター結果内で編集を行い、元データにも同期される、ということは可能なのでしょうか。 それとも、そもそもフィルターというのは閲覧するもので、編集するものではないのでしょうか。 ・Googleスプレッドシートのフィルタ結果内で文字の編集は可能なのか ・できないとしたら、普通はどんな代替案を使うのでしょうか すみませんがご存じの方があれば、教えていただけないでしょうか。

  • Googlスプレッドシートのゴルフスコア管理の件で

    恐れ入ります、昨日Googlスプレッドシートの件で質問させていただいているめぐみと申します。 私の質問や回答の仕方で大変ご迷惑をおかけしています。 実際にしたいことをGooglスプレッドシートで作成しました(編集可で共有しました)。 https://docs.google.com/spreadsheets/d/1lDSheilFLCour7o-DT8cb64bcxrkjXqGH_i1HzWjH5M/edit?usp=sharing 知りたいところだけ”赤字”にしました。 以下、(1)と(2)のことを知りたいと考えています。 [A0001]シートA2,B2,C2:K2の部分を自分で入力しています(「ゴルフ場」は[Reference]シートから参照してプルダウンにしています)。 その後にそれ以降の「パー」の部分(L2:T2)とそれ以降を自動で?もしくは何かボタンを押すと自動で計算してほしいと考えています。 「実績」以降は計算式を埋め込んでおけばいいと思うので、実際に知りたいことは、 (1)->B2:K3のセルに自分で入力します。   入力後に何かボタンを押すと   B2とB3が何かをReferenceシートから探して、そのパースコア(9つ×2)をL2:T2とL3:T3に書き込まれるようにしたいです。 (2)新しいデータは、2~3行目に追加していくようにしたいです。  2行目と3行目を選択して「2行を上に挿入」という「新規作成ボタン」が作りたいです。  ※手作業でしたところ既存の2行目と3行目の計算式は、新規に作成された2行目と3行目に引き継がれることは確認できました。 以上です。 昨日はわかりにくい質問をしてしまい、それにも関わらず多くの方に親切にご回答頂きありがとうございました。 また、貴重なお時間を浪費させてしまいまして大変申し訳ありませんでした。 めぐみ

  • グーグルスプレッドシートでシート間でカット&ペース

    いつもお世話になっております、めぐみです。 Sheet0の内容をSheet0のA列に複数記載(A2,A3,A4...)されているSheet名にB2:L2の内容を順番にカット&ペーストする方法があるのか知りたいです。 具体的には Sheet0にはA2からLの複数n行の内容があります。 A列にはコピーするシート名が書かれています。 例えばA2にSheet1と記載されていれば、B2:L2の内容をカットして、Sheet1を探し、Sheet1にすでに記載されているデータの一番下にある情報の次の行にペーストします(B3:L3があれば同じ作業、その後も同じ作業)。 コピーした後、Sheet0の内容はカットしているので消えているという状態にしたいです。 こういう複雑な処理をさせるにはエクセルのマクロのような方法を使うのでしょうか? マクロのようなもので可能であればぜひその方法を教えて頂けないでしょうか。 イメージを添付いたします、ご参照下さいませ。 どうかよろしくお願いいたします。

  • グーグルスプレッドシートの関数についての質問です

    いつも大変お世話になっています、めぐみと申します。 グーグルスプレッドシートを使っています。 恐れ入ります、以下の3つの関数の書き方について、もし知っている方がいましたらアドバイス頂けないでしょうか。 (1)計算結果が0の場合は空白にしたいです A1+A2が0の場合、空白。それ以外は計算結果を表示したい場合、どのように関数を書けばいいでしょうか。 (2)条件付きのアベレージの関数について =AVERAGE(B1:B20) 但し、数字があるところだけを計算して、空白(データが無い)場合や、数字以外の文字等が入っていれば計算しない式はどのように書けばいいでしょうか? ・以下の場合、4.8とでますが、 B1,5 B2,5 B3,6 B4,5 B5,5 B6,4 B7,5 B8,5 B9,4 B10,3 B11,4 B12,3 B13,3 B14,4 B15,4 B16,4 B17,5 B18,6 B19,9 B20,7 ・B7が0の場合や、#N/Aの場合のような下記の例の場合、4.29(四捨五入で表示してます)というように出力したいです。 ※=(C24+C25+C26+C27+C28+C29+C30+C31+C32+C33+C34+C35+C36+C38+C39)/14 B1,5 B2,5 B3,6 B4,5 B5,5 B6,4 B7,0 B8,5 B9,4 B10,3 B11,4 B12,3 B13,3 B14,#N/A B15,4 B16,4 B17,#N/A B18,#N/A B19,#N/A B20,#N/A (3)#N/Aの表示を空白(データが無い)にしたいです 下記の関数結果がエラーが表示(#N/A)されます。 計算が出来なければ空白(データが無い)にしたいです。 =VLOOKUP($C10,Sheet1!$A$1:$J$30,2,FALSE) 以上、恐れ入りますがなにとぞよろしくお願いいたします。

  • スプレッドシートであるシートの指定期間のみの参照

    Googleスプレッドシートで、B列に日付データがあり、その中から例えば8月のデータのみ、別シートに参照(?)したいです。 Googleフォームで勤怠についてのアンケートに答えてもらい、それらがスプレッドシートに蓄積され、そのデータをもとに月別に給与などを自動的に計算したく、このような方法をとっています。。 具体的には、「form」というシートにはこういうデータが並んでいます   A列    B列   C列   D列   E列   F列   G列  授業日   開始   終了   交通費1 交通費2  手段  その他 2016/08/07 10:00:00 12:00:00  150   150    原付き   2016/08/09 10:30:00 12:30:00  150   150    原付き 2016/08/14 10:00:00 12:00:00  150   150    原付き 2016/09/01 10:00:00 12:00:00  200   200    バス 2016/09/08 10:00:00 12:00:00  200   200    バス この中から8月のみのデータを別シートの【8月分】というシートに参照し、9月のみのデータを【9月分】というシートに参照することによって、その月ごとの給与計算を自動化させたいんです。 いま、素人なりにいろいろなものを参考にして【8月分】というシートにデータを引っ張っているのですが、その式を下のように書いており、2016年8月00日以降のデータを参照している状態になっているので9月分のデータもでてきてしまっています。 =query(form!A2:G,"select A,B,C,D,E, where (date '2016-08-00'<A) ") これを使って、上手く2016年の8月00日以降、8月31日までという風に期間を指定したいのですが、うまくできません。 フィルター機能でもできるような気がするのですが、なるべくいまの計算式を利用して期間指定ができるようになりたいです。 まだまだ勉強中の身で苦戦しておりますが、どうかスプレッドシートにお詳しい方、ご教授願います。。

  • GooglApps スプレッドシートの関数について

    GooglApps スプレッドシートの関数について質問があります。 AワークブックのスプレッドシートのA1セルの値を、 BワークブックのスプレッドシートのA行を検索して、 AワークブックのスプレッドシートのA1セルと同一の値の行のB列の値を、 AワークブックのスプレッドシートのB1セルへセットしたいのですが、どのようにすれば良いのでしょうか? ご教示、お願いします。

  • Googleスプレッドシートの自動計算

    Googleのスプレッドシートで自動計算をしたいです。 例えば A列の1行から順番に、100,200,300……と続いていくとすると、 B列の同じ行に1.25倍で自動入力されて、125,250,375……と表示されるようにできるのでしょうか?

  • Excel でシート間の重複データ(Sheet1のA=Sheet2のA かつ Sheet1のB=Sheet2のB)

    Excel2000です。 Sheet1のA列・B列・C列・・・にデータが入っています。 Sheet2のA列・B列・C列・・・にデータが入っています。 Sheet1のA列とSheet2のA列は、似たようなデータが入っています。 Sheet1のB列とSheet2のB列も、同様です。 C列以降のデータは、シート間で全然関係ありません。 Sheet1の行データ(A列・B列)が、Sheet2(A列・B列)にも存在しているかどうか、 を知るには、どうすればよいですか。 C列以降の列のデータは、比較する際に使いません。 つまり、 Sheet1のA = Sheet2のA かつ Sheet1のB = Sheet2のB であるような行を知りたいのですが、 どうすればよいのでしょうか。

  • グーグルスプレッドシートについて

    お世話になります。 最近グーグルスプレッドシートの列の幅が突然倍になっていたのですが、元にもどす方法はありますか? 今のところA B Cと書いてあるところをドラッグして幅を狭くしているのですが、幅がばらばらで見栄えが悪いです。 どなたか列の幅を設定する方法を知っていたら教えてください。宜しくお願いします。

専門家に質問してみよう