Excelの関数を使ったデータ比較法!INDIRECTとMATCHを活用する!

スポンサードリンク

最新データと一週間前のデータにどんな違いがあるのか比較してチェックしたい!

でも、ひとつひとつデータを見ていくのは大変なんだよな~というお悩みはありませんか?

日々新しくなるデータをチェックしなければならないときなど、何度も同じ作業を実施せねばならず、無駄な作業に思えてしまいますよね。

今回はこのデータ比較作業を効率よく行い、ささっと片付けてしまう方法を紹介していきます!

今回の問題、どう対処しましょう?

この問題、ExcelのCOUNTIFとINDIRECT、MATCH関数を使うと簡単に処理できるんですよ。

データのを効率よく行いたいあなた!

是非この方法を参考にしてみてくださいね。

このページの中では、今回紹介するCOUNTIF関数、INDIRECT関数とMATCH関数を組み込んだExcelファイルをダウンロードできるようにしています。

これを使えば、一からExcelを作り込む必要もありませんよ。ファイルを手にした瞬間、作業スピードは一気に早まります!是非使ってみてくださいね。

では本編スタートです!

スポンサードリンク

『データ比較を簡単に手早く実施する』には?まずは問題を整理しよう!

今回解決するのは古いデータと新しいデータを比較するという作業を手軽に間違いなく終わらせたいというものですね。今回は、ランキングデータの変化を調べるという具体的な問題に置き換えて問題を解決していきます。使うランキングデータはOriconのシングルCDのデイリーランキングにします。このデータは、関連記事で紹介したマクロ(VBA)で自動で取得できますので、Webデータから自動でデータ取得する方法が気になった方は、こちらの記事も読んでみてくださいね。

関連記事

さて、CDシングルランキングの上下や、新しくランクインしたデータや、消え去ったデータを調べようと思った場合には、

  • 前回のランキングを整理
  • 今回のデータに順位付け
  • 今回と前回のランキングと比べ、各楽曲のランクの上下を判断
  • 前回のランキングに一致するデータがなければ新しくランクインした楽曲と判断
  • 新しいランキングに入っていない前回データはランキング外に落ちたものと判断

という手順をとるのが普通なのではないでしょうか。一つひとつの作業はさほど難しいものではありませんよね。しかし、作業を組み合わせて行わないといけませんし、この作業を必要な数だけ繰り返さなければいけません。間違ったり見落としたりしないようにと考えると集中も必要。これが大変なんですよね~。

この手順をExcelで自動化してしまいましょう!

『データ比較を簡単に手早く実施する』方針をチェック!

ここでは、データを比較する作業をExcelに実施させるためにはどうすればよいかをみていきます。
一つひとつ手作業で行うには、上で書いたこの作業を手作業で行うには、

  • 前回のランキングを整理
  • 今回のデータに順位付け
  • 今回と前回のランキングと比べ、各楽曲のランクの上下を判断
  • 前回のランキングに一致するデータがなければ新しくランクインした楽曲と判断
  • 新しいランキングに入っていない前回データはランキング外に落ちたものと判断

という手作業が必要でしたよね?今回はこの手順をExcelの関数をつかって自動で行っていくことにしましょう。Excelには、この作業を行うのに適した関数がありますので、これを組み合わせて使います。

まず、使用する関数を紹介しますね。

今回は、MATCH関数を使用します。この関数は指定したデータ(検査値)が選択した範囲(検査範囲)の中でどの位置にあるかを教えてくれるもの。

MATCH(検査値、検索範囲、照合の種類)

という形式で使用します。照合の種類には、0か1か-1を入力します。0と入力した場合には、指定したデータと完全に一致する位置がが計算されます。1、-1は完全一致ではありませんが、それぞれ指定した値以下の最大値、指定した値以上の最小値が計算されます。今回は、完全一致を使うのが最も問題に適していますので、照合の種類は0にします。

 

