2020年7月17日 星期五

以試算表(Excel)參照一個日期或年月份,計算該月份有幾個星期(禮拜)日、一、二、三、四、五或六

我的 Google Sheets (Drive) 線上記帳本,是以每個月為單位統計,有些固定每週的支出,想要預先填入作為預設金額,常常需要拿月曆比對察看要乘以幾很麻煩,用函式計算方便多了,來記錄一下。

參照一個日期計算該月份有幾個星期幾,這牽扯到幾個公式,一是計算該月最大日數也就是最後一天,一是加總日期範圍內的某個星期幾。以下範例分別是在B2有個參照日期,以及A2有個202007(yyyymm)的參照月份計算方式。


列出該日期星期幾:
日期參照 =choose(WEEKDAY(B2),"日","一","二","三","四","五","六")
weekday函式帶出的數值從週日開始為1,依次排到週六就是7。


計算當月最後一天:  
日期參照 =day(DATE(year(B2),month(B2)+1,0))  
月份參照 =day(DATE(left(A2,4),right(A2,2)+1,0))
其實就是找出下個月一號的前一天日期的日部分。


加總日期範圍內的星期幾:
日期參照統計該月週二數量 =SUMPRODUCT(--(MOD(ROW(INDIRECT(DATE(year(B2),month(B2),1)&":"&DATE(year(B2),month(B2),day(date(year(B2),month(B2)+1,0))))),7)=3))

月份參照統計週六數量 =SUMPRODUCT(--(MOD(ROW(INDIRECT(DATE(left(A2,4),right(A2,2),1)&":"&DATE(left(A2,4),right(A2,2),day(date(left(A2,4),right(A2,2)+1,0))))),7)=0)) 

公式主要加總所有除以七餘數等值的項目,Mod餘數等於0=週六(7所以整除)、1=週日、2=週一、3=週二、4=週三、5=週四、6=週五,修改前述公式倒數第三個字,即可改成需要計算的星期幾範圍。

2020年4月22日 星期三

在Windows 10中新增本機使用者帳戶

Windows 10 以來微軟官方大力推廣使用他們的微軟帳戶,但是在很多時候簡單的本機登入方式,比連線登入同步帳號更高效簡潔。

建立本機帳號的具體操作方式:

1. 按『WIN鍵+R鍵』→在「執行」視窗輸入「netplwiz」,按「確定」。

2. 點選「使用者帳戶視窗」中間的「新增」。
※ 請勿取消勾選「必須輸入使用者名稱和密碼,才能使用這台電腦」,否則會無法在此畫面進行「新增」動作。

3. 在「此使用者如何登入」的畫面下方,點選「不使用 Microsoft 帳戶來登入(不建議)」。

4. 點選下方「本機帳戶」進到下一頁。

5. 輸入需要的使用者名稱及密碼後,按「下一步」即完成本機帳戶新增。

這樣做法的好處,是避過近期增加的煩人三道安全提問。

2020年4月13日 星期一

電子書轉正體直排的經驗

閱讀電子書十幾年了,陸續也買過幾個電子紙閱讀器,目前主要是以Kindle為主。
中文內容除了周博士的好讀網站,其他不論付費與否,很多不是傳統(我偏愛)的正體直排。
以前懶惰貪方便,常常使用天火藏書線上轉檔,但是他除了會加宣告圖以外,大小限制跟章節遺失常令我困擾。

轉以工具軟體轉檔,經過一段時間的折騰與測試,我後來也使用主流的Calibre來管理及編輯,其實epub解壓縮後也是可以直接使用文字編輯器,不過Calibre另有些方便工具。有一段時間常用「Chinese Text Conversion」這個外掛,但有時結果也不盡人意。

想要理想效果最好的辦法,只能是自己動手修改確認,其實也不難,只是稍微瑣碎耗時。具體作法,在Calibre中書名上點右鍵進入編輯書本,又或自行以zip解壓epub檔用文字編輯器開啟,然後去修改電子書檔案。 

開啟主要的css檔(通常是內容最多的那個),確認有包含以下內容:
body {
-webkit-writing-mode: vertical-rl;
-epub-writing-mode: vertical-rl;
writing-mode: vertical-rl;
}
(在html/body/div段都有可能,放body段通常就可以,html段表示全部)

然後打開主要的OPF檔(通常是content.opf、metadata.opf或volume.opf),確認有以下內容:
語言設定中文:
<dc:language>zh-tw</dc:language> 或 <dc:language>zho</dc:language>
以及頁面方向右至左:
<spine ???? page-progression-direction="rtl">



今天遇到一個檔案,它的CSS是這樣寫的:

body.hrtl {
}
body.vrtl {
  -epub-writing-mode: vertical-rl;
  -webkit-writing-mode: vertical-rl;
  writing-mode: vertical-rl;
  -epub-text-orientation: vertical-right;
  -webkit-text-orientation: vertical-right;
  text-orientation: vertical-right;
}
div.hrtl {
}
div.vrtl {
  -epub-writing-mode: vertical-rl;
  -webkit-writing-mode: vertical-rl;
  writing-mode: vertical-rl;
  -epub-text-orientation: vertical-right;
  -webkit-text-orientation: vertical-right;
  text-orientation: vertical-right;
}

我認為vrtl和hrtl分別代表直式和橫式的右至左(結果只有直橫),它另外還分別設定了「直式橫式各自的」邊界大小跟其他細節,在各html內文頁只用了一行<div class="hrtl">。我自做聰明以vrtl取代內文頁所有hrtl,結果細部邊界設定不適用,每章都直達頁尾,只好改回使用本文最上面(無class)版本直接覆蓋。

最後傳到Kindle又發現字體都跑掉,仔細去看CSS發現「font-family:」後面都沒有設Kindle字體名稱,只好自己手動補上指定:
繁體的宋黑楷圓分別是:"STSongTC"、"STHeitiTC"、"STKaitiTC"、"STYuanTC"。
简体的宋黑楷圆分別是:"STSong"、"STHeiti"、"STKai"、"STYuan"。
日文字體,明朝 "TBMincho"、ゴシック "TBGothic"、筑紫明朝 "TsukushiMincho"。

有時間的話還是先開幾個內文頁,看看裡面有沒有什麼特別的標註方式,或需要注意修改的地方,才可以事半功倍。

為了避免傳到Kindle才知道亂掉,我跑去下載了Amazon自家出的Kindle Previewer,據說還可以轉檔避免被Calibre亂改東西,實際試了一下果然可以預覽,但是一直無法匯出成mobi檔,不知道為什麼。