[[20150616165529]] 『重複を除き左詰めにしたい』(ミンミン) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『重複を除き左詰めにしたい』(ミンミン)

 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.