検索値、検索の範囲は、Excelのセルを普通に選択しても良いのですが、次回Excelを使用するときには、データの数を変更したり、データを記述する場所を変えた方がよいという場合があるかもしれません。このようなときに、また関数を記述していくのは面倒ですし、手間ですので、が比較したいデータの数や、記載するデータの記述位置が変わっても関数の記述を変えなくて済むよう、もう一つ関数を組み合わせます。組み合わせる関数は、INDIRECT。この関数は、A1、B2など、セルを指定する文字列を使って、指定したセルに入った値を返します。使い方は次の通りです。

INDIRECT(参照文字列、参照形式)

参照文字列に、A1やB2なども入力します。ここで、セルの指定の方法には2種あることを覚えてみてください。左記のようにA1、B2と書く形式がA1形式と呼ばれる形式。もう一つはセルが何行目、何列目のものかと表すR1C1形式です。Rは行を表すRowの頭文字、Cは列を表すColumnの略。これを知っていれば覚えるのも簡単。

今回はA1形式でINDIRECTを使っているので参照形式にはTRUEと書きます。もちろんR1C1形式で使いたい場合には、文字列をR1C1で指定し、参照形式はFalseに変更してください。

 

最後に紹介するのがCOUNTIF関数。データの数を数えるCOUNT関数はよく使うよという方もおられることでしょう。実はCOUNTIFもCOUNT関数によく似たもので使い方を知っていると、わざわざ条件分岐のためにVBA(マクロ)を書くこともいりませんので便利ですよ。このCOUNTIF、関数名にIFとついているように、条件が合うデータの数だけを数えてくれます。使い方は次の通りです。

COUNTIF(範囲、検索条件)

のように書きます。範囲の設定はCOUNT関数と同じ。データ数を数えたい範囲を指定します。検索条件には、検索する文字列や数字を書きます。このとき「=」や「<>」はいりませんよ。

以上であなたは3つの関数の使い方をマスターできました。つづいてこれらを組み合わせて今回の問題に対処していきますよ!

 

『データ比較を簡単に手早く実施する』課題をExcelで解決!

ではデータ比較を簡単に手早く実施するという課題を解決する、具体的な関数の記述をみていきましょうね!

この記事で取り扱うランキングの比較では、今回のランキングを基準にデータをみていきますので、新しくランクインしたデータであれば前回の順位がありません。前回ランクインしていたかどうかを調べるために、COUNTIFを使います。下の例ですと、D8セルのの計算に使います。あ、D8とセルを指定するのはA1形式でしたね!覚えてます?

また、データ数やデータ記載場所が変わったら、この変更に耐えられるように、B2、B3、B4にどこにデータがあるかを指定するデータを入力するようにし、このデータをINDIRECT関数を使って使用します。具体的にはCOUNTIFの範囲の指定箇所に使います。

ランキング比較

D4セルに、

COUNTIF(INDIRECT(B$2&B$3,TRUE):INDIRECT(B$2&B$4,TRUE),C8)

と書くと、B2とB3をつなげた文字列、B2とB4 をつなげた文字列で指示したA8:A27がデータ数を数える範囲となり、この中からC8の値「アンビバレント」と一致する条件のデータ数を数えてくれます。

この関数からは、前回のランキングに「アンビバレント」があれば、この数は1となり0より大きな数字となり、前回のランキングに入っていなければ0という値が返ってきますね。これを利用して、初めてランクインしたのか、前回のランキングに入っていたのかが判定できます。D4セルでは、これをIF分の分岐の条件に使っていて、0が返ってきたときには「ー」と表示するようにしています。

逆に、1が返って来たときには、前回のランキングを求めています。

ここに、MATCH関数を活用。

MATCH(C8,INDIRECT(B$2&B$3,TRUE):INDIRECT(B$2&B$4,TRUE),0)

と書き、上記と同じようにデータが入ったセルが変わっても対応できるようにINDIRECT関数を使って検査値、検索範囲を指定、照合の種類を0と指定します。こうすると、検索範囲A8:A27の中から、「アンビバレント」という文字列が入ったセルを検索し、指定した範囲の何番目のデータなのかが返ってきます。「アンビバレント」はA11セル、A8:A27の範囲の中の4番目のデータですので、4という数字になります。

