それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

phpでOSの判定をする組み込み変数

php で実行環境をチェックするには

PHP_OS という、ウルトラ素晴らしい定数が、最初から組み込まれています。

<?php
var_dump(PHP_OS);

実行結果

macOS ( OS X ) での実行結果

string(6) "Darwin"

Ubuntu での実行結果

string(5) "Linux"

とてもかんたんにOSを判別できます。

参考

https://www.php.net/manual/en/reserved.constants.php

Excelの書式設定で数字を0埋めする。(ゼロパディング)

Excel で数字をゼロ埋めたい。

000123 のように数字を0で埋めることで、桁数が揃ったり、視認性があるので採用する人も多いと思います。

また、最大桁数が一瞥してわかるのも魅力ですね。

ゼロ埋めはヒューマンインタフェース*1として、対人間との情報のやり取りとして非常に優秀です。

数字をゼロ埋めにする書式設定

次のような、セルがあるときに

f:id:takuya_1st:20190909142609p:plain ( A列は比較用です

セルの書式設定→その他

セルの書式設定を呼び出します。

f:id:takuya_1st:20190909142621p:plain

書式設定で0をたくさん書きます。

ゼロの数でゼロ埋めの個数が決まります。

 0000: 123→ 0123
00000: 123→00123

今回は、0 を6つ書きました。

f:id:takuya_1st:20190909142636p:plain

000 の場合です。

では、最大桁数より少ないゼロの数を指定したらどうなるでしょうか。

結果は次のようになります。 f:id:takuya_1st:20190909144642p:plain

二回目以降はユーザー定義

一度書式を指定したら、次から、ユーザー定義に出現します。

そこから選ぶのが速いでしょう。

ユーザー定義書式に名前をつけられたいいのにな。

数字?文字?

数字のゼロ埋め 00123 のように記載するのは、文字列と数値をごっちゃにするので、あまりよろしくないのですが。

何がよろしくいかというと、数字であるところを、文字列にしてしまう方がいらっしゃいます。

さら悪いことには、ごっちゃにする方々への予防策のために、担当者が「うちでは0埋めを採用しない」とか「0埋めをみたら文字列だと思え」などと、謎なローカル・ルールが誕生してたりします。
声の大きいひとの意見が通るのは良くないですよね。理性的に行動してほしい。

セルの値を「数字」としてあつかい、表示の書式設定で0を補って数字を書式表示するのが正しい。

Excel ワールド

プログラミングを習ったことがある人だと printf(%06d, 134 ) のような printf による書式を考えてしまいがちです。

しかし、ExcelVBAには GNU bash のような 組み込み printf も、C言語のような stdio による printf もありません。

Excelにはエクセルの流儀があり、プログラミングの世界にはプログラミングの流儀があがります。

私はプログラマなので、これをExcel異世界だと思うようにしています。プログラミングとExcelの世界は似ていますが、違いますね。

「郷に入れば郷に従え」の通り、あれこれローカルルールや独自基準をつくらず、素直な解決方法を受け入れるようにしたいです。

*1:今どきの呼び方をするなら、UI/UXでしょうか

Excel でセルの書式設定をすると、なぜか中国(台湾・イ語)にロケールがなってしまう。

excelの書式設定を変えると。。。

なぜか、セルの書式設定で 0000 を設定し、再度画面を開くと、書式設定が次のように、非日本語判定されてしまいました。

f:id:takuya_1st:20190909135810p:plain

私は台湾はスキなんだけど、いまこのExcelで台湾を求めてないんです。

なぜか中国判定されてしまう。

別に問題はないのだけれど、ちょっと気持ち悪いと思います。

解決策

[$-ja-JP]0000000

設定したところ f:id:takuya_1st:20190909135835p:plain

これで解決。する。

嘘だろと思ったけど、本当に解決したので、メモ。

参考資料

Excelの「セルの書式設定」の「ユーザー設定」における先頭に0がある数値の設定につ - マイクロソフト コミュニティ