範囲内に文字があればその文字や行を返す
使用する関数:SORT、MATCH、INDIRECT
SORT関数を使う場合
セル)F5
=SORT(
B1:C30)
引数を指定しないとB列(1列目)の昇順に並び変わります
C列の昇順で並び替えたい場合
セル)F5
=SORT(
B1:C30,
2,
TRUE)
指定した
範囲の
2列目を
昇順で並び替え
C列の降順で並び替えたい場合
セル)F5
=SORT(
B1:C30,
2,
FALSE)
指定した
範囲の
2列目を
降順で並び替え
MATCH関数とINDIRECT関数を使う場合
B列に何か入力されたらその文字列を呼び出す
=INDIRECT(
"B"&MATCH(
"*",
B:B,0))
B列に
何か入力された場合
B列の1番上の入力されたセルを呼び出しています
B列に何か入力されたらB列からE列までの行を呼び出す
=INDIRECT(
"B"&MATCH(
"*",
B:B,0))
:INDIRECT(
"E"& MATCH(
"*",
B:B,0))
B列に
何か入力された場合
B列からE列の同じ行を呼び出しています
応用:B列に何か入力されたらその横に表示された文字列を抽出
セル)G3
=INDIRECT(
"C"&MATCH(
"*",
B:B,0))
:INDIRECT(
"E"& MATCH(
"*",
B:B,0))
B列に
何か入力された場合
C列からE列を呼び出しています
範囲指定でセルを右側に展開しているので、TRANSPOSE関数の中に入れることで、右に展開しているセルを縦(下)に展開することができます
=TRANSPOSE(INDIRECT("C"&MATCH("*",B:B,0)):INDIRECT("E"& MATCH("*",B:B,0)))
上記の方法だと列から検索しているので1つしか抽出できません
2個目以上を抽出する場合は列指定(
B:B)ではなく範囲(
B3:B20)を指定します
セル)G3:1つのセルを抽出
=INDIRECT("C"&MATCH("*",B3:B20,0)+2)
セル)G4:1つ目を抽出
セル)G5:2つ目を抽出