見習い奮闘記

Excelで金種計算(複数の人にお金を分けるとき)

まとめてお金を下ろしてきて、複数の人に分けなければならない!でも、それぞれの金種で何枚ずつ出金すればいいのかしら????

計算がめちゃくちゃ苦手な見習が出くわした課題。銀行の出金伝票には、10000円、5000円、2000円、1000円…、それぞれの金種の枚数を指定する欄があって、そこに枚数を記入するのみだけど、指折り計算すると間違いがありそう。
そんなときに、必要枚数を計算してくれるExcelブックを考えました。
(スクリーンショットはExcel2013でとりましたが、基本的な機能だけなので、どのバージョンでもだいたい同じです)

金種計算用のブック

金種計算用のブック

こんな風なのです。B3:B17に、それぞれ必要な金額を入力していきます。とりあえず、私の場合、15人くらいに分けるのがマックスっぽかったので、15行分です。

すると、O列に、それぞれ10000円から1円まで必要枚数を算出した結果が表示されるというもの。つまり、黄色いエリアに入力するだけで、あとは自動計算になります。

ここで使うものは、基本的な関数と機能ばかり。関数についてはいくつか別案もあるけれども、基本的なもので作成してみました。

あと、2000円札については、あえて割愛。2000円札で出金したくないので…。

非表示の列で計算

非表示の列で計算

まず、最初にですが、実はC:K列を非表示にしてありました。ここで途中計算させることで、簡単な関数のみで計算ができます。配列をつかったりすることで、途中計算を省くこともできますが…。

★ポイント 表示形式

表示形式を使って、「円」や「枚」を表示させることで、それぞれの数をExcelに「数値」として認識させ、計算できるようにしています。
C2:K2には、左から10000、5000、1000、500、100、50、10、5、1と入力、N4:N12は、上から、10000、5000、1000、500、100、50、10、5、1と入力しておきます。

セルの書式設定から「ユーザー定義」

セルの書式設定から「ユーザー定義」

「円」とついているセルB3:B18、C2:K2、N4:N12は、表示形式を「#,###”円”」と設定する(ユーザー定義)。

「枚」とついているセルC3:K18、O4:O12は、表示形式を「#,##0″枚”」と設定する(ユーザー定義)。

表示形式の設定は、設定したいセルを範囲選択した状態でCtrl+1[ぬ]キーを押すと、一発で「セルの書式設定」画面になるので、簡単!

★ポイント C3:K17エリアの計算

このエリアは、それぞれ一人分に必要な金種を計算するエリアです。ここでは、B列に入力した金額をその行内でそれぞれの金種の枚数を計算します。

C3:C17の計算

ここはそれぞれ1万円札の枚数を計算します。C列では式を入力するのはC3のみで、あとはオートフィルします。

C3に入力するのは、「=ROUNDDOWN($B3/C$2,0)」です。この式の意味は、「B3の値をC2の値(つまり10000)で割り、その値を整数になるよう切り捨てする」という意味。

「$B3/C$2」とドルマークを使って複合参照にしたことで、C4:C17はオートフィルで簡単入力できます。(オートフィルの関係上「B3/$C$2」でもいける)

D3:K17の計算

このエリア、D3にのみ式を入力すれば、あとはオートフィルでいけます。

D3に入力するのは、「=ROUNDDOWN(MOD($B3,C$2)/D$2,0)」です。

この式の意味は、「B3の値(25637)をC2(10000)で割った余り、つまり5637を、D2(5000)で割って、その値を整数になるように切り捨てする」という意味です。

B3の値から10000円札で支払える金額を引いて、その数を5000円で割って整数で切り捨てすることで、5000円札の必要枚数を算出しています。

ここでポイントになるのは、それ以降の金種1000円札とか500円玉の扱いです。それぞれの金種の枚数を調べるときは、一つ前の金種で払えない端数の金額のみをその金種で払えるか調べるだけで大丈夫。(これが、2000円札が入ると、そうならないところがあるけれど…)

