🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Google スプレッドシート

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

Google Apps Script

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

JavaScript

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

Q&A

解決済

2回答

1524閲覧

【GAS】LINEのテキストデータをスプレッドシートへまとめる

nezumimuzen

総合スコア19

Google スプレッドシート

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

Google Apps Script

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

JavaScript

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

0グッド

0クリップ

投稿2021/01/08 01:22

現在、以下のようなLINEのテキストデータをスプレッドシートにそれぞれ項目を取り出して転記するプログラムが作りたいのですが、どのようなコードを組めばよいのか分かりません。

取り出したい項目は日付、時間、Bの返信の""で囲まれたテキスト内のさらに「」の中のテキストです。

不規則なデータではないと思っているためプログラムで書き出せるものと思っておりますが、当方プログラミングは学び始めであるため思い違いでしたら申し訳ございません。

スプレッドシート転記の流れ?

1、テキストの上から日付を探し、見つけた日付データをA列に転記
2、1で見つけた日付からさらに次の日付までのテキストデータを取得
3、2のテキストの中から""で囲まれたテキストを取得し、その際同じ行の先頭に記載されている時間データをB列に転記
4、3で取得したテキストデータ内の「」で囲まれたテキストをC列に転記
5、上を繰り返す

上記のような流れでプログラムを作ろうと思っていたのですが、これだと日付内に複数データが存在するときに希望の動作がしないと気づきましたが、どのようにプログラムを組めば良いか、また、どんなコードを使えば作れるかが分かりません。
ご教授いただきたく存じます。
LINEテキストデータ

text

12020/07/04(土) 218:57 A aaa 318:57 B "「WWWW」 4wwwww 5wwww" 619:28 A bbb 719:28 B "「XXXX」 8xxxxx 9xxxxxx" 10 112020/07/10(金) 1218:11 A あ 1319:13 A ccc 1419:13 B "「YYYY」 15yyyy 16yyy" 17 182020/07/11(土) 1918:32 A い 2018:32 B 〇〇 2118:33 A ddd 2218:33 B "「ZZZZ」 23zz 24zzzz"

書き出したい表

日付時間内容
2020/07/0418:57WWWW
2020/07/0419:28XXXX
2020/07/1019:13YYYY
2020/07/1118:33ZZZZ

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

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

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

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

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

guest

回答2

0

ご質問されている内容を実現するには正規表現という技術を使った実装が必要になります。
("正規表現 やり方"や"正規表現 javascript"などで検索するといいかもしれないです。)
まずこちらを勉強されるといいと思います。
正規表現の使い方を勉強されて、自分なりにコードを組んでみてから、また躓いたところを質問されるとよいかもしれません。

しかし、ご提示のテキストデータが複雑になればなるほど、正確なデータを抽出するには、正規表現という技術を使っても難しくなっていきます。
(テキストデータ解析を卒論にしている先輩がいたし、解析の規模は大きかったですが、一年くらいかかっていたので)
ご初心者だということで、最初から複雑なテキストを解析しようと思うと途中で嫌になってくるかもしれません。
なので、lineに送るテキストデータをなるべく簡単にできる方法がないかを考えてみてもいいかもしれないです。

text

12020/07/04(土) testtest

まずは、この分から日付だけを抽出する、など、簡単なものからやっていった方が個人的にはいいと思います。

投稿2021/01/09 04:22

moromon

総合スコア86

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

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

nezumimuzen

2021/01/12 05:44

Moromon様 改めて回答いただきありがとうございます!勉強不足であることを認め少しずつ練習していこうかと思います! また質問などをするかと思いますが是非回答頂ければ幸いです汗
guest

0

ベストアンサー

ご覧になっているかもしれませんが以下のサイトが参考になると思います。
私も初心者ですが、このサイトを参考にして似たようなものを作れました。
https://chusotsu-program.com/line-gas/

準備 LINE DeveloperでMessaging API でボットを作成
準備 保存先のスプレッドシートを用意する
準備「ツール」-「スクリプトエディタ」でそのスプレッドシートに結び付いたスクリプトファイルを開くか、
スプレッドシートからは独立にスクリプトファイルを新規作成してコードを書く準備をする

スクリプトファイルには以下の内容を書き込む。紹介したサイトに載っているコードを書き換える
0. 投稿されたメッセージを取得
0. 日付から始まるメッセージの場合、日付を除いた文字列を再代入、もしくは配列に変換してから日付を除く
0. 空白・タブ・改行で区切り配列に変換
0. いったん除いた日付を配列の最初に挿入
0. セルの最下部に配列を転記
0. json形式で出力する

GASの編集が終わったら、ウェブアプリケーションとして公開する。

投稿2021/01/11 00:56

編集2021/01/11 07:30
SnowMonkey

総合スコア53

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

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

nezumimuzen

2021/01/12 05:45

参考サイトのURLまで貼っていただきありがとうございます。 記載いただいた順に処理を行うプログラムを勉強しながら作ろうかと思います。 その際また質問などが発生するかと思いますが、魔が回答いただけましたら幸いです!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問