2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

[Excel] 別のシートの同じ文字列のある行を引っ張って色々したい

Last updated at Posted at 2016-06-02

参考例:αチームとβチームのリストがあって、○×表とか作りたい

WS000.JPG

  • 左の表から右の表の○を表示させたい!というのがゴール
  • 今回の図は見やすいように、空白を作っていますが、実際のデータだと空白がないのが普通
  • 今回はαチーム、βチームの2種類しかないけど、これがだんだん増えてくると億劫

といったようなことが考えられるので、なんとか自動で右の図のように○を埋められないかなと画策する。

結果

WS001.JPG

セル色の説明

  • 青色:変数。
  • 薄緑色:関数で出しているセル

関数と説明

今回は2種類の関数を使って出しています。

3行目のB3

=SUBSTITUTE(ADDRESS(1,MATCH(B4,INDIRECT(B$1&"!"&B$2&":"&B$2),0),4),1,"")
  • Sheet1の「αチーム」がどの列なのかを割り出してます
  • 使ってる変数
    • B4 特定したいカラムの文字列
    • B1 対象となるシート名
    • B2 対象となる行
    • Sheet1の1行目で「αチーム」が何番目かを調べます
  • MATCH関数で、上で指定した行の中でどの列にあたるかを割り出します
  • SUBSTITUTE/ADDRESS関数で、数字からアルファベットに変換してます
  • Ctr+RしてもOK

5行目のB5

=IFERROR(IF(MATCH($A5,INDIRECT(B$1&"!"&B$3&":"&B$3),0)>0,"○",""),"")
  • 上で割り出した列の中に同じ名前が存在するかを割り出してます
  • 変数
    • A5 検索したい文字列
    • B1 検索の対象となるシート名
    • B3 検索の対象となる列
  • MATCH関数で名前(ここだとA列)と完全一致する行を割り出します
  • 数字があるなら存在するということで、IF関数で0より大きかったら"○"とします
  • 存在しない場合は#N/Aなので、IFERRORで空白表示処理をします
  • Ctr+RしてもOK
  • Ctr+DしてもOK
  • 応用
    • シートが同じなので省略したい
      • INDIRECT関数内「B$1&"!"&」を削除
    • 列番号を直接指定したい
      • 3行目の英数字に直接入力する
2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?