0

組織のスプレッドシートの数式に時定数を持たせる方法はありますか? たとえば、次のようなものが欲しいです。

@>$3=@>$5-'08:00:00'*vcount(@2..@-1)

必要な時間よりも長く仕事をしていた時間を計算する:) @>$5 は仕事に費やした時間の合計で、@2..@-1 は仕事をした日数の行です。働いている

どうもありがとう

4

1 に答える 1

0

それはあなたを助けるかもしれません:

|     16:00 |  1 |     8:00 |
|  1d 16:00 |  3 |    16:00 |
|      8:00 |  3 |   -16:00 |
|     -8:00 |  2 | -1d 0:00 |
| -1d 16:00 | -6 |     8:00 |
|      8:00 |  1 |     0:00 |
#+TBLFM: $3='(calculate-hours $1 $2 8)

(defun calculate-hours (sumhours numdays hours-per-day)
  (if (string-match
       "\\(-*?\\)\\([0-9]*?\\)\\(?:d \\)*\\([0-9]+\\):\\([0-9]+\\)"
       sumhours)
      (let* ((input-sign (match-string 1 sumhours))
         (total-days
          (string-to-number (match-string 2 sumhours)))
         (total-hours
          (+ (* total-days 24)
         (string-to-number (match-string 3 sumhours))
         (/ (string-to-number (match-string 4 sumhours)) 60.0)))
         (forecast-hours
          (- (if (string-equal input-sign "-")
             (* -1 total-hours)
           total-hours)
         (* hours-per-day (string-to-number numdays))))
         (sign (if (>= (signum forecast-hours) 0) "" "-"))
         (forecast-hours (abs forecast-hours)))
    (if (>= forecast-hours 24)
        (let ((forecast-days
           (truncate (/ forecast-hours 24))))
          (concat
           sign
           (number-to-string forecast-days)
           "d "
           (number-to-string
        (- (/ (truncate (* forecast-hours 100)) 100) (* forecast-days 24)))
           ":00"))
      (concat
       sign
       (number-to-string
        (/ (truncate (* forecast-hours 100)) 100)) ":00"))) 0.0))
于 2014-10-08T08:57:45.533 に答える