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

解決済みの質問

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"と出ますが、データが無ければただ空白にしたいです。

以上、恐れ入りますが解決でる方法があれば、ご連絡いただきたく何卒よろしくお願いいたします。

めぐみ

投稿日時 - 2018-02-17 11:33:16

QNo.9429921

困ってます

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

自分にしか役に立たない質問の仕方をする人に限ってどうして こう
しつこいんでしょう……

今までの数式を全部消して 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")

後は他の方にお任せします。

投稿日時 - 2018-02-18 08:57:05

補足

Chiquilinさま

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

めぐみ

投稿日時 - 2018-02-18 12:14:20

お礼

Chiquilinさま

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

めぐみ

投稿日時 - 2018-02-18 11:45:19

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

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

回答(2)

ANo.2

おぉー、此は、此は、
ご愛顧、有難うございます。

所で、
言い忘れて、ましたが、

第三者に、開示する時は
私に、教わった旨
示してくださいね、

と、言うのも
過去、
私が、開発した
此、以外を

理解せず、乱用し
使用している、シーンに
巡り会いましてね

改修するのに
えらく、苦労を
要しました、

以来、
クレジットの、重要性に
留意するように、なりました。

お金も、求めませんし、
使用も、自由ですし、
変更も、構いません、

しかし、
言及は、欠かさないように
指示して、くださいね。


所で、
問題点と、しては
A0002シートの、目次行が
表示される点ですか?

其れ以外は、設計通りですよ?

此は、参照先を
例えば
$C:$Cから、$C$2:$C:$1000000
に、でもすれば
如何でしょう?


●解決したい問題1です
当時は
[A0002]シートに、情報が
20行以上あることが、前提で
作成していませんよ、

表の、行数を
其れだけ、設けたからです。

其れだけです。


●解決したい問題2です
式中、NoDataを
削除し
"NoData"を、""に
してください。

投稿日時 - 2018-02-18 09:59:58

補足

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さまにご不快な思いをさせてしまい大変申し訳ありませんでした。
また貴重なお時間を私の説明不足により無駄にさせてしまいすみませんでした。

投稿日時 - 2018-02-18 12:08:47

お礼

Noubleさま

第三者に開示する際に、Noubleさまから教わったことを示さずに大変申し訳ありませんでした。
せっかくのNoubleさまの善意の行いに対して、不快な思いをさせてしまったことを深く反省しております。
以後こういったことが無いように気を付けます。
本当に申し訳ありませんでした。

取り急ぎ、お詫びをすぐに書かなければと思い投稿させていただきました。
また、不快な思いをされたにも関わらずアドバイスを頂きましてありがとうございます。
まずはNoubleさまの私への質問に対する善意に対しての不義理な行いへのお詫びをと思い投稿をさせて頂きました。
まだ、アドバイス頂いた式についてはまだ試していませんが、試したらまたお礼のご連絡させていただこうと思います。
この度は、私の行い本当に申し訳ありませんでした。

めぐみ

投稿日時 - 2018-02-18 11:16:20

あなたにオススメの質問