1000円札の枚数は、5000円で払えない端数のみ、500円の枚数は、1000円で払えない端数のみ、100円の枚数は500円で払えない端数のみ計算すればいい。

ということで、「MOD($B3,C$2)/D$2」というように複合参照を使ってあげることにより、D3:K17エリアは、D3にみに式を入力することで、あとはオートフィルでOKです。

★ポイント B18:K18の計算

ここは単純に合計を出すエリアなのでB18に「=SUM(B3:B9)」と入力して、C18:K18へオートフィルすればOK。

★ポイント O4:O12の式

C18:K18で、すでに答えは出ているのですが、C:K列は計算過程で、使う人には見えなくていい。だから非表示にします(C:Kを列選択後、右クリックから「非表示」)。で、C18:K18は、O4:O12に見やすく転記してあげます。

単なる転記なので、リンク貼り付けでOK。O4には「=C18」、O5には「=D18」、O6には「=E18」…というようにO12の「=K18」までリンク貼り付けを設定します。

★キー操作の短縮のため…データの入力規則

このブックでは、使用時には、B3:B17に半角で数値を入力するだけです。効率よく半角入力できるようにします。B3:B17を範囲選択後、「データ」⇒「データの入力規則」⇒「データの入力規則」⇒「日本語入力」⇒「日本語入力」を「オフ(英語モード)」にし、OKをクリックします。

データの入力規則で

データの入力規則で

★ミス予防に… セルの保護

このブック、使うときに入力するのは、B3:B17のみで、あとは入力すべきところではないです。間違って数式を消してしまわないよう、セルに保護をかけます。

B3:B17の「セルのロック」をはずします。B3:B17を選択後、「ホーム」⇒「書式」⇒「セルのロック」をクリックします。

セルのロックをはずす

セルのロックをはずす

その後、「ホーム」⇒「書式」⇒「シートの保護」をクリックし、「ロックされていないセル範囲の選択」にのみチェックをつけて「OK」をします。単なるミス防止なので、パスワードは設定しなくてもOK。

シートの保護はここから

シートの保護はここから

 

パスワードは任意に

パスワードは任意に

これで必要な設定はおわり。あとは、セルに色をつけたり、罫線を引いたりして、「どこに入力すればいいのかしら」と直感的にわかるようにしてあげれば完成。

「明日の私は、もう他人」なくらい物忘れが激しい見習ですが、これなら明日から大丈夫かしらん????

Wordでテキストのアウトライン化をするには(Word2013の場合)

Illustratorの入っているパソコンに、使いたいフォントがない…。

Illustoratorの入っているパソコンにもフォントをお買い上げしてインストールしてあげればいいですが、そうもいかず、はて…となる見習です。

使いたいフォントが入っているパソコンにはワードしか入っていないし…。というときに、ワードを使ってテキストをアウトライン化してしまえばいいかもです。

ということで、トライしてみました。Word2007です。

⇒「Wordでフォントをアウトライン化してIllustratorで使う」の記事はこちらから。

と書いたのは、いつかしら…。(2012年のことでございます)

でも、あれから2年がたち、見習のパソコンもOffce2013へと進化しました。で、おんなじことをしようと思ったら、あれま、できない。

このとき使った機能は、Wordの「ワードアート」機能。どうも、2010からWordの「ワードアート」が変わったことに原因がありそうです…。
そんなこんなで、Word2013を使って、テキストのアウトラインを取るの、やってみました。

★ポイントは「Word97-2003形式で保存」

Word97-2003形式で保存

Word97-2003形式で保存

Wordを起動し、新規作成してから、すぐに「名前をつけて保存」を実行。Word97-2003形式で保存します。これにより2007以前のバージョンの「ワードアート」が使えるようになります。(2010以降のワードアートだと、うまくいかないみたい…なので。)

★ワードアートでテキスト入力

挿入タブから「ワードアート」を選択

挿入タブから「ワードアート」を選択、ワードアートスタイル1を選ぶ

