2014年01月31日

経営理念とビジョン

日本企業は経営理念はいいけどビジョンが分かりにくい。

なんというか、抽象的。
幸せにするとか、役に立つとか。

パナさんのは時代遅れの水道哲学だしね。

某米企業なんかは一言でわかりやすい。
整理し尽くすとか、届けるとか。

ただその差が大きい。

と、ちょっと毒づきたくなったので、ここで発散。
posted by luuuuga at 17:12| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2013年10月02日

エクセルの計算式から逆算する

飲み会の幹事が一生懸命会費計算をしいるのを見て、幹事やった時はエクセルの機能使ってたなと思いだしました。

会社の飲み会だと、役職によって部長は+2000円、課長は+1000円、係長は+500円、女性は-500円みたいな傾斜配分をして、歓迎する人は無料でとかやってるといくらにすればいいのか計算するのが面倒なので、エクセルを使って逆算すると結構簡単です。

ほかにも、例えばローンとかの計算にも使えます。

では、エクセルを使った逆算の方法についてですが、ゴールシークという機能を使います。
エクセル2010では「データ」タブの「Whatif解析」の中にあります。

例えば、上記幹事で会費計算する場合、一般男性の値段をA1セルに適当に3000と入力しておいてから名簿の名前をA列に、役職をB列に、会費はC列に役職に応じて足し算する数式を入力します。

C列は、C2セルに 「=if(B2="男″,$A$1,if(B2="係長",$A$1+500,if(B2="課長",$A$1+1000,if(B2="部長",$A$1+2000,$A$1-500))))」としてあとはコピーのように計算しておきます。

そして、C列の最後に=sum(C2:C17)みたいな感じで合計を計算しておきます。

ここで、ゴールシークを立ち上げます。

そうすると「数式入力セル」、「目標値」、「変化させるセル」を指定するWindowが開くので、
「数式入力セル」に合計を計算したセル(C18セル)
「目標値」に15人で一人当たり5000円のコースだったとして、75000
「変化させるセル」に一般男性の金額を入れたセル(A1セル)
を設定します。

あとはOKボタンを押すと目標値になるように変化させるセルに設定したA1セルの金額を計算してくれます。
あとはちょうどいい金額になるように切り上げれば会費計算は完了です。

画像入れるのサボりました。。。
posted by luuuuga at 23:22| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2013年10月01日

rubyって便利ですね

設定値やらなんやらの管理とか作成とかでCSV形式のデータを扱う事が多いのですが、ちょっと中身変えて、チェックサム計算してなんてことをするのにrubyが便利なんで、ご紹介。

私の場合、レジスタ設定とかが多いのですが、1アドレスに対して1データの形式で管理するので、アドレスをキーとしたハッシュを作るとめちゃくちゃ簡単にデータ変更やら差分管理ができちゃいます。

ということで、ちょっとしたコード例を。

データは「ex_reg1.csv」というファイル名で、
0000,A0
0001,01
0002,0A
...
0FFF,F8
みたいなデータの場合、
------------------------------------
require "csv"
file1 = CSV.readlines( "ex_reg1.csv" )
hash1 = Hash[*file1.flatten]
------------------------------------

なんと、これだけで
p hash["0FFF"]
でコマンドプロンプトには「F8」と表示されます。

なので、例えばアドレス:06D1を書き換えたければ
hash1["06D1"] = "0A"
と書けば06D1が0Aになるんです。

そして、書き換えたあとのファイルを「ex_reg2.csv」としてファイルを作ると、
------------------------------------
file2 = open( "ex_reg2.csv", "w")
hash1.each{ |key, val| file2.write( key.to_s + "," + val.to_s + "\n")}
file2.close
------------------------------------
これだけです。
差分をとるときは、

------------------------------------
require "csv"
file1 = CSV.readlines( "ex_reg1.csv" )
hash1 = Hash[*file1.flatten]
file2 = CSV.readlines( "ex_reg2.csv" )
hash2 = Hash[*file2.flatten]
dif_key = Array.new
dif_key = hash1.reject{ |key, val| val == hash2[key] }.keys
dif_key.each do |dif|
p dif.to_s + " : " + hash1[dif].to_s + " -> " hash2[dif].to_s
end
--------------------------------------
これでコマンドプロンプトに
「06D1 : A0 -> 0A」
のように表示されます。

これをテキストに出力すると履歴も残せます。

あぁ、便利・・・
rubyちゃんと勉強しよう。
posted by luuuuga at 22:52| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は1年以上新しい記事の投稿がないブログに表示されております。