先日のパソコンクラブの講習はちょっと難しすぎたかな~と
ちょっと反省しています。(^^ゞ
金種表では作業セルを使ってINT関数と掛け算割り算の組合せで計算させる方法
(以前にやったMOD関数とINT関数を組み合わせて計算させるのとは違った方法です)
もちろんIF関数でエラー処理をしっかりと付けて。
これくらいなら...。^^;
次に領収書1として、
入力された金額を1+消費税率(5%)で割り算して、ROUNDUP関数を使って小数点以下を切り上げて
税抜金額を計算させ、返された値から消費税を計算させるという、、、
こちらもIF関数でエラー処理を付けて...。
これも何とかこなせました。
しかし、、、次が難しすぎた...。^^;
入力された金額を一文字づつ切出して領収書を作るというモノでした。
H9セルに以下のような式を作って、P9セルまでオートフィルでコピー。
=IF($H$18="","",MID(REPT(" ",7-LEN($H$18+$H$19))&"¥"&($H$18+$H$19)& "-",COLUMN()-7,1))
H18セルに入力された金額から、桁数が少なかった場合には空白が返り
さらに金額の前に¥記号が付くように&で繋ぎ、金額の後ろには ‐ (ハイフン)も付くように
これも&で...。
100万円代用の領収書ですので7桁分+¥記号とハイフンが後ろに付きますので9桁になります。
IF関数でエラー処理が付けてありますので、H18セルに入力が無い場合は空白が返りますが
少ない金額の場合の対処として(5万円だと¥記号+数字5文字+ハイフン=7桁となり2桁分の処理が必要)
REPT関数で空白を繰り返すように指定して
最大で7個と想定します(10円までの対処)ので7を指定し
そこから税抜金額と消費税額を足した数値の文字数を
LEN関数で数えて引き算します。
こうすると、50万のとき(6ケタ)には空白が一つ
5万のとき(5ケタ)には空白が二つと計算されます。
空白+数値の文字数=7となるように。
100万のときは空白は0で¥記号が抽出されます。
空白+数値の文字数から、抽出する位置を指定するのに
COLUMN関数を使っています。
列番号を返す関数です。
式を作ったのがH9セルですので、列番号Hを8と返してくれます。
8-7=1となり、空白+文字列の左から1番目を抽出するようになります。
H9セルから右にP9セルまでオートフィルでコピーしますと
相対参照でコピーされますので、一つ列が進むごとに
切出す位置が増えていきます。
空白+¥+数値+ハイフンの文字列となり、式では文字数9桁となりますが
1円の桁のときには左から8番目の文字を切り出し位置に指定しますので
1円の桁を正しく抽出することができます。
P9セルでは文字を切り出し位置を9となりますので
&で付けたハイフンが返されます。
クラブの講習は途中までで時間が来てしまい、次回にとしましたが
次回はこの問題は軽く流して、もっと優しい内容にします。
皆さん、バックギヤーが入らないように...。^^;
^^;;;;
ふうたんさんにそうに言われるようでは
問題外ですね。^^;
>マクロ記録なら、なんとかなるので、楽しみです
おお、さすがですね~。
申し訳なかったです。
次回からは気を付けます。
>今後参考にします
そうに言ってもらえるとうれしいです。^^
私は欠席でした。
難しいですね。
というか、難しすぎて計算式が頭に入ってきません。
会社の仕事の中で、
大手の道路会社の請求書がこんな感じでできています。
私が入力すると、ピタッと枠線の中に収まります。
今日は、マクロ記録を使ってみようかと考える仕事がありました。
マクロ記録なら、なんとかなるので、楽しみです。