小技集

トップ > 小技集 > 記事
小技集一覧へ
限定コンテンツ一覧へ



2024年10月18日【ID:0】

メンバー限定

【Excel】軸の異なる表を瞬時に作成


以下のように、軸の異なる表を数式で作成する方法について2通り解説していきます。

こちらでは、「担当(A、B、C)と曜日別に担当者(田中、斎藤、井上、村上)を表した表」を元に、「担当者と曜日別に担当を表した表」に数式で抽出してきます。


方法1

1つ目の方法は、INDEX関数とMATCH関数を組み合わせた抽出方法になります。

まずは、以下のように、抽出先の表の見出しのみを用意します。

では、抽出先の表の左上のセルC8から該当する担当を抽出していきます。

抽出方法は、該当する担当者(田中)が存在するのかどうかを判断し、存在する場合は、該当する曜日(月)の上から何番目に位置するのかを取得し、その行の担当(C)を抽出するという方法になります。

何番目に位置するのかを取得するには、MATCH関数を活用します。
この関数の使い方は、以下になります。

=MATCH(検査値, 検査範囲, [照合の種類])
// 検査値:検索対象の文字
// 検査範囲:検索対象の範囲
// [照合の種類]:検索方法(0:完全一致、1:以下、-1:以上)
// ※[照合の種類]を省略した場合は、「1:以下」が指定される

この関数を用いて、セルC8に対し、該当する担当者(田中)が同じ曜日(月)に存在する位置情報(3)を取得します。
取得する際の数式は、以下になります。

=MATCH($B8,C$3:C$5,0)
// $B8:検査する担当者のセル(数式を他の列にコピーした際にも位置が移動しないように、B列のみを「$」で固定)
// C$3:C$5:検査範囲(数式を他の行にコピーした際にも位置が移動しないように、3と5の行番号のみを「$」で固定)
// 0:検査値が検査範囲で完全一致する位置の情報を取得

これだけで、以下のように該当する担当者が存在する場合は、位置情報を取得することができます。

存在しない場合は、「#N/A」というエラーになりますが、エラー対策に関しては、後に解説します。


次に、該当する位置に存在する担当(A、B、C)を抽出していきます。
指定した範囲の○番目のデータを抽出する際は、INDEX関数を活用します。
この関数の使い方は、以下になります。

=INDEX(配列, 行番号, [列番号])
// 配列:対象の範囲
// 行番号:対象の範囲の何行目のデータを抽出するのかを指定
// [列番号]:対象の範囲の何列目のデータを抽出するのかを指定
// ※配列に指定した範囲が1列の場合は[列番号]を省略できる

実際に先ほどのMATCH関数に、INDEX関数を以下のように組み合わせます。

=INDEX($B$3:$B$5,MATCH($B8,C$3:C$5,0))
// $B$3:$B$5:抽出対象の範囲(他のセルにコピーした際にも位置が移動しないように「$」で固定)
// MATCH($B8,C$3:C$5,0):抽出対象の範囲から抽出する位置情報(行番号)

これだけで、以下のように該当する担当を抽出することができます。


ただ、この数式ですと、他のセルにコピーした際に該当する担当が存在しない場合に、以下のようにエラーになってしまいます。

そのため、先ほどの数式にエラー対策を行います。
エラーになった場合に何も表示しないという設定を行う場合は、IFERROR関数を組み合わせます。
この関数の使い方は、以下になります。

=IFERROR(値, エラーの場合の値)
// 値:エラーを検証する値
// エラーの場合の値:値がエラーの時に表示する値

実際に先ほどの数式に組み合わせると、以下のようになります。

=IFERROR(INDEX($B$3:$B$5,MATCH($B8,C$3:C$5,0)),"")
// INDEX(…):エラーを検証する値
// "":エラーの時に表示する値(空)

この数式を他のセルにコピーすることで、以下のように、全ての担当を抽出することができます。


方法2(Excel2021以降対応)

2つ目の方法は、1つ目に比べて短い数式で抽出することができます。
ただ、こちらの方法は、Excelのバージョンが2021以降、もしくは365でないと対応していません。

では、その方法について解説していきます。


続きはIT予備メンバー限定です。

メンバー限定コンテンツになります。




IT予備メンバーページと連携することで内容を確認することができます。

メンバーとは


すでにメンバーの方は、
ログインして連携してから、こちらを更新すると閲覧できます。
※連携しても確認ができない場合は、少し時間を置いてご確認ください。

ログイン(新しいタブ)
※[ログイン]→[設定]→[IT予備-連携]で連携できます


パソコンで開く場合は、記事の最後に「リンクコピー」があるためご活用ください。


メンバー募集
ExcelVBA学習ロードマップ配布 ExcelVBA学習ロードマップ配布





リンクの共有はこちらから行えます。

  リンクコピー Twitter Facebook はてなブックマーク Pocket
トップ > 小技集 > 記事
小技集一覧へ
限定コンテンツ一覧へ


- 人気の記事 -



- メンバー限定 [一覧] -



サイト累計閲覧数

5353670

有料動画講座
(買い切り)

Excel完全制覇


ちょっとした機能 便利ツール
【小技集】

【Excel】完全にランダムでチーム分け

【Excel】FILTER関数で空白を空白のまま抽出する

【Excel】指定したセルを別のセルの間に移動する

【Excel】存在しているシートのみ目次にリンクを表示

【Excel・Word】同じ図形を繰り返し作成する

【Excel】入力確定後の移動先

【Excel】オートフィルのちょっとした小技

【Excel】条件を満たしたセルに連番を入力

【Excel】フィルターで瞬時に絞り混むショートカット

【Excel】日付と曜日を表示形式で改行して表示する

【Excel】FILTER関数で存在しない場合に好みのデータを表示

【Excel】2重の円グラフ(詳細と小計)を作成

【Excel】区切られた文字列から文字を抽出

【Excel】セル単位でパスワードを設定する

【Excel】表に自動で罫線を設定(カテゴリー別の罫線も設定)

【Excel】数式の引数で効率的に複数範囲選択

【Excel】累計を瞬時に求める

【ExcelVBA】各要素のデータ行を自動で挿入

【Excel】表の最終行を選択するリンクを作成

【ExcelVBA】自動で書類の発行日とお支払い期限を設定

【Excel】複数選択時のミスを無くす方法

【Excel】XLOOKUP関数でスピルを活用

【Excel】生年月日から年齢を瞬時に求める

【Excel】表示されているセルのみ集計

【Excel】SORT(BY)関数で複数列を基準にして並べ替える





一覧ページへ

トップ > 小技集 > 記事
小技集一覧へ
限定コンテンツ一覧へ

メンバーに加入すると多くの特典が得られます

・全作品ダウンロード
・コンテンツ閲覧管理
・チャットサポート

 メンバー募集は
こちら 


※メンバーページと連携すると表示されなくなります