挿入タブから「ワードアート」を選択し、「ワードアートスタイル1」をクリックします。(一番左上のスタイルです)

フォントを選択し、文字を入力

フォントを選択し、文字を入力する。

ワードアートテキストの編集」ダイアログボックスが出るので、使いたいフォントを選んで、テキストをタイプし、「OK」をクリックします。

指定のフォントで文字が入力される

指定のフォントで文字が入力されます。

これでワードアートが挿入されます。

右クリックから「コピー」。もちろんCtrl+Cでも。

コピーする。右クリックから「コピー」。もちろんCtrl+Cでも。

このワードアートのオブジェクトを選択して、「ホーム」タブの「コピー」。もしくは、右クリックから「コピー」します。

形式を選択して貼り付け

形式を選択して貼り付け


「図」(拡張メタファイル)

「図(拡張メタファイル)」の形式

ホームタブの「形式を選択して貼り付け」から、「図(拡張メタファイル)」を選択します。

右クリックから「図の編集」

右クリックから「図の編集」

貼り付けたオブジェクトを右クリックし、「図の編集」を選びます。

はいをクリック

「はい」をクリック

「これはインポートされた図で、グループではありません。Microsoft Office描画オブジェクトに変換しますか?」と出るので、「はい」をクリックします。

 「グループ化」⇒「グループ化解除」

「グループ化」⇒「グループ化解除」

もう一度オブジェクトを右クリックし「グループ化」⇒「グループ化解除」を選択します。

アウトライン化された!

アウトライン化された!

アウトライン化できました。後は、ワード文書を保存して、Illustratorなどが入っているパソコンでワード文書を開いてコピーペーストすればOKです。

★まとめ

だいたいは2007のWordとやり方は同じで、「ワードアート」機能を使うのですが、まず最初に「Word97-2003形式で保存」を実行するということが、ポイントかしらん。

普段、ワードアートを使うときは、新しいワードアートの方が直感的で使いやすいけれど、こういう使い方をするときは、ひと手間必要になったということね。2007以降のOfficeは、だいだい操作方法が同じだけど、たま~に小さな仕様変更があるので、逆にビックリします。

でも、できて、ほっ。ヨカッタ、ヨカッタ。

Excelの条件付き書式は、条件を決めるセルを複数にできるのか?

Excelの条件付き書式って、アクセス解析のときとか、結構、使い勝手がいいわねぇ、と思っている見習。今日は、ちょっと条件付き書式にトライです。(Excel2010を使用)

なんだかんだと使うことが多い、条件付き書式、最近、むむっと考え込んでしまうことがありました。そんなワケで、ビボー録。

それは、「Excelの条件付き書式は、条件を決めるセルを複数にできるのか?」ということ。日本語使用能力に難ありな見習の表現、なんと分かりやすいことでしょう。とにかく、こんなことがしたかったのです。

samp06

6人がテストを受けました。それも似たような試験をくり返し、3回。で、その3回の中で、一番高い得点を取ったのは誰?というのを、明確にしたい!ここでは、2回目のテストで95点をたたき出した石川さんの行にセルの背景に色がつけば、分かりやすいでしょ。って風です。

★条件付き書式のよくある使い方

ととと。条件付き書式って、「数式を使用して、書式設定するセルを決定」(2007以降、2010、2013などのバージョンの場合。2003バージョンなどだと、「数式が」という項目)を使うと、自セル以外のセルに入っている情報を元に、書式を決められたりするので、便利だったりします。

たとえば、こんな風。

samp04

英語のテストを受けた6人の中で、一番成績の良かった人の行すべてに色を塗ってみました。

この手順は…。

samp01

まず、書式設定したいセルを範囲選択します。

samp02

その状態で、「ホーム」タブ⇒「スタイル」⇒「条件付き書式」⇒「新しいルール」と選んでいきます。

samp03

