2

日付を格納する列があり、日が奇数または偶数の場合に行全体 (または行の複数のセル) の背景色を切り替える条件付き書式のカスタム数式を実装しようとしています。

これが私のシートのコンマ区切り値バージョンであり、私が達成しようとしていることです。日付と時刻は別々の列にあります。同じ日付 (異なる時刻) の複数の行を含めることができます。同じ日付の行は同じ色にする必要があります。

Date,       Time, Data
01/12/2014, 01:00, "xxxx" -> BG = X
01/12/2014, 03:00, "xxxx" -> BG = X
02/12/2014, 01:00, "xxxx" -> BG = Y
03/12/2014, 01:00, "xxxx" -> BG = X
03/12/2014, 02:00, "xxxx" -> BG = X
04/12/2014, 03:00, "xxxx" -> BG = Y

日が偶数か奇数かを計算するために、1970 年 1 月 1 日からの日数を返す単純な関数を作成しました。

/**
 * Return the day of the year of a date or a range
 *
 * @param {date}|{Array.Array} Date or range.
 * @return The day of year.
 * @customfunction
 */
function DAYSFROM70(date) 
{
  if (date.map) {
    return date.map(DAYSFROM70);
  } else {
    if (!date instanceof Date || !date.getTime) {
      return "";
    } else {
      return Math.ceil(date.getTime() / 86400000);
    }
  }
}

そして、これは私が適用しようとしたカスタム式です (DAYSFROm70 関数はパラメーターとして範囲を使用していることに注意してください)、成功しませんでした:

=ISODD(DAYSFROM70($B$2:$B$101))

次の数式は、セルの背景に色を付けます (ただし、明らかにそれを使用することはできません。日曜日と月曜日はどちらも奇数です)。

=ISODD(WEEKDAY($B$2:$B$101))

スクリプトに何か問題がありますが、何が原因かわかりません...

テスト用にこのスプレッドシートを確認してください: https://docs.google.com/spreadsheets/d/1U49FoeMPKlvjCURsqS7GxTH62u_fTJNCcH12XFQtWVQ

ご協力いただきありがとうございます。


4

3 に答える 3

4

=isodd(day(A1)) ??

  • シート全体を選択
  • クリック フォーマット -> 条件付き書式
  • ドロップダウンから「カスタム数式」を選択します
  • 数式ボックスに次のように入力します。=isodd(day($A1))
  • フォーマットを選択してください (背景色)
  • [OK] をクリックします。

編集

あなたの質問では、「日が奇数」の意味を特定していませんでした。

年、月、または年に関係なく、「隔日」の行に色を付けたいので、(組み込み関数を使用して)行うことができます: =isodd(DATEVALUE($A1))

[条件式の適用については、上記の説明をお読みください。範囲や配列を使用する必要はありません]

条件付き書式の式で範囲を参照しないでください!! "=ISEVEN(WEEKDAY($B$2:$B$23))" <- いいえ!!

"=isodd(DATEVALUE($A2))" <- はい!! (ここで、A2 は書式設定する範囲の一番上の行です - 条件付き書式ポップアップ ダイアログの「範囲」ボックスに記載されています)

于 2014-09-09T10:23:54.530 に答える
0

Google スプレッドシートはその形式の日付をサポートしていないようです。あなたの関数を使用すると、その形式を試すとエラーが発生しますが、最後から時間を削除すると正常に動作します。

回避策: 日付をカスタム形式として追加します: https://support.google.com/docs/answer/56470?hl=en

フォーマットを設定して、「12/1/2014 1:00:00」で動作させました:

Year(1930)-Month(08)-Day(05),Hour(1):Minute(1)

- - 編集 - - -

条件付き書式を次のように設定しました。

=ISODD(DAYSFROM70($A1))

列Aに日付があったため、これにより行全体が変更され、日付が奇数になります。

お役に立てれば

于 2014-09-09T10:29:35.547 に答える
0

日付が ColumnA にある場合は、フォーマット、条件付き書式を試してください...、カスタム数式は次のとおりです:

=isodd(text($A1,"#"))  

Range: A:Z (または必要に応じて拡張) に選択したフォーマットを適用します。

于 2014-09-09T22:13:09.920 に答える