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

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

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

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

2回答

388閲覧

GAS G列H列の隣り合ったセルの番号が一致したときの処理について

AKIT0

総合スコア1

Google Apps Script

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

1クリップ

投稿2021/06/12 12:51

前提・実現したいこと

【やりたいこと】
G列とH列の番号が一致している場合はO列に「空白」、
一致していなければ「不一致」と表示させたいです。

H列の「44 あああ」のように
一部文字列が入っていても空白にしたいのですがわかりません。

プログラミングは1ヶ月ほど前からやり始めたため、
ググりながらやっていましたが限界がきました、、、、

どなたか助けていただけないでしょうか?

イメージ説明

【Code】

function myFunction() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var sht = ss.getActiveSheet(); var range1 = sht.getRange('A2:O').getValues(); var firstRow = 2; var rowCount = sht.getLastRow(); var dataRange = sht.getRange(firstRow, 1, rowCount, 15); var values = dataRange.getValues(); for(var i = 0; i < values.length; i++) { if(range1[i][6] == range1[i][7]){ range1[i][14] ='' }else { range1[i][14] = '不一致' } } sht.getRange(2, 1, range1.length, range1[0].length).setValues(range1); }

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

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

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

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

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

guest

回答2

0

ベストアンサー

こんな感じでお試しください。
Rangeは小さく取得しています。
追記:部分一致の時も空白となるようにしました。文章を読み飛ばしていたようですみません…。

GoogleAppsScript

1function myFunction() { 2 var ss = SpreadsheetApp.getActiveSpreadsheet(); 3 var sht = ss.getActiveSheet(); 4 5 var firstRow = 2; 6 var rowCount = sht.getLastRow(); 7 var dataRange = sht.getRange(firstRow, 7, rowCount - firstRow + 1, 2);//行番号、列番号、行数、列数 8 var values = dataRange.getValues(); 9 10 var answers = []; 11 for(var i = 0; i < values.length; i++) { 12 var re = new RegExp(String(values[i][0])); 13 if(re.test(String(values[i][1]))){ 14 answers.push([""]); 15 }else { 16 answers.push(["不一致"]); 17 } 18 } 19 20 sht.getRange(2, 15, answers.length, 1).setValues(answers); 21 22}

投稿2021/06/12 13:25

編集2021/06/12 15:44
gas.engine

総合スコア608

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

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

AKIT0

2021/06/12 15:59 編集

回答ありがとうざいました!! new RegExpやtestは初めて知りました! 本当に助かりました!!! ありがとうざいました^^
gas.engine

2021/06/12 15:57

修正いたしました。ありがとうございます。
AKIT0

2021/06/12 16:00

回答ありがとうざいました!! new RegExpやtestは初めて知りました! 本当に助かりました!!! ありがとうざいました^^
guest

0

【やりたいこと】
G列とH列の番号が一致している場合はO列に「空白」
H列の「44 あああ」のように一部文字列が入っていても空白にしたいのですがわかりません。

なので、数字以外を消してから比較すれば良いんじゃないですかね。。

a = String(range1[i][6]).replace(/[^0-9]/g, ''); b = String(range1[i][7]).replace(/[^0-9]/g, ''); for(var i = 0; i < values.length; i++) { if(a == b){ range1[i][14] ='' }else { range1[i][14] = '不一致' } }

投稿2021/06/12 13:41

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

AKIT0

2021/06/12 15:11

回答ありがとうございます。 数字以外を消すのはとても参考になりました。 しかしエラーコードで Cannot read property '6' of undefined とでてしまいます。 なにがいけなかったのでしょうか?><
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問