[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『重複を除き左詰めにしたい』(ミンミン)
A B C D E
1 りんご レモン メロン (空白) レモン
2 もも もも (空白) (空白) レモン
↓
◆結果
F G H
1 りんご レモン メロン
2 もも レモン
上記のように、1行ごとに重複するセルを除き、空白を削除し左詰めにしたいです。
F1〜に入力する数式を教えていただけないでしょうか。
(データが変わったりするので、できれば数式で解決したいです)
すみませんが、よろしくお願いいたします。
< 使用 Excel:Excel2010、使用 OS:Windows7 >
F1 =IFERROR(INDEX(1:1,SMALL(IF($A1:$E1<>"",IF(MATCH($A1:$E1,$A1:$E1,0)=COLUMN($A1:$E1),COLUMN($A1:$E1))),COLUMN(A1))),"")
配列数式なんで【CtrlキーとShiftキーを押しながらEnter】で確定っす。 その後、右と下コピー。
実際の配置がどうなってるのかわかんないけど、 とりあえず提示の例題でできることを確めてちょ。 (帰って来た名無しのおっさん) 2015/06/16(火) 17:56
ホントに5列ぐらいなら、こっちの方がまだわかりやすいねw
F1 =IFERROR(INDEX(1:1,SMALL(IF($A1:$E1<>"",IF(MATCH($A1:$E1,$A1:$E1,0)={1,2,3,4,5},COLUMN($A1:$E1))),COLUMN(A1))),"")
Ctrl+Shift+Enterで確定っす。
A列から始まってなくても最後の COLUMN(A1) はそのままにしておいてちょw (帰って来た名無しのおっさん) 2015/06/16(火) 20:51
ありがとうございます!
提示の例題ではこれでできました。(なぜできるのかはわからないですが・・・^^;
ただ、実際の配置はEN列ぐらいから始まるのです・・・。(それまでは違うデータが入っています)
今のものだと、列番号を参照しているため、1列目から始まらないといけない気がしますが、
解決方法はありますでしょうか。。。
ちなみに、行数は300ぐらいあります。
このトピックスに関しては解決なのですが・・・すみません。
もしできれば、、よろしくお願いいたします。
(ミンミン) 2015/06/17(水) 15:52
帰って来た名無しのおっさんさん に一つ目に作っていただいたこれを応用して、
F1 =IFERROR(INDEX(1:1,SMALL(IF($A1:$E1<>"",IF(MATCH($A1:$E1,$A1:$E1,0)=COLUMN($A1:$E1),COLUMN($A1:$E1))),COLUMN(A1))),"")
1列ずらし、B1から始まるとして、
F1 =IFERROR(INDEX($B1:$F1,SMALL(IF($B1:$F1<>"",IF(MATCH($B1:$F1,$B1:$F1,0)=COLUMN($B1:$F1)-1,COLUMN($B1:$F1)-1)),COLUMN(B1)-1)),"")
としたら出来ました。
帰って来た名無しのおっさんさん、本当に助かりました!
自分では絶対に作れませんでした。
ありがとうございました!!!
(ミンミン) 2015/06/17(水) 17:04
解決した式はB列からになってるけど、EN列から始まってるって話はどこ行ったの?
参考までにEN列から始まってるってことで。
元データがEN〜ET列までの7列で、2行目から始まってるとして。
EU2 =IFERROR(INDEX(2:2,SMALL(IF($EN2:$ET2<>"",IF(MATCH($EN2:$ET2,$EN2:$ET2,0)={1,2,3,4,5,6,7},COLUMN($EN2:$ET2))),COLUMN(A2))),"")
引き算しなくてもできるよん(Ctrl+Shift+Enterで確定ね) (帰って来た名無しのおっさん) 2015/06/18(木) 07:36
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.