2014年2月24日月曜日

Excel数値の書式について


"*"(#,###);[赤]#,###;#,###

  11000 → *(11,000)
 -11000 → -11,000
         0 →


プラスのとき;マイナスの時;ゼロの時

ゼロの時は「#,##」でも何も表示されないので結構です。
そんな感じ

端末や地域によって、google playでは普通にインストールできないアプリのインストール方法

google playで端末や地域によって、検索しでも出てこないアプリがあります。出てきでもインストールできないことがあります。
実は、まず、一台root済みでそのアプリをインストール可能な端末を用意して、ファイルマネージャーなどで下記の場所をアクセス

/data/app/

インストール済みのapkがそこにあるはず。それをインストール不可の端末にコピーすれば、大きな可能性でインストールができてしまう
ということが分かった。



2014年2月23日日曜日

エクスプローラーのドライブに変なアイコンがあったら、その直し方法

Explorerのなかのドライブのアイコンがおかしくなったら
regeditで
キー:HKEY_CURRENT_USER\Software\Classes\Applications\Explorer.exe\Drives
で該当ドライブに怪しい物があったら、削除すれば直る

正規表現のパターンにヒットするファイルをmv

結論から

普通の正規表現
先頭不一致は「^」と「?!」で行けるはずが、egrepはなぜか癖がある?
例えば「先頭DELが付いていない」の正規表現は'^(?!DEL).*'ですが、egrepだと
'^[^(!DEL)].*'になります。

ls /home/from/ | egrep '^[^(DEL)][0-9]{6}.*(US)$' | xargs -I{} mv {} /home/to/

意味は"/home/from"の下のファイルやフォルダを対象に、先頭が"DEL"以外、数字6桁の次に
任意の長さの文字列が続き、最後"US"で終わるモノを全て"/home/to"に移動する

勉強:
ファイル名のみ縦表示する
#ls -1

すごくお世話になった正規表現チェッカー
http://regexpal.com/

egrepで先頭不一致(パターン)の正規表現
サンプルでは先頭が"DEL"以外すべてヒットする書き方
egrep '^[^(DEL)].*'
egrep
構文
egrep [オプション] [正規表現パターン] ファイル名

-i 検索する際、大文字小文字を区別しない
-n マッチした行の行番号も表示する。
-c マッチした行数を出力する。
-v マッチしない行を出力する。
-[数値] マッチした行の前後[数値]行も出力する。
-A [数値] マッチした行の後[数値]行も出力する。
-B [数値] マッチした行の前[数値]行も出力する。

以下正規表現
※「」は正規表現ではなく、パターン文字列を囲む記号です。
「.」→ 任意の一文字
「*」→ 0回以上の繰り返し

「.*」→ 任意文字列、空文字列もOK

「^」→ 行頭マッチ
「$」→ 行末マッチ

「^#.*t$」→ #から始め、tで終わる任意の長さの文字列
"#this is a comment" → ◯
"#this is a title" → ×
"this is not a comment" → ×

「[ABC]」→ A,B,Cのいずれか
「[A-Z]」→ A~Zの範囲いずれか

^[A~Za-z0-9]*$ → 文字列がすべて大文字と小文字と数字のモノがヒット
「\w」→ 英数字
「\W」→ 英数字以外
「\d」→ 数字
「\D」→ 数字以外
「\s」→ スペース
「\S」→ スペース以外

ですから
「^[A~Za-z0-9]*$」 と 「\w*$」 は同じ効果

"abcdefg1234" → ◯
"abc defg1234" → ×

「(abc)」→ "ABC"というフレーズがヒットする
「[^(ABC)]」→ "ABC"フレーズを含まない
「[^ABC]」→ ABCいずれでもない
「[^A-Z]」→ A~Zの範囲いずれでもない

"^(DEL).*" → 先頭が"DEL"なっている文字列
"^(?!DEL).*" → 先頭が"DEL"なっていない文字列

「{n}」→ n回の繰り返し

「^\d{8}.*」→ 8桁数字から始める文字列すべて
"20140102ABCDEFG123" → ◯


「{n},」→ n回以上の繰り返し
「{n,m}」→ n回以上m回以下の繰り返し
「p1|p2」→ 正規表現p1かp2のいずれか

「^(FR|CN).*(US)$」→ "FR"または"CN"で始め、"US"で終わる全ての文字列

2014年2月10日月曜日

INDEXとMATCHとOFFSETの数式で実現する一覧カード化

複数セルで構成された「名前」のなかの個別セルを参照する方法
例えば:A1:G1に名前をつけて「レコード」と呼びます。
そうすると、数式でA1を参照するには
=INDEX(レコード,0,1)で「A1」を参照できます。
同様B1は
=INDEX(レコード,0,2)
それでID列をMATCHして、行番号を返す。
※Vlookupは値しか返せない、MATCHはrow番号を返す
更にOFFSETを使えば、例えば1ページ4レコードのページ分け
ビューを数式だけで作成出来ます。ページ送り戻りもこの方法で
実現できる、工夫次第、vlookupも同じ効果で実現できると思う

=INDEX(OFFSET(レコード,MATCH($O$5,$A:$A)-1,0),0,4)

サンプルダウンロード
ここからダウンロード

INDIRECTって便利だね

書式 :INDIRECT(参照文字列 , 参照形式)
機能 :指定される文字列への参照を返します
解説 :参照するセル範囲を変更します。文章で書くとわかりにくいですが、実はすごく便利な関数です

引用元:Office TANAKA