2026年4月4日土曜日

EXCEL での正規表現置換

エクセルで、"No" の後の数字を一括で A1 セルで指定した内容に置換したくて
REGEXREPLACE(B10,"(No)[0-9]+","$1"&A1)
と書いたらエラーになった。なんで?
 "&" 以降を取ったら動くので、式自体は問題ないはず。

 … しばらく熟考して気がついた。
A1 セルに入ってたのは「2」。 そらエラーになるわorz

 数式を展開すると
REGEXREPLACE(B10,"(No)[0-9]+","$1"&"2")
REGEXREPLACE(B10,"(No)[0-9]+","$12")
⇒12番目の括弧はないからエラー

こうしなきゃいけなかったのね
REGEXREPLACE(B10,"(No)[0-9]+","${1}"&A1)

2025年5月1日木曜日

EXCELでスピルを使う時のメモ

一部非対応関数がある。確認したのは AND(), OR()

例えば、下記の様な表があったとして

  A B
1 TRUE TRUE
2 FALSE TRUE
3 FALSE FALSE

ここで、下記の様に C 列に「A 列と B 列の各行毎の AND」を表示したい。

  A B C
1 TRUE TRUE TRUE
2 FALSE TRUE FALSE
3 FALSE FALSE FALSE

で、C1 に =AND(A1:A3,B1:B3) を入れると

  A B C
1 TRUE TRUE FALSE
2 FALSE TRUE  
3 FALSE FALSE  

となりうまくいかない。 恐らく AND(A1,A2,A3,B1,B2,B3) と解釈されてるのだろう。

今のところ、各行毎の AND を取りたいなら、 IF((A1:A3)*(B1:B3),TRUE,FALSE) 等とするしかないようだ。 (OR なら + を使う)

Created: 2025-05-01 木 11:31

Validate

2025年4月30日水曜日

WEB版EXCELで「名前を付けたLAMBDA関数」を使う

以前、WEB 版 EXCEL で 名前を付けたLAMBDA関数 を作成しようとして、できなかったので使用を諦めていたのだが、今回登録方法が見付かったのでメモっておく。

やり方

数式タブ→「ネームマネージャー」→「+新規」

これでWEB版でも自作関数が作れる😸


(追記)

WEB版で自作関数にセルの範囲指定を入れたら、動作しなかった😿
  1. セルB5 に 0.3 を入れる
  2. LAMBDA(no,INDEX(Config!B5:B7,no,1))hoge て名前つける
  3. hoge(1) を評価すると 0
欄外に、うっすらと
現時点では、Excel for the web ではスコープを編集できません。規定では、名前のスコープはブックに設定されます
て書いてあったので、 INDIRECT 使って書き直したら意図通りに動いたw LAMBDA(cno,INDEX(INDIRECT("Config!B5:B7"),cno,1))

2024年6月24日月曜日

露出計算ツール

Javascript で露出計算ツールを作ってみた。元はHTMLファイルとして作ったものを流用したのでレイアウト等に難あり

EV = AV + TV - SV

Chart

2024年6月17日月曜日

リンク集

Google Site を閉じてこちらに移動

  • お気に入り写真集
    image.canon で公開してたが、閉鎖されるので Amazon photo に移行した。
    …まあ、今は会社のPCの壁紙くらいにしか使ってないけどw
  • emacs設定 → こちらを参照
  • bashrc … Github で管理

2024年5月2日木曜日

Eamcs セットアップメモ

新規に Emacs を自分の環境ファイルを使ってセットアップする機会があったので、その時のメモを備忘録として残しておく


MSYS2 をインストール

本家のページよりダウンロード。
なくても動くようにしてるつもりだけど、結局grepとかないと不便なので…

emacs をインストール

本家のページよりダウンロード

