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

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

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

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

Q&A

解決済

1回答

1385閲覧

関連するデータを1行に抽出したい。

koromo_t

総合スコア60

Google Apps Script

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

0グッド

0クリップ

投稿2018/05/03 01:24

編集2018/05/03 21:52

スプレッドシートにて読書リストを作っています。
全力を尽くしましたが、力尽きましたので、
みなさまのお知恵をお借りできればと思い、質問します。

とりあえず、経緯、現状など説明します。

やったこと

当方、読書の記録として、本の「読み始め」と「読了」のタイミングで、
Twitterへツイートするようにしています。
※読み始め→「○○を読んでいる本に追加」、読了→「○○を読んだ本に追加」

そこで、IFTTTを使って、

  • 「自分のTwitterアカウントID」
  • 「を読んでいる本に追加」
  • 「を読んだ本に追加」
  • 「bookmeter.com」

これらのキーワードをキーとして、
該当するツイートをスプレッドシートへ取得するようにしました。

そして、なんとかかんとか、
「本のタイトル」と「著者名」のリストを自動的に作ることはできまして、
あとは、「読み始めの日時」と、「読了の日時」を自動で書き込むスクリプトが書けたら、
期待通りの読書リストが出来るのですが、力尽きました。

--

  • 「本Aのタイトル」
  • 「(本Aの)著者」
  • 「”本Aを読んでいる本に追加”のツイート日時」
  • 「”本Aを読んだ本に追加”のツイート日時」

これらを1行に抽出することが必要だと考えますが、
もしかしたら、それこそがネックであり、
越えられない壁なのかもしれないと、薄々思うのですが、
そうであったとしても、ここに至るまでにかなりの学習をすることができたので、
それはそれでよしとする覚悟もあるのですが、
もし、なにかよい方法があれば、お知恵を貸していただけると幸いです。

とりあえず、書いたスクリプトを書いておきます。

javaScript

1// 日時の取得 2function addDate() { 3 var spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); 4 var sheet = spreadsheet.getSheetByName('生ログ'); 5 var lastRow = sheet.getLastRow(); 6 sheet.getRange(lastRow, 1).setValue(new Date()); 7} 8 9function seikei() { 10 var spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); 11 var sheet_nama = spreadsheet.getSheetByName('生ログ'); 12 var sheet = spreadsheet.getSheetByName('読書リスト'); 13 var lastRow_nama = sheet_nama.getLastRow(); 14 // タイトルと著者部分 15 var reg3 = "【(.*?)】"; 16 var title_hissya_nama = sheet_nama.getRange(lastRow_nama,3).getValue().match(reg3)[1]; 17 Logger.log(title_hissya_nama); 18 // タイトルの抽出 19 var reg = "^(.*?)/"; 20 var title_nama = title_hissya_nama.match(reg)[1]; 21 Logger.log(title_nama); 22 var lastRow = sheet.getLastRow(); 23 var title = sheet.getRange(lastRow+1,2); 24 if(title_nama != null ){ 25 title.setValue(title_nama); 26 } 27 else{ 28 title.setValue(title_hissya_nama); 29 } 30 // 著者の抽出 31 var reg2 = "/(.*?)$"; 32 var hissya_nama = title_hissya_nama.match(reg2)[1]; 33 Logger.log(hissya_nama); 34 var hissya = sheet.getRange(lastRow+1,3); 35 hissya.setValue(hissya_nama); 36 if(title_nama != null ){ 37 } 38}

そしてこれは、主筋から離れる話ではあるのですが、
IFTTTを使った収集では新規のツイートからしかリストを作れませんよね。
これがもっと、過去のツイートについても、
リスト化できる仕組みがあればいいなぁとは思うのですが、
まぁ、それがやりたいのであれば、さすがに手打ちということになるでしょうか。

追記(2018/05/04 6:49)

答えは出ていませんが、本のタイトルと著者の抽出まで出来た現状でもだいぶ捗るので、
あとの読み始めと読了の日時は、IFTTTで得たデータの時間をコピペしようと思いました。
ありがとうございました。

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

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

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

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

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

guest

回答1

0

自己解決

追記(2018/05/04 6:49)

答えは出ていませんが、本のタイトルと著者の抽出まで出来た現状でもだいぶ捗るので、
あとの読み始めと読了の日時は、IFTTTで得たデータの時間をコピペしようと思いました。
ありがとうございました。

投稿2018/05/03 21:52

koromo_t

総合スコア60

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問