小技集

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



2024年10月18日【ID:0】

メンバー限定

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

※IT予備メンバーに加入して連携すると、
一部の広告が非表示になります。


以下のように、軸の異なる表を数式で作成する方法について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」というエラーになりますが、エラー対策に関しては、後に解説します。

ExcelVBAレベル確認

次に、該当する位置に存在する担当(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予備-連携]で連携できます


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

※IT予備メンバーに加入して連携すると、
一部の広告が非表示になります。


メンバー募集 メンバー募集





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

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


- 人気の記事 -



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



サイト累計閲覧数

7153359

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

Excel完全制覇


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

【Excel】複数の目標値を自動で計算「ソルバー」

【Excel】絞り込み作業の効率化「スライサー」

【Excel】グラフを一瞬で作成する方法

【Excel】入力値に応じて入力必須項目を変更

【Excel】カテゴリー単位の連番を自動表示

【Excel】スピルを活用して品名単位で数量を集計

【Excel】一部が結合されている表から特定の値を数式で抽出

【Excel】XLOOKUP関数で指定した複数項目を抽出

【Excel】空白演算子でマトリックス表から値抽出

【Windows】隠し機能「GodMode」の作成方法

【Excel】実は数式内にコメントを残せます

【Excel】指定日以降でないと入力できない設定

【Excel】ピボットテーブルで集計値の大きい順にする

【Excel】表の順番をランダムに並べ替える

【Excel】文字列の数字を一括で数値にする

【Excel】セル参照や数式に名前を付ける「LET関数」

【Excel】覚えるべき「日付を求める関数」2選

【Excel】セル内の特定の文字の数を求める

【ExcelVBA】更新履歴を自動で入力

【Excel】FILTER関数で必要な項目のみを抽出

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

【Excel】文字列を並べ替えた時の順番

【ExcelVBA】複数フォルダを一括作成

【Excel】同じ形式のグラフを作成

【ExcelVBA】VBAを使ってシートの初期設定を自動化





一覧ページへ

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