こんにちは。
アドバンスパソコンスクール西八王子教室です。
今回は10/16のエクセルのプログラミング問題の、回答と解説をしていきたいと思います。
☆☆前回の問題☆☆
【FizzBuzz問題】
問1.A列に1から100までの数字を入力してください。
問2.B列に下記の条件を満たす関数を入力してください。
・A列が3の倍数の時は「Fizz」と表示される。
・A列が5の倍数の時は「Buzz」と表示される。
・A列が3の倍数かつ5の倍数の時は「FizzBuzz」と表示される。
★★回答例★★
B1に次のように記述し、100行目までオートフィルを行う
=CONCATENATE(IF(MOD(A1,3)=0,”Fizz”,””),IF(MOD(A1,5)=0,”Buzz”,””))
☆★解説★☆
今回は3種類の関数を使う方法をご紹介いたします。
・CONCATENATE関数
⇒文字列をつなげる関数
・IF関数
⇒論理式で処理を分ける関数
・MOD関数
⇒割り算をして余った数字を出す関数
関数を複数使う場合は小分けにして考えていきます。
また、プログラミングはコンピュータの言葉ですので、日本語に翻訳するとわかりやすくなります。今回は翻訳例も記載いたします。
まずはFizzという文字を表示する方法を考えます。
3の倍数は、3で割った時に余りが0になります。
この法則を使うために、MOD関数を使います。
=MOD(割られる数,割る数)
B1に入力する場合は
=MOD(A1, 3)
となります。
3の倍数であるかどうかの判定をすることができるようになりましたので、
これをIF関数の条件部分に組み込んでいきます。
3の倍数だったときはFizz、そうでないときは何も表示しないようにします。
=IF(条件,条件を満たした場合表示するもの,条件を満たさない場合表示するもの)
=IF(MOD(A1,3)=0,”Fizz”,””)
訳:もし、A1を3で割った時の余りが0だった場合Fizz、そうじゃない場合は何も表示しない
同様にBuzzを表示する関数も作成します。
Fizzの関数を一部編集します。
=IF(MOD(A1,3)=0,”Fizz”,””)
↓
=IF(MOD(A1,5)=0,”Buzz”,””)
訳:もし、A1を5で割った時の余りが0だった場合Buzz、そうじゃない場合は何も表示しない
最後に、この二つのIF関数をCONCATENATE関数で合体させます。
=CONCATENATE(文字列1,文字列2,文字列3,…)
=CONCATENATE(IF(MOD(A1,3)=0,”Fizz”,””),IF(MOD(A1,5)=0,”Buzz”,””))
訳:
もし、A1を3で割った時の余りが0だった場合Fizz、そうじゃない場合は何も表示しない。これを文字列1とする。
もし、A1を5で割った時の余りが0だった場合Buzz、そうじゃない場合は何も表示しない。これを文字列2とする
文字列1と2を合体させて表示する。
いかがだったでしょうか。
アルファベットが並んでいると一見難しく見えますが、
小分けにしてみるとSUM関数やAVERAGE関数と大差ないことが分かります。
また、この大差ない関数を複数組み合わせることで、
複雑な処理も可能であることが分かります。
アイデア一つで様々問題を解決できるプログラミング、
まずはその一歩をExcelで踏み出してみはいかがでしょうか!
パソコン教室では基本練習から資格取得まで幅広くご案内しています。
まずは、無料体験で体験してみましょう。
体験教室の参加費は無料です。
お子様が体験を受ける際は、保護者の方の同伴が必要です。
無料体験の予約ページは → こちら
詳しくはお電話でお問い合わせください。
お電話お待ちしております!!!!
アドバンスパソコンスクール西八王子教室
東京都八王子市千人町3-1-22
042-662-2660