emacs 環境ファイル

  1. github から .emacs.d を clone
  2. emacs 起動して、エラー出る箇所を見ながら下記をインストール
    • migemo
      • 本体は package-install で入る
      • cmigemo はダウンロードしてインストール
        →Windows は AppData/Local/cmigemo に入れて各アプリで共用できるようにした
      • migemo-dictionary 等の値を環境に合わせ設定
      • もう UTF-8 以外の環境になることはなさそうなので削除
    • ddskk
      • 本体は package-install
      • L 辞書は github からダウンロードして .emacs.d/etc/skk に入れる
      • Win 環境では SKKFEP の L 辞書と共用にしようと思ったが、 SKKFEP 辞書の文字コード等が本家と変わっているので諦める
      • (require 'skk-autoloads) は不要になった模様
        ※パッケージインストール限定かも
    • dired のカスタマイズ関連
      • sorter.el (ファイルのソート)
        オリジナルのファイルが見つからないので使うのを諦める
      • w32-symlinks (Windows のシンボリックリンクを処理できる)
        EmacsWiki からダウンロード
      • bf-mode (ファイルの中身を表示)
        package-install で入る
    • color-moccur (検索) grep や ripgrep 等が使えない環境 (Windows native とかw) のためにいれておく
      package-install で入る
    • dabbrev-ja (動的略語展開 dabbrev の日本語対応設定)
      オリジナルのファイルが見つからないので使うのを諦める
      どうやら これ がオリジナルらしい (追加設定の方ねw)
    • dabbrev-highlight (動的略語展開時に色つけ)
      オリジナルのファイルが見つからないので使うのを諦める
      オリジナルの改良版 ここ にある
    • psvn (svn インターフェース) 職場では現役
      EmacsWiki からダウンロード
    • helm 関係 … 下記全て package-install で入る
      • recentf-ext (recentf でディレクトリも保存できるようにする)
      • helm 本体
        最新では (require 'helm-config) ではなく (require 'helm) になったようだ
      • helm-gtags
      • helm-swoop (絞り込み検索の画面を編集して元ファイルに反映)
      • helm-ag (ag で helm インターフェースを使う。設定で grep/ripgrep も使える)
    • shell-toggle
      package-install で入る
    • session (kill-ring やミニバッファ入力、開いたファイルなどの履歴を保存する)
      package-install
    • cygwin-mount.el (cygwin形式のパスを扱えるようにする)
      gtags等の外部ツールはパスがunix形式になるため必要
      EmacsWiki からダウンロード
    • magit (git インターフェース)
      依存するパッケージ compat が見付からないとかで、インストール不可
  3. その他設定
    • shell-command-completion-mode 設定不要 (なくても補完できてそう)


2021年12月7日火曜日

mintty で全角文字の一部が重なって表示される

mintty で文字コードを UTF-8 にすると、一部の記号が下記の様に重なったり欠けたように表示される。

調べてみると、 Unicode で規定されている East Asian Width で Ambiguous(曖昧) に属す文字は半角表示するようになってるらしい。

ここを参考にして mintty のオプションにある「文字セット」を「UTF-8@cjkwide」に設定した後、ターミナルを再起動したら解決した。
※GUI のオプション画面でも、 .minttyrc を直接設定しても OK

他にも East Asian Width 関係には、他にもフォントやソフトが規定を守ってない問題などがあるらしい…

2021年11月1日月曜日

png に日付情報 (Exif) を追加

 スマホのあるアプリで撮ったスクショ (PNG) を Amazon Photo に上げると「日付なし」となって日付で整理できない。

ファイル名にスクショしたタイムスタンプが使われているようなので、これを exiftool で撮影日として登録するスクリプトを書いてみた。

#!/usr/bin/ruby

ARGV.each do |arg|
  /([0-9]{4})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})/.match(arg)
  year = $1
  month = $2
  day = $3
  hour = $4
  minuite = $5
  sec = $6
  puts "#{year}/#{month}/#{day} #{hour}:#{minuite}:#{sec} <- #{arg}"
  system("exiftool -DateTimeOriginal=\"#{year}/#{month}/#{day} #{hour}:#{minuite}:#{sec} JST\" #{arg}")
end

2020年5月8日金曜日

shell-toggle で ansi-term が立ち上がるようになった

昔からずっと shell-toggle.el を使っていたのだが、最近の版 (少なくとも 1.3.1 以降) に変えると通常の shell モードではなく ansi-term が立ち上がる。
ansi-term はいちいちモードを切り替えないと emacs のキーバインドが使えないので個人的に使い難い。

できれば通常の shell モードが立ち上げるようにしたい。

どうにかならないかと shell-toggle のコードを眺めてたら、どうやら shell-launch-shell を書き換えれば良さげだったので、 init.el に下記を書き込んで解決。
(setq shell-toggle-launch-shell 'shell)

2020年5月6日水曜日

携帯端末の通知を PC に転送する

家でのネットは今も PC を使っている。
携帯だと、画面に出る情報が少なくてストレスが貯まるのだ。

そういうわけで家で PC いじってると、携帯にメッセージや電話が来ても気付かない場合がある。
めんどいのでマナーモード解除しない場合が多々あるんで…💦

そういう場合に使えるアプリを見付けた。

Push Bullet さん

本来は携帯端末や PC にメッセージやファイルを送信するメッセージアプリだが
このアプリの設定に「通知ミラーリング」という項目があって、オンにすると
携帯の通知を PC で見ることができる。


PC 側のブラウザにも拡張機能の Push Bullet を入れたら、端末側の通知が PC でも表示される
携帯端末の通知 PC のデスクトップ通知

複数の端末で Line を共有する

結論 できませんorz
昔は iphone ならできてたんだけどね…

Facebook のアカウント持っていれば、 Facebook 認証を使うことで
電話番号による認証をパスできる (つまり sim なしでも使用可能) が
モバイル版アプリだと、一アカウントにつき一端末でしかログインできない。

つまり携帯A で Line にログインした後、携帯B で Line にログインすると
携帯A 側の Line は使えなくなる。

ただモバイル版でないアプリ
  • PC 版
  • ipad 版
  • Chromebook の chrome ブラウザによるアクセス
と、携帯端末のアプリは両立できる。

共有できないならば、せめて Line のメッセージ通知をもう片側の端末でも
知ることができればいいんだけどなあ…

EXCEL での正規表現置換

エクセルで、"No" の後の数字を一括で A1 セルで指定した内容に置換したくて REGEXREPLACE(B10,"(No)[0-9]+","$1"&A1) と書いたらエラーになった。なんで?  "...