Search

2013/10/17

TIFファイルを結合する:マルチTIFをIrfanで作成する

あんまり使わない画像形式TIFF。拡張子TIF。
FAXの画像形式みたいです。

個人的には、雑誌や新聞記事のような白黒だけでいいものによく使っています。
複数ページも対応なので、白黒のみのPDF感覚で便利。
これを結合して、マルチTIFFファイルを作成するのにIrfanを使います。

1)TIFFファイルをIrfanで開く。
2)ショートカット「T」でサムネイルビュアーを起動。
3)結合したいTIFFファイルを選択
4)右クリックでダイアログ表示
5)「選択したファイルでマルチページのTIFを作成する」を選択
6)マルチTIF作成のダイアログが表示
7)順番や出力先などを指定して、左下のボタンを押す。
※下記の画像では文字化けして「TIF 遙サ????」みたいな表示になっています。
8)指定先にマルチTIFが出力される



PDFを使えば関係ないだろうけど、TIFも便利。chromeで簡易閲覧も可能。
TIFFにもいくつかの形式があり、「CCITT Fax4」は画像は汚いが圧縮率が高いと思う。
何かとかさばる画像データだが、用途を限ればTIFF形式も便利に使えると思います。


途中で気づいたが「選択したファイルでマルチページのPDFを作成する」も可能だった。
すでにCCITT Fax形式になった画像であれば、PDFの方がファイルサイズは小さくなるみたいだ。
やっぱりPDFの方が便利かもしれない。


いずれにせよ、IrfanViewの多様な機能には驚かされる。
1人の人間が同時使用しなければ複数台のインストールOKなので、
仕事で使う人は買っておくとすごく便利。

2013/10/07

Excelでセルの値で範囲を指定する:SUMIF、INDIRECT、CONCATENATE


Excelにはいろいろと便利な機能がある。
特に集計関数は強力だと思う。
個人的には「SUMIF」お気に入りです。もちろん「IF」も好きです。


下記の表があったとします。
お菓子の合計を計算したいなら下記の関数になります。
(式1)
=SUMIF(C3:C12,"=お菓子",B3:B12)



ここで、INDIRECTを使ってみます。
INDIRECTでは、文字列から範囲を作成することが可能です。
INDIRECT("C3:C12")で範囲になります。
上記の式をINDIRECTで変えます。

(式2)
=SUMIF(INDIRECT("C3:C12"),"=お菓子",INDIRECT("B3:B12"))

INDIRECTの分、長くなっただけで意味無いですね!
さらに、セルの値から参照してみます。

検索範囲は、C3:C12なので、CONCATENATE(F3,F5,":",F3,F6)をINDIRECTで指定。
合計範囲は、B3:B12なので、CONCATENATE(F4,F5,":",F4,F6)をINDIRECTで指定。
検索の値は、F2です。
これで、上記のSUMIFは下記のようになります。

(式3)
=SUMIF(INDIRECT(CONCATENATE(F3,F5,":",F3,F6)),"="&F2,INDIRECT(CONCATENATE(F4,F5,":",F4,F6)))

すごく長くて、一見では動作が不明です。
一番最初の式1と同じ結果なのに、複雑になっています。
こんなことに意味があるのか?
たぶん、使うシーンによってそれぞれだと思います。


あらためて式1と式3を比べてみます。
結果は同じなのに、何が異なるのか?

(式1)
=SUMIF(C3:C12,"=お菓子",B3:B12)

(式3)
=SUMIF(INDIRECT(CONCATENATE(F3,F5,":",F3,F6)),"="&F2,INDIRECT(CONCATENATE(F4,F5,":",F4,F6)))


わかりにくいと思いますが、式1は、式の中に定数がたくさん含まれています。
式3は、定数少なくて、代わりにセルの参照値が含まれています。
つまり、式1は定数指定、式3は変数指定と考えられます。


式1の場合、検索範囲や検査値に変更があるときは、式の「定数を変更」します。
式3の場合、検索範囲や検査値に変更があるときは、指定の「セルの値」を変更します。


どっちが便利なのかは、扱うデータによって異なります。
個人的には、多数の集計をしたいときには、式3を使っています。
手っ取り早く集計したいときは、式1を使っています。

式3を見てわかる通り、これを書くだけでも面倒です。
ただし、きっちり書いてしまえば、後は式3をコピーするだけで似たような集計が簡単にできます。
範囲の変更も簡単にできます。
もちろん、ExcelのVBAを使えばもっと簡単にもっと複雑なことが出来ます。
でも、関数を使っておけば、LibreOfficeやKingsoftOfficeでも転用可能です。
場合によりけりですが、知っておいて損は無いと思います。