すると「新しい書式ルール」ダイアログボックスが出るので、「ルールの種類を選択してください」の中の「数式を使用して、書式設定するセルを決定」をクリックした後、「ルールの内容を編集してください」の「次の数式を満たす場合に値を書式設定」のところに、数式を書き込んでいきます。
このときのポイントは、

  • セル番地を入力するときは、マウスで直接セルを範囲選択すると、わざわざタイピングしなくてもセル番地が自動入力されること。
  • セル番地の記述方法は、書式設定する(さきほど範囲選択した)セルの一番左上のキモチになって、絶対参照相対参照複合参照を見極めること。

とくに、絶対参照、相対参照、複合参照のあたりは、結構、キモかも。条件付き書式は、なんだかんだ言っても、「書式」の機能なワケなので、一番左上のセルに書式設定したあと、Excelが自動的に残りのセルに書式をコピー貼り付けしていると考えると、ピンとくるんじゃないかと。「絶対参照、相対参照、複合参照」って、要は、入力した後に、コピー貼り付けするときに、ポイントになるところなので…。もごもご(お茶を濁す音)。

ここの場合、A2セルのキモチになって、B2が、B2:B7の中で最高点なら、書式設定(背景に色を塗るなど)してほしいから、=$B2=max($B$2:$B$7)となります。ここで、B2の$マークの付く位置は、B2に書式をコピーしたときのことを考えると、B列は動いてほしくないので、Bの前に$がつく。けど、3行目に書式をコピーしたときのことを考えると、2の前には$マークが付くと困る。だから、$B2。

で、この数式のなかにも、関数が使えちゃう!
だから、最大値を求めるMAX関数が登場。=max($B$2:$B$7)の意味は、B2:B7の中での最大値と同じ値、という意味。どーして$B$2:$B$7というように絶対参照になっているかと言うと、テストの点数が入力されている範囲は、B2:B7。この範囲は、コピーしたときに、動いたら、絶対、困る。だから、絶対参照なり。

というよう数式を入力したら、「書式」をクリックして、適宜、書式設定をします。この「書式」をクリックすると「セルの書式設定」ダイアログボックスが出現するので、たとえば、塗りつぶしを設定したりできます。
今回は、見習のスキな黄緑色の塗りつぶしを設定しました。

後は、OKをクリックして、決定するだけ。

★じゃぁ、条件を決めるセルを複数にできるのか?

ではでは、早速、やってみます。

samp07

まずは手順どおり、書式を設定したいセルを範囲選択します。

「ホーム」タブ⇒「スタイル」⇒「条件付き書式」⇒「新しいルール」と選んで…。

「新しい書式ルール」ダイアログボックスにたどり着きます。

samp08

「ルールの種類を選択してください」の中の「数式を使用して、書式設定するセルを決定」をクリックした後、「ルールの内容を編集してください」の「次の数式を満たす場合に値を書式設定」のところに、$B2:$D2=max($B$2:$D$2)と入力。あとは、書式を設定します。

そして、OKをクリックしていくと…。

samp10

ありま、ダメだわ。
別のデータを入れたり、数式中に使う関数に別のものを使ってみたり、確かめてみたのですが、無理っぽい。ゼンゼン、書式が設定できていなかったり、範囲選択した条件範囲の一番左列のみを条件範囲として認識したり、なんだか、ワケがわからない、わけのきよまろ状態でした…。だれか、タスケテ。

Excelの条件付き書式は、条件を決めるセルを複数にできなっぽそう…。

★じゃあ、なんとかしとこう!

根本解決ではないけど、どうしても、条件を決めるセルが複数になってしまうときは、一回、列を追加して、計算させて、条件を検査させる列を1列にしてあげるしかなさそう。

samp11

こんな風に、E列に最高得点を出力しておきます。これはE2に=max(B2:D2)と入力して、オートフィルすれば、OK。

で、条件付き書式の作業に入ります。あとは、最初の基本パターンと同じ。
書式設定したいセルを範囲選択して、「ホーム」タブ⇒「スタイル」⇒「条件付き書式」⇒「新しいルール」と選んで…。
「新しい書式ルール」ダイアログボックスが出たら…。

