プロが教える店舗&オフィスのセキュリティ対策術

どなたか下記の作業を関数でする方法を教えてください。

    A列 l B列
1行  先生  123
2   田中  123
3       123     
4       126  
5   先生  127 
6   吉田  127  

上記のようにデータを
希望としてはB列の同じ番号に対してA列の情報をC列の様に全てに反映したいと思っています。

    A列 l B列 l C列
1行  先生  123  田中
2   田中  123  田中
3       123  田中  
4       126  
5   先生  127  吉田
6   吉田  127  吉田  
※「先生」という言葉は必ず同じ番号の先頭に入ります。

自分で関数を組むと最低でも2列分関数を挟んでやっとたどり着く結果です。。。
上記の様に可能であればC列に結果がでるのが理想です。。
どなたかご教示お願いいたします。

質問者からの補足コメント

  • 先程別の質問にて教えて頂いた関数をいじってみたら、求める答えが出せたのですがゼロが邪魔です、、、
    やっぱり間違ってるのでしょうか?(´;Д;`)

    「どなたか下記の作業を関数でする方法を教え」の補足画像1
      補足日時:2021/06/20 15:54
  • 気に留めて頂きありがとうございます。
    インラインにて回答致します。

    確認させてください。
    1.番号は昇順に並んでいる。
    →はい。その通りです。
    2.3個以上の同番号は存在しない。
    →3個以上ある同番号は存在します。
     上限は場合によるので分からないです。。
     すいません。。
    3.「先生」の直下は同番号の名前である。
    →はい。その通りです。

    上記は全て正しいですか?

      補足日時:2021/06/20 16:03

A 回答 (2件)

確認させてください。


1.番号は昇順に並んでいる。
2.3個以上の同番号は存在しない。
3.「先生」の直下は同番号の名前である。
上記は全て正しいですか?
    • good
    • 0

AGGREGATE関数は初経験だと感動なさっていましたね。


そこで0が発生した場合、
あなたはどうすればいいのでしょうか?
1 自分で0を非表示または空白に置き換えるようにあれこれ調べる。
2 すぐに再質問する。

すぐに頼ろうとするのではなく、AGGREGATE関数を十分学習してみましょう。
0を表示しないようにできないか。
できないとすれば、どこで0を空白(””)に置き換えればいいのか。

それでも分からないときは、
どのような試行錯誤をしたけれどもできなかったと過程を説明して、
再質問しましょう。
    • good
    • 1
この回答へのお礼

ありがとうございます!!
仰っていただいた通り試行錯誤を行った結果
下記の関数で希望の結果が出てきました!!

「=IFERROR(INDEX(A:A,AGGREGATE(15,6,ROW(B:B)/(B:B=B1)/(A:A<>"先生")/(A:A<>""),1)),"")」

いやぁ~関数ってやっぱり楽しいですね^^
ありごとうございました!!

お礼日時:2021/06/20 16:10

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!