質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

Q&A

解決済

1回答

2812閲覧

GAS 関数への$のつけ方

yuyuyu56

総合スコア6

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

0グッド

0クリップ

投稿2021/01/28 10:12

前提・実現したいこと

GASで自動入力させたエクセル関数に$を付けたい
例:=VLOOKUP($A$2,'ホーム'!$A$1:$S$202,2,false)

■■な機能を実装中に以下のエラーメッセージが発生しました。

発生している問題・エラーメッセージ

調べたのですが、知恵不足で申し訳ありません。
書き方を教えてください…
現在:=VLOOKUP(A2,'ホーム'!A1:S202,2,false)

該当のソースコード

var myRange = sht.getRange(i, 1) var fmlM ='=VLOOKUP(RC[-12],\'ホーム\'!R[-1]C[-12]:R[200]C[6],2,false)';

試したこと

var fmlM ='=VLOOKUP(RC[-12],'$ホーム'!R[-1]C[-12]:R[200]C[6],2,false)';

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

R1C1形式で絶対参照するときは、[]を付けずに直接数値(1オリジン)を書きます。
$A$1ならR1C1$A$2ならR2C1です。

投稿2021/01/28 14:44

編集2021/01/28 14:44
Daregada

総合スコア11990

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yuyuyu56

2021/01/28 23:40

for で行を回して記入するようにしたいのですが、 R1C1では出来ないと言うことでしょうか? また、A1形式での書くことで改善されるのでしょうか?
Daregada

2021/01/29 01:30

絶対参照をしたいんですよね? つまり、どのセルの数式からでもA2やA1を参照したいのですよね? $A$1の代わりにR1C1、$A$2の代わりにR2C1と書けば、どのセルからでも絶対参照でA1やA2を参照できます。Rの後の数字が絶対的な行番号、Cの後の数字が絶対的な列番号です。 > for で行を回して記入するようにしたいのですが、 どうぞ。絶対参照ですから行が変わっても、「R1C1」でA1セル、「R2C1」でA2セルを参照できます。 > R1C1では出来ないと言うことでしょうか? > また、A1形式で書くことで改善されるのでしょうか? R1C1でできるから、その方法を回答したのですが。 以前の回答に書いたように、Excelに$A$1形式で書いてから、オプションでR1C1形式表示に切り替えてみては
yuyuyu56

2021/02/01 11:34

返答が遅くなりすいません。 以前オプションで記載する方法をご教授いただきましたため、その方法で「R1C1」で記載しました。 その結果、forでまわすとCを毎行-1しないと、絶対値を付けた時と同様の処理はされず、 結果として、1回目はA1、2回目はA2…となってしまいます。 この場合、C[]の中に変数を入れることで調整するしかないのでしょうか… 変数を入れることもうまくいかず途方に暮れています…
Daregada

2021/02/01 11:54

話が通じていないので、よく文章を読んでください。 R1C1形式では、「RやCの後に[]を**付けないで**直接数値を記述すると、直接参照になります」。 「R[数値]C[数値]」は、間接参照のときの記述方法です。 直接参照では、「R数値C数値」を使います。 つまり、回答に書いてある「R1C1」や「R2C1」は、「それをそのまま$A$1、$A$2の代わりに数式に書け」という指示です。 「$S$202」の代わりには、「R202C19」を書いてください。
yuyuyu56

2021/02/01 23:56

何度もすいません。 >R[数値]C[数値]」は、間接参照のときの記述方法です こちらが理解できておらず、ご教示頂いた内容を理解できていませんでした。 改めて絶対参照したい箇所の[]をはずして下記のようにかいたところ、結果【#ERROR】となりました。 ダウンロードしたエクセルで試すも、適切な箇所に括弧を付けるようメッセージが表示されます。 ーーーー var myRange = sht.getRange(i, 1) var fmlM ='=VLOOKUP(RC-12,\'ホーム\'!R-1C-12:R200C6,2,false)'; ※R1C-12に書き換えても同様 var fmlN ='=VLOOKUP(RC-13,\'ホーム\'!R-1C-13:R200C5,3,false)'; var fmlO ='=VLOOKUP(RC-14,\'ホーム\'!R-1C-14:R200C4,4,false)'; var fmlP ='=VLOOKUP(RC-15,\'ホーム\'!R-1C-15:R200C3,5,false)'; var fmlQ ='=VLOOKUP(RC-16,\'ホーム\'!R-1C-16:R200C2,6,false)'; var fmlR ='=VLOOKUP(RC-17,\'ホーム\'!R-1C-17:R200C1,7,false)'; var fmlS ='=VLOOKUP(RC-18,\'ホーム\'!R-1C-18:R200C0,8,false)'; var fmlT ='=VLOOKUP(RC-19,\'ホーム\'!R-1C-19:R200C-1,19,false)'; var fmlU ='=VLOOKUP(RC-20,\'ホーム\'!R-1C-20:R200C-2,18,false)';
Daregada

2021/02/02 03:10 編集

いやいや、「-12」ってのは相対参照のときの「相対的な位置関係」を示す値です。 そのままカッコを取るのではなく、参照したいセルの行番号をRの直後に、列番号(Aは1,Bは2と見なして)をCの直後に書くんですよ。 > Rの後の数字が絶対的な行番号、Cの後の数字が絶対的な列番号です。 と最初のコメントに書いたじゃないですか。 つまり、 =VLOOKUP($A$2,'ホーム'!$A$1:$S$202,2,false) ↓ =VLOOKUP(R2C1,'ホーム'!R1C1:R202C19,2,false) になるので、 var fmlM ='=VLOOKUP(R2C1,\'ホーム\'!R1C1:R202C19,2,false)'; と書く必要があるということです。 > つまり、回答に書いてある「R1C1」や「R2C1」は、「それをそのまま$A$1、$A$2の代わりに数式に書け」という指示です。 > 「$S$202」の代わりには、「R202C19」を書いてください。 という説明の意味がわかりましたでしょうか。
Daregada

2021/02/02 03:08

残りの変数fmlN~fmlUも、VLOOKUPの第1引数で指定する値は「R2C1」、第2引数で指定する値は「'ホーム'!R1C1:R202C19」で、すべて同じになります。 絶対参照を使うと、「その数式をどこのセルに書いたか」に関係なく、「常に同じセル(やセル範囲)」を指定できるからです。
yuyuyu56

2021/02/02 13:39

なるほど!!!!やっとできました、初めてちゃんと起動する形ができました!!!! []の使い方を理解できていませんでしたが、よくわかりました!!!本当にうれしいです!!!! 長らくお付き合いいただき本当にありがとうございました とても丁寧にお付き合いいただけたおかげです、感謝してもしきれません
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問