質問: excel 値が入っている左隣の文字を表示させるには、、 excel初心者です。 左の表から右のような表を作りたいのですが、 そのために、以下の動きをすればいいと思ってます。 1 c列に数字がはいっていたら、h列にその数字を詰めてもってきたい。 =iferror(index(c:c,small(if(c:c<>"",row(c:c)),row())),"") これは、↑の数式でうまくいきました。 2 c列に数字がはいっていたら、その左にあるa・b列の文章をf・g列に表示したい。 これの数式がわからないのですが、ぜひわかる方いましたら教えていただけないでしょうか? 八方塞がりで、困ってます。 そもそも、もっとシンプルでいい方法があるよって方いましたら、 教えていただけると助かります...!
回答: こんにちは! 横からお邪魔します。 補足の数式を拝見すると配列数式になっていますね。 そのまま配列数式にしてみました。 尚、どこのセルに入力しても大丈夫です。 表示したいセルに =iferror(index(b$1:b$1000,small(if($c$1:$c$1000<>"",row($b$1:$b$1000)),row(a1))),"") 前述のように配列数式なので、ctrl+shift+enterで確定!(←必須★)し フィルハンドルで列・行方向にコピーしてみてください。 ※ c列の1~3行目に項目などがあるとそれも表示されてしまいます。 画像通り4行目以降にデータがあり、それ以降を範囲指定したい場合は =iferror(index(b$4:b$1000,small(if($c$4:$c$1000<>"",row($b$4:$b$1000)-3),row(a1))),"") (配列数式の操作必要です) にしてみてください。 ※ 余談ですが、数式内の「row(a1)」の部分は「small関数」の「順位」の部分にあたりますので 必ず「1」からにする必要があります。 ※ 配列数式はpcに大変負担をかけ、範囲が広すぎると極端に計算速度が落ちます。 すなわち、列全体などは範囲指定しないことをおススメします。 上記数式は1000行程度の範囲にしています。 範囲は実情に合わせて広げてみてください。m(_ _)m