スポンサーリンク/Sponsored Link

「たまご焼き」の話をしたら、Excelの関数を使えるようになった話

エクセルでたまご焼き
Excel(エクセル)MOS資格対策
スポンサーリンク/Sponsored Link

教室でMOS Excel 2016 スペシャリストの受験のため、仕上げをしている受講生の方がいらっしゃいます。

ここ一週間ほど、関数のことで、壁にぶちあたって苦労されていたのですが(^-^;

昨日のレッスンでは、ちゃんと「〇」がとれるようになりました!!

ご本人も、インストラクターも、よかったよかった、と胸をなでおろしているところです。

→そして本番試験も、関数の部分は満点!! もちろん合格されました!!

そのスランプを乗り越えた方から、何度も出てきた言葉がこちら。

「あのたまご焼きの話がよかった」

そう、エクセルの関数を使えるようになるために、

なぜか「たまご焼き」の話がよかった、とおっしゃるんです。

エクセルでたまご焼き

というわけで、今日はこの、「たまご焼きの話」をしていきたいと思います。

エクセルだけでなく、まあ「プログラミング全般」の入り口として、たぶん役立つのではないかなぁ? と思います。

スポンサーリンク/Sponsored Link

「ちょっとさ、たまご焼き、焼いてくれない?」

あなたなら、たぶん焼けますよね?

例えば、誰かがあなたにこう言ったとします。

「ちょっとさ、たまご焼き、焼いてくれない?」

 

いかがですか?

きっとあなたは、フライパンを手にキッチンに向かい、たまご焼きを作ることができると思います。

エクセルは、それじゃたまご焼き、焼けないんです!

ところが、エクセルにはそんなことできません。

「ちょっとさ、エクセルちゃん、たまご焼き、焼いてくれない?」

エクセルのエラー

そうだよねぇ……君にはちょっと難しかったかな……

そう、エクセルは有能で高速で、すごいことができるように言われてますけど、

あなたには簡単にできることが、まったくできないのです。

じゃあどうやったら、エクセルにたまご焼きが焼けるか。

エクセルにたまご焼きを焼かせるには、こんなふうに指示するんです。

=フライパン(置く,コンロ(右側))

=コンロ(右側,火をつける)

=たまご(冷蔵庫,上の段,出す,1個)

=たまご(割る,フライパンの中)

=コンロ(右側,中火,30秒)

=コンロ(右側,弱火,止めるまで)

こんなふうに、「たまごの個数」から「コンロのどっち側」まで、手取り足取り指示しないと、エクセルって動かないんです。

実際のエクセルではこんな感じです

実際はこんな感じです。例えばこの問題。

関数を使う例題

(画像をタップすると拡大できます。戻るときは、ブラウザの「戻る」ボタンで戻って下さい)

エクセルなら、合計点のところをまとめてバッと判断して、合格・不合格を一気に表示できるんじゃない?

なんかそんな、まとめて一気にできる関数なかったっけ??

ほら、「たまご焼き、焼いといて!」みたいな!

といって、「範囲」が指定できるCOUNTIFとか、AVERAGEIFとか、そういった関数ばかり想像していると、この問題はいつまでたっても正解になりません。

実際にエクセルにやらせる作業は、もっともっと細かくて、

F4セルの「327」→280以上→G4セルは「合格」

F5セルの「265」→280未満→G5セルは「不合格」

・・・以下、いちばん下までくり返し

ということで、一個一個の合計点を、ちまちまちまちまちま……IF関数で判断していかなくちゃならないんです。

ということで、正解はこちらです。

問題の正解例

(画像をタップすると拡大できます。戻るときは、ブラウザの「戻る」ボタンで戻って下さい)

スポンサーリンク/Sponsored Link

「パッとたまご焼きを焼く関数」なんて、ないんです。

このように、

「たまご焼き焼いといて!」ってエクセルに伝えようとして、

「たまご焼きを焼く関数を必死で探す」

という「落とし穴」にはまってしまう人が、とても多いのです。

これは、パソコンスクールやテキストの「教え方」にも問題があります。

関数を使えるようになるために、「この関数はこういう関数だよ」ということばかり考えさせるレッスンが、とても多いのです。

すると、学んだ方は、

「エクセルには、作業ごとに適した関数が用意されていて、それを選べばいい」という大きな誤解をしてしまうことがあります。

エクセルにたまご焼きを作らせる、「考え方」を身に付けよう

このような誤解から抜け出す学習法を、別記事で詳しく解説しています。

【MOS対策のヒント】IF関数とか、COUNTIF関数とか、もう何がなんだか分からなくなっちゃった時の学習法

なんだか、勉強してもしても関数が使えるようにならない、という気がしている方は、ぜひご一読ください!

パソコン教室・キュリオステーション志木店からのお知らせ
レッスンはオンラインで受講できます

パソコン教室・キュリオステーション志木店では、オンラインでの在宅レッスンを実施しております。
教室の全コースがオンラインで受講可能。実際にインストラクターがご対応いたします。
1時間の無料体験レッスンはいつでも予約できます。詳しくは公式ページをご覧ください。

キュリオステーション志木店運営をフォローする
スポンサーリンク/Sponsored Link

コメント

  1. サンタロウ より:

    ご教授ありがとうございます。

    マクロの解説までありがとうございました。
    変更後のコードでは、シートがいくつ増えてもマクロは変更しないで対応できるのは
    ありがたいです。

    Excel2021以降では、FILTER関数があるのですね、
    残念ながら使用しているのは2019版です。

    お忙しい中、時間を取って頂いて感謝いたします。

    本当にありがとうございました。

  2. サンタロウ より:

    こんばんわ、

    いつもお世話になってます。

    エクセルの
    1番目のシートに一覧表を作成し、
    2番目、3番目、、、のシートにコピーして2番目からの一覧表は
    フィルターをかけて表示を変える場合、
    例えば
    1番目の一覧表には売上商品の列がり、
    2番目の表から売上商品の種類でフィルターをかけていく場合、
    (2番目の表はりんごで、3番目の表はみかんでフィルター、4番目はメロンで言った具合で整理している場合)

    もとの原本を修正して各シートに反映させたい場合に
    全てのシートのフィルターを解除して
    全てのシートを選択して1番目のシートを修正して全部のシートに修正を反映させてから
    又、2番目のシートから順番にフィルターをかえる作業がかなり手間なのですが、

    同じ列の場合の
    すべてのシートのフィルターができて、
    又、フィルターを解除する方法はマクロ以外ではあるのでしょうか?

    今はマクロの記録をとり、(フィルターをかける時と解除する時)
    そのマクロでしてますが、

    シートがふえるとうまくいかないことがあります。

    何かいい方法があればご教授お願いします。

    お忙しい中、ご迷惑おかけします。

    宜しくお願い致します。

    • こんにちは、コメントありがとうございます。
      ■複数シートのフィルターをひとつの操作で操作するには、マクロを使うしかありません。
      ■ただシートを増やしただけで、解除がうまくいかない場合は、記録したマクロに問題があると思います。
      同じ操作を規則的にすべてのシートに行う場合、記録したコードも全シートについて規則的な同じコードになると思いますが、操作にわずかに違いがあるとコードが乱れます。
      それを見つけて、手動で修正していただくとよいと思います。
      ■たとえフィルターがかかっていても、セルは消えておらず非表示になっているだけです。
      このため、全シートを「グループ化」して一気に編集すると、フィルターがかかったままで、データが修正できます。
      グループ化は、最初のシート見出しをクリック→Shiftキーを押しながら最後のシート見出しをクリック で行うことができます。
      ■記録をするとこういうマクロになると思いますが
      Sub フィルターかける()
       Sheets(“りんご”).Select
       ActiveSheet.Range(“$A$1:$B$4″).AutoFilter Field:=1, Criteria1:=”りんご”
       Sheets(“みかん”).Select
       ActiveSheet.Range(“$A$1:$B$4″).AutoFilter Field:=1, Criteria1:=”みかん”
       Sheets(“メロン”).Select
       ActiveSheet.Range(“$A$1:$B$4″).AutoFilter Field:=1, Criteria1:=”メロン”
       Sheets(“データ”).Select
      End Sub

      Sub フィルター解除()
       Sheets(“りんご”).Select
       ActiveSheet.ShowAllData
       Sheets(“みかん”).Select
       Range(“A1”).Select
       ActiveSheet.ShowAllData
       Sheets(“メロン”).Select
       Range(“A1”).Select
       ActiveSheet.ShowAllData
       Sheets(“データ”).Select
      End Sub

      例えば、いまの例では、シート名がそのまま絞り込むべき商品名になっています。こういう作り方をしておくと、コードは次のように短縮できます。
      Sub フィルターかける2()
      Dim sheet As Worksheet
      For Each sheet In Worksheets
       If Not (sheet Is Sheets(1)) Then
        sheet.Range(“A1”).CurrentRegion.AutoFilter 1, sheet.Name
        End If
      Next
        Sheets(“データ”).Select
      End Sub

      Sub フィルター解除2()
      Dim sheet As Worksheet
      For Each sheet In Worksheets
       If Not (sheet Is Sheets(1)) Then
        sheet.ShowAllData
        End If
      Next
        Sheets(“データ”).Select
      End Sub
      変更後のコードでは、シートがいくつ増えてもマクロは変更しないで対応できます。
      ■Excel2021以降では、FILTER関数を使うことで、マクロを使わずに対応できます。
      データは1シート目だけに置いておき、絞込みを行うシートには、FILTER関数だけを配置します。
      すると、修正じたいが1シート目のみで完結でき、他のシートは自動的に変更後のデータで絞込みが行われます。

タイトルとURLをコピーしました