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

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

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

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

Q&A

解決済

1回答

362閲覧

複数の入力規則を連携させる方法

SNOOPY72

総合スコア9

Google Apps Script

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

0グッド

0クリップ

投稿2018/06/27 03:15

前提・実現したいこと

メール自動生成ツールが作成できないかと四苦八苦している初心者です。
まず社内のデータベースから対象案件を抽出するため、データの入力規則を
連携できないか悩んでおります。

Unique ID    得意先   請求先
1000001234 ねずみやさん あいうえお商会
1000047852 ねこ会社      かきくけこスーパー
1000333569 とら商店      さしすせそ会社
1000852471 ぞう株式会社 たちつてと商社
1000000010 フェレット有限会社 なにぬねのデパート
1000000045 ぞう株式会社 はひふへほ有限会社
1000000035 とら商店 まみむめも居酒屋
1000000780 ねこ会社 なにぬねのデパート
1008000015 ぞう株式会社 さしすせそ会社
1000045678 ねずみやさん かきくけこスーパー
1000088841 ねこ会社 はひふへほ有限会社
1000006666 ねずみやさん たちつてと商社
1000099963 ねこ会社   あいうえお商会

元データは上記のようなリストです。
実際は10000件ほどのデータで、得意先、請求先は追加・変更が頻繁にあります。

上記のようなデータを社内システムからGoogleスプレッドシートの「元データ」シートに落としてきて、
「メール作成」シートのA2セルに請求先で入力規則を設定し、
「あいうえお商会」を選択すると、
「メール作成」シートB2セルの入力規則のリストには「ねずみやさん」「ねこ会社」だけしか
でてこないようにしたいです。

https://xn--t8j3bz04sl3w.xyz/google-apps-script/filter/3874/2/
こちらを参考にしましたが、「HiddenValues」をどのように設定すべきかわからず、悩んでおります。

https://dendensouken.net/googlespreadsheet01-6cdec44a912d
こちらも確認しましたが、表を縦横入れ替えても実現できません…。

よろしくお願いいたします。
失礼いたします。

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

エラーメッセージ

該当のソースコード

ソースコード

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

papinianus

2018/06/27 08:27

HiddenValueをいれたところで、入力規則に反映できないので意味がないでしょう。それよりも、表を縦横かえてもできません、を具体的にどうやったらどうできないか説明いただけませんか?
SNOOPY72
guest

回答1

0

ベストアンサー

免責:ちょっともうメンドくさすぎるのでサポートなしでお願いします。同意できないなら他の回答をまってください。


まずは、「規則」シートを作ってください。
で、下記を実行すると、規則シートが参考サイトっぽくなります。
なので、それを使ってがんばって入力規則を作ってください。

頻繁にかわるとのことなんですが、都度myfunctionと入力規則の再設定をやればなんとかなると思います(入力規則を毎回更新しないといけないかは正直分かんないです)。
プログラムに取り組む気があるなら、ヒントとして、myfunctionを編集時トリガとかでやればコピペしたタイミングで規則シートを自動更新することはさほど難しくはないと思います(あくまで「さほど」です)。

javascript

1function myFunction() { 2 var sh = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("元データ"); 3 var ru = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("規則"); 4 ru.clear(); 5 var arr = sh.getRange(2,2,sh.getLastRow()-1, 2).getValues(); 6 var keys = arr.map(function(element, index, array) { return element[1];}).filter(function (element, index, array) { return array.indexOf(element) === index;}); 7 var keyval = keys.map(function(x, i, a) { return [x].concat(arr.filter(function(element, index, array) { return element[1] == x}).map(function(element, index, array) { return element[0];}));}); 8 for(var i = 0; i < keyval.length; i ++) { 9 ru.getRange(i + 1, 1, 1, keyval[i].length).setValues([keyval[i]]); 10 } 11}

投稿2018/06/27 09:25

papinianus

総合スコア12705

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問