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

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

新規登録して質問してみよう
ただいま回答率
85.46%
Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google Apps Script

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

Q&A

1回答

806閲覧

Aシートのセル内容をBシートで検索し、完全一致したらBシートのhit行にAシートのセル内容を記入する

hortanse

総合スコア0

Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google Apps Script

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

0グッド

0クリップ

投稿2020/10/12 19:25

前提・実現したいこと

excelVBAはちょっとだけわかるので自力で何とか出来ていたのですが、
業務でgoogleスプレッドシートを使用することになりGASで初めての言語の違いについていけず苦戦中です。

◆やりたいこと

※シートが二つ(マスター用、記入用)存在

記入用シートの行数を取得し、行数分ループ開始

記入用シートの個人番号(変数=let)、注文番号(変数=let)を取得

個人番号をマスター用シート内で完全一致するセルを検索。

ヒットしたらマスター用シートのヒット行、注文番号セルに注文番号を代入。

終了までループ

https://teratail.com/questions/227807
こちらのベストアンサー様のコードをいじれば出来そうかなと思ってはいるのですが、
失礼を承知の上で具体的なコードを頂ければと思います・・・。

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

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

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

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

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

Daregada

2020/10/12 23:55

マスター用、記入用シートのサンプル(データは架空のものでいい)ぐらい示さないと、どの列に個人番号や注文番号が書いてあって、といったあたりから質問者に作らせることになるので、回答が得られにくくなります。
guest

回答1

0

javascript

1const q297640 = () => { 2 const targetSheetName = "マスター用シート"; 3 const sourceSheetName = "記入用シート"; 4 const keyColA1InTarget = "A"; // マスター用シートで、個人番号が何列か 5 const keyColA1InSource = "A"; // 記入用シートで、個人番号が何列か 6 const valueColA1InTarget = "B"; // マスター用シートで、注文番号が何列か 7 const valueColA1InSource = "B"; // 記入用シートで、注文番号が何列か 8 9 const keyColInTarget = alphaToPos(keyColA1InTarget); 10 const keyColInSource = alphaToPos(keyColA1InSource); 11 const valueColInTarget = alphaToPos(valueColA1InTarget); 12 const valueColInSource = alphaToPos(valueColA1InSource); 13 14 const book = SpreadsheetApp.getActive(); 15 const dictionary = new Map(book.getSheetByName(sourceSheetName).getDataRange().getValues().map(r=> [r[keyColInSource],r[valueColInSource]])); 16 const targetSheet = book.getSheetByName(targetSheetName); 17 const data = targetSheet.getDataRange().getValues().map(r=>r.map((c,i)=> i === valueColInTarget && dictionary.get(r[keyColInTarget]) ? dictionary.get(r[keyColInTarget]) : c)); 18 targetSheetName.getRange(1,1,data.length,data[0].length).setValues(data); 19} 20const alphaToPos = (c) => "ABCDEFGHIJKLMNOPQRSTUVWXYZ".indexOf(c);

投稿2020/11/21 16:20

papinianus

総合スコア12705

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問