「ルールの種類を選択してください」の中の「数式を使用して、書式設定するセルを決定」をクリックした後、「ルールの内容を編集してください」の「次の数式を満たす場合に値を書式設定」のところに、数式を書き込んでいきます。

数式は、=$2=max($E$2:$E$7)です。あとは、書式を設定して、OKをクリックしていくだけ。

samp14

とりあえず、ほしいカタチになりました。ちょっとE列いらないし!ということなら、E列を非表示にすれば、いいだけだし…。

★だいだいのバージョンで同じみたい…。

なんか、悲しい結果に終わってしまいました。「ちょっと、Excelさんってばぁ~」というキモチになったので、Excelの他のバージョンでも、チェックしてみました。Excel2003、2007、2010、2013のどれでも、おんなじ結果で、ダメみたいです。

ちょっとトホホ気分の見習ですが、気を取り直して、ゴゴゴゴゴゴォ~。

★追記★数式を工夫したら、できた!

この記事を公開したら、びっくり。Facebookのお友達が、チカラを貸してくれました。そして、解決策を見つけてくれたのです。

解決法とは…。
条件の中を複数のセル範囲にすることはできないけど、数式の中で、関数を組み合わせて、全部の条件を満たすようにしちゃえば、いいじゃん!ってなもの。

ではでは、やってみます。

まずは、条件付き書式を設定したいセル範囲A2:D6を選択します。「ホーム」タブ⇒「スタイル」⇒「条件付き書式」⇒「新しいルール」と選んで…。

「新しい書式ルール」ダイアログボックスにたどり着きます。

ホント、ここまで、さっきまでと一緒。

「ルールの種類を選択してください」の中の「数式を使用して、書式設定するセルを決定」をクリックした後、「ルールの内容を編集してください」の「次の数式を満たす場合に値を書式設定」のところに入力する数式。ここを工夫すれば、いい!

  1. =OR($B2=MAX($B$2:$D$7),$C2=MAX($B$2:$D$7),$D2=MAX($B$2:$D$7))
  2. =MAX($B2:$D2)=MAX($B$2:$D$7)
  3. =RANK(MAX($B2:$D2),$B$2:$D$7)=1

今回のような場合だと、この3つのどれでもOKです。あとは、書式を設定するだけ。どれでやっても、こんな風になります。

samp20

要は、どんな数式を思いつけるか、ということかしらん。

とくに、1番目のは、汎用性があるかも。

=OR(条件1,条件2,条件3,条件4)

というように、列の数だけORの中の引数を入れて、順繰りに条件を見ていく。そして引数のどれかが該当したら、書式を設定する。という風に、考えれば、結構、どんなのでも行けそうです。

たとえば、こんなのも、アリですよね。

samp21

進捗管理で、それぞれのチェックポイントの日にちが本日を過ぎていたら、その商品の行に書式を設定するとか。

このとき「次の数式を満たす場合に値を書式設定」のところに入力する数式は、

=OR($B2<=TODAY(),$C2<=TODAY(),$D2<=TODAY())

なんていうのが、よさそう。

★結論

条件を決めるセルを複数にしたいときは、セルの列数だけORを使って条件をつなげちゃえば行ける!

  1. 条件付き書式を設定したいセル範囲を選択して、「ホーム」タブ⇒「スタイル」⇒「条件付き書式」⇒「新しいルール」と選んで…。
  2. 「新しい書式ルール」ダイアログボックスへ…。
  3. 「ルールの種類を選択してください」の中の「数式を使用して、書式設定するセルを決定」をクリックした後、「ルールの内容を編集してください」の「次の数式を満たす場合に値を書式設定」のところに入力する数式を、=OR(条件1,条件2,条件3,条件4)にする。
  4. そして、書式を設定する。

これでOKです。やったー。とっても、とっても嬉しい見習です。
見習にチカラを貸してくれたFacebookのお友達、ホント、ありがとうです!それにしても、Facebook、スゴイなぁ…。