検索

ホームページ  >  に質問  >  本文

Google スプレッドシートで数値を時間に変換する

<p>日付、開始時刻、昼食時刻、終了時刻、1 日あたりの労働時間を入力し、最終的に 1 か月の労働時間を合計できる自動 Google スプレッドシートを作成しようとしています。 。 Google スプレッドシートで作業スケジュールを作成することはそれほど難しくありませんが、改善したい点がいくつかあります。 1 つは、スプレッドシートがその日の労働時間を正確に計算しているにもかかわらず、合計が 8 時間 22 分ではなく、午後 8 時 22 分などの時計として表示されることです。もう 1 つは、この形式では時間形式で時間を書かなければならず、面倒なことです。セルに 3 つまたは 4 つの数値を入力して、時刻に変換できるようにしたいと考えています。 </p> <p>これを実現する唯一の方法は Google Apps Script を使用することだと知り、見つけた唯一のチュートリアルに従いましたが、コードはまったく機能しませんでした。スクリプト ツールは JavaScript を使用します。私は After Effects のエクスプレッションで毎日使用しているため、ある程度の知識はありますが、専門家ではありません。誰かがこのそれほど難しくないプロジェクトを手伝ってくれたら、とても感謝します。もちろん、私がやっていることに誰かがもっと良い代替手段を持っているのであれば、それをリダイレクトすることに全く抵抗はありません。どうもありがとう。チュートリアルに基づいて作成したコードを貼り付けてから、チュートリアル自体へのリンクを貼り付けます。 </p> <pre class="brush:php;toolbar:false;">var COLUMN_TO_CHECK = 3; var SHEET_NAME = "Sheet1"; 関数 onEdit(e){ var ss = SpreadsheetApp.getActiveSpreadsheet(); var シート = ss.getActiveSheet(); if(sheet.getName() === SHEET_NAME){ var selectedCell =sheet.getActiveCell(); selectedCell.setNumberFormat("@"); if(selectedCell.getColumn() === COLUMN_TO_CHECK){ var cellValue = selectedCell.getValue(); var time = cellValue.substr(0,2) ":" cellValue.substr(cellValue.length - 2); selectedCell.setValue(時間); selectedCell.setNumberFormat("hh:mm"); } } }</pre> <p>7 行目でエラーが発生しました: varsheet = ss.getActiveSheet();。デバッガーは変数 <strong>ss</strong> を null と呼びます。 </p> <p>このチュートリアルで気づいた問題の 1 つは、注目のコードとステップバイステップのコードの間に矛盾があり、コードのいくつかの行がスキップされていることです。これが私のコードが機能しない理由かもしれません。チュートリアルに従っていると、注目のコードを正確にコピーしようとして行き止まりに陥ってしまいました。 </p> <p>https://yagisanatode.com/2018/06/02/google-apps-script-how-to-automatically-generate-a-time-from-a-four-digit-24-hour-time- -google-sheets/</p> 内
P粉575055974P粉575055974455日前751

全員に返信(1)返信します

  • P粉426906369

    P粉4269063692023-09-05 09:24:10

    私は、ここで引用した記事の著者です。コメントにこれを追加するほど StackOverflow を頻繁に使用するわけではありませんが、ここではそうすることをお勧めします。

    ss 変数はアクティブなスプレッドシートを参照していることに注意してください。これは、スクリプト に関連付けられたスプレッドシート です。 onEdit() トリガー を使用しているため、このスクリプトは Google スプレッドシートにバインドする必要があります。あなたの質問によると、これをすでに実行したかどうかはわかりませんが、それを実行するための手順は次のとおりです。 Google スプレッドシート メニューで、[拡張機能] > [Apps Script] に移動します。

    ここで、コードを貼り付けてプロジェクトを保存します。シート名 (タブ内の名前) が変更および更新するシート名と同じであることを確認し、それに応じて SHEET_NAME 変数を更新します。

    これにより、発生しているエラーが解決されるはずです。

    注 - メイン コードの下にあるコードの内訳は、コードの重要な部分を強調することのみを目的としており、ステップバイステップのガイドではありません。これを念頭に置いて投稿を更新しましたので、フィードバックに感謝いたします。

    質問を誤解していたら申し訳ありません。

    棚池 - これがより適切であると思われる場合は、この返信をここに投稿する代わりに、ご自由に削除するか、コメントに統合してください。

    返事
    0
  • キャンセル返事