今回のランキングを求めるのは、前回のランキングを求める場合よりもシンプル。対象データが入ったセルの行番号をROW関数で求め、1位のデータが入ったセルが1となるように調整します。

上の図で示した例では、前回、今回のランキングデータを使って、ランキングの上下を表示しています。ここは単純にIF関数を使って条件分岐で対応しています。セルの色が異なっているのは、条件付き書式を設定しているためです。これを使えば毎度セルの色を変更する手間も防げますし、データの動きをよりはっきりと認識することができますよ。

条件付き書式の使い方の一例は、関連記事に書いていますので、気になった方はこちらもチェックしてみてください。

関連記事

まとめ

今回は、『データ比較を簡単に手早く実施する』という課題をExcelの関数をつかって自動化し、作業を効率化する方法を紹介しました。CDシングルの週間ランキングの分析を例にとった場合、

・前回のランキングを整理
・今回のデータに順位付け
・今回と前回のランキングと比べ、各楽曲のランクの上下を判断
・前回のランキングに一致するデータがなければ新しくランクインした楽曲と判断
・新しいランキングに入っていない前回データはランキング外に落ちたものと判断

という手作業を、

・COUNTIF関数の活用
・INDIRECT関数の活用
・MATCH関数の活用

で、手をかけずExcelに分析させるところがポイントです。

 

ある機能をExcelで実現するとき、その方法は一つだけとは限りません。

ExcelVBAで使用できる機能をフルに使ってシンプルに作ることもできます。ただこれにはそれなりの勉強が必要。すぐには使えず、今すぐ問題を解決したいとい状況にはあいません。ですので、このブログで紹介するのは、できるだけ簡単なもの、手を加えやすいものになるように心がけています。

マクロや関数って難しそう、と敬遠していた方にマクロや関数って意外とお手軽ね!と感じていただき、これを応用すればあの作業も自動化できるかも!と次のステップやアクションにつなげていただければと思います。

Excelのスキルを一気に向上させて、ライバルに差をつけたい、仕事を一気にさばいてスピードアップしたい、スキルを身に着けて転職や就職に役立てたいと思ったあなた!ぜひ下のボタンをクリックしてください!
締切が迫っているので期間限定で「短期間で実力の向上が見込めるお手頃な方法」を紹介していますよ。

ホントは管理人Goも早く知りたかった!オンラインブートキャンプで、
見やすいデータをより早く仕上げる Excel術をマスターしよう!

『データ比較を簡単に手早く実施する』Excelサンプルをプレゼント

今回紹介した

・COUNTIF関数
・INDIRECT関数
・MATCH関数

を使って実際に『データ比較を簡単に手早く実施する』という機能をもたせたExcelファイルが下からダウンロードできます。

このファイルをダウンロードして、実際に動かしてみたり、あなたの課題にあわせてExcelを調整して作業時間短縮、効率化に役立ててみてください!

 

この記事が気に入ったら
いいね!しよう

最新情報をお届けします

Twitter でExcel GO! GO!をフォローしよう!

スポンサードリンク

関連記事

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

話題をチェック!

  1. 2018-11-1

    Excelマクロ(VBA)で複数のシート上のグラフに同一の処理を行うには?

    Excelファイル内に複数のシートがあり、この中にグラフがいくつも入っているとします。 これら…
  2. 2018-9-30

    Excelの関数を使ったデータ比較法!INDIRECTとMATCHを活用する!

    最新データと一週間前のデータにどんな違いがあるのか比較してチェックしたい! でも、ひとつひとつ…
  3. 2018-7-16

    Excel マクロ(VBA)でグラフ(散布図)を大量自動作成!

    Excelはグラフを簡単につくれるのも魅力ですが、つくらなければいけないグラフが多いと、この作業も大…
ページ上部へ戻る