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

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

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

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

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

Q&A

解決済

1回答

3950閲覧

Googleスプレッドシートの日付の自動更新(4行毎に)

JUNMAE

総合スコア13

Google Apps Script

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

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

0グッド

0クリップ

投稿2018/12/07 06:35

前提・実現したいこと

イメージ説明
スプレッドシートで更新日を反映させる方法が知りたいです

スプレッドシートの【種別】に何か入力された際に、【更新日】に日付を自動で入力したいです。
(画像別途添付。見にくかったらすいません。)

ちなみに画像は40までですが、41以降の番号も作成する予定です。
シートも1枚だけでなく100枚以上作らないとだめなのですが、、、

もし関数で解決可能なら、関数のほうがありがたいのですが、
スクリプトが必要ならコードを教えていただけると助かります。
4行ごとに自動入力できるような設定は可能でしょうか?

宜しくお願い致します。

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

現在、B3セルに【=IF(B2="","",NOW())】
の関数で作成していたんですが、スプレッドシートを開くたびに日付が更新されてしまって困っています。

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

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

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

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

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

guest

回答1

0

ベストアンサー

関数でやるやつ
個数が多いことが問題ならarrayformulaを使う
関数を4行ごとに入れるのは関数では無理っぽい気がする(あまり自信ない)

スクリプトでやるやつ。←これは右に更新日を入れてしまうので、下にするにはこう。

javascript

1function onEdit(e) { 2 var r = e.range.getRow(); 3 var c = e.range.getColumn(); 4 e.range.getSheet().getRange(r+1, c).setValue(getCurrentTime()); 5} 6function getCurrentTime() { 7 var ctime = new Date(); 8 var MM = ctime.getMonth()+1; 9 var dd = ctime.getDate(); 10 var hh = ctime.getHours(); 11 var mm = ctime.getMinutes(); 12 var t = MM+"/"+dd+"_"+hh+":"+mm+"発表"; 13 return t; 14}

手で書くのが○が書いてある行だけなら、これだけ入れとけは、どこのセルに書いても追加作業は一切不要
たとえば番号のところとか余白とか、他のシートで記入が起こるなら、onEditでifを書けば可能

投稿2018/12/07 06:58

編集2018/12/07 07:02
papinianus

総合スコア12705

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

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

DY.

2018/12/11 02:00

横から失礼します。 関数で4行ごとにいれるのは、 +arrayformula(if(mod(row(入れたい範囲),4)= 0か1か2か3 //{開始地点によって違う} ,入れたい関数,"")で行けますよ。
JUNMAE

2018/12/11 07:56

回答ありがとうございます。 スクリプトについて少ししか分からないので、ご指摘のarrayformulaをどの部分に入れたら良いのか教えていただけますか? ちなみに、最初の日付が入るセルがB12~なのですが、、、 宜しくお願い致します。
papinianus

2018/12/11 08:51 編集

DY.様 おはずかしい限りです。 動作確認しようとしましたが、私が引用いたしました関数を、ご提示の方法で展開するのは、ちょっと私には荷が重すぎました。別建てで回答たてていただいたほうがよろしいかと存じます。 JUNMAE様 そもそも、関数はうまく動いているのでしょうか? また、スクリプトと関数はどちらか一方でいいので。関数でなさるなら、対応するスクリプトはコピペしたらいいと思います。
JUNMAE

2018/12/11 08:48

papinianus様 回答ありがとうございます。 今、試行錯誤してみて解決しました。 お二人の回答で解決しました!! ありがとうございます。
papinianus

2018/12/11 08:52

すみませんわたしBAでなくていいので、どうやってarrayformulaで展開したか教えていただけませんか?
DY.

2018/12/12 04:46

すいません、私がちょっと勘違いをしておりまして、もし添付画像の「種別」の欄が自由記入の欄ならば、計算列を別に挿入しなければarrayformulaではできません。私の意見は完全に的外れでした。 おそらくjunmaeさんはarrayformulaを使わずにコピーで解決されたか、種別の欄が関数で、すべてをarrayformula(mod(row()で場合分けしたか、すべて一行に作って横にarrayformulaしたかどれかだと思います。 なんにせよ解決されたようでよかったです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問