エクセルで時間を計算するときに、ちょっとした問題にハマってしまったので備忘録です。
2025年1月20日月曜日
2020年1月9日木曜日
2018年2月16日金曜日
エクセルでファイルサイズのリストを作る
MS-DOSとEXCELを使用してファイルサイズの表を作成してみるテスト。
まず、ファイルサイズのリストを作成したいフォルダを開きアドレスバーに cmd と入力してDOS窓を開きます。
※こうすると開いていたフォルダがカレントになっているので、 cd(chdir)する手間が減ります
で、2つのファイルを作成するため、以下のようにコマンドを実行します。
2017年8月31日木曜日
配列の行と列を入れ替える
ロケータを4つほど作成し、それぞれ適当に移動させます。
そして、下のスクリプトを実行。
{ string $lines[]; $lines[0]="nodeName\ttranslateX\ttranslateY\ttranslateZ\tvisibility"; string $lcts[]={"locator1","locator2","locator3","locator4"}; for( $lct in $lcts ) { float $tr[]=`getAttr ($lct+".t")`; string $vis=(`getAttr ($lct+".v")`) ? "on": "off"; $lines[size($lines)]=($lct+"\t"+$tr[0]+"\t"+$tr[1]+"\t"+$tr[2]+"\t"+$vis); } print $lines; }
スクリプトエディタの履歴をコピーしてエクセルへ貼り付けてみます。
エクセルはタブで区切られているとセルに分割された状態で貼り付けられます。
便利ですね。
上では、まだ列が少ないので良いのですが、アトリビュート値を大量にリスト化した場合、アトリビュートのヘッダーを列方向ではなく行方向に並べたい場合があります。
エクセルであれば、いったんセルをコピーして、ホームの「貼り付け」から「形式を選択して貼り付け」を選びます。
出てきたダイアログから「行列を入れ替える」にチェックを入れて[OK]します。
すると、行列が入れ替わった状態で貼り付けされました。
で、これを何回も行う場合、面倒なので行列の入れ替をMEL側で行いたい。
そんなスクリプトを作成。
引数に「文字配列」と「セパレータの文字」を渡すと行列を入れ替えてくれます。
冒頭のスクリプトであれば、print $lines;の下に
print("\n-- new lines --\n"); string $newLines[]=stringArrayTranspose( $lines,"\t"); print $newLines;
を追加すれば、
うまく入れ替わってくれているようです。
2015年9月17日木曜日
EXCELの条件付き書式(覚書)
最近は、もっぱらリボンUIのタブから選んで設定してばかりいたので、
自前で条件付き書式を書くことが減り、基本的な部分を忘れていた。
書式ルールに数式を選んだ場合、返ってきた値が1だと書式を変えて、
0だとそのまま。
当たり前か。
なので、
となっているとき、該当のセルが「hogehoge」だったら書式が変わる。
dir /s /b のリダイレクトで作ったリストなんかの場合、
とかにしておけば、階層の切り替わった行に色付けできる。
しかし、LOOKUP関数の使い方とかさっぱり忘れてしまったなぁ・・・。
復習しとくか。
自前で条件付き書式を書くことが減り、基本的な部分を忘れていた。
書式ルールに数式を選んだ場合、返ってきた値が1だと書式を変えて、
0だとそのまま。
当たり前か。
なので、
=IF($A1="hogehoge",1,0)
となっているとき、該当のセルが「hogehoge」だったら書式が変わる。
dir /s /b のリダイレクトで作ったリストなんかの場合、
=IF($A1=$A2,0,1)
とかにしておけば、階層の切り替わった行に色付けできる。
しかし、LOOKUP関数の使い方とかさっぱり忘れてしまったなぁ・・・。
復習しとくか。
登録:
投稿 (Atom)