• ベストアンサー

エクセルで任意の文字を抽出してその列の全ての文字を並べる方法

エクセルの1列に赤 青 青といった感じに3行のセルに文字があり 2.4列目に赤が混じっていて、3列目には白 白 白で赤がない場合に、 赤がある列だけを判別して並べる方法ってありますか? 例えば、いま1・2・3・4列と昇降してますが 赤が3列目にはないので、1・2・4・3と並べるように文字判別して列を並び替えることできますか?

質問者が選んだベストアンサー

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんばんは! 参考になるかどうか判りませんが・・・ 強引な方法になります。 ↓の画像のように作業用の表を使わせてもらっています。 作業用の表K2セルに =IF(B2="赤",100/COLUMN(A1),0) という数式を入れ、M2セルまでオートフィルでコピーします。 N2セルは単純に合計していますので =SUM(K2:M2) という数式です。 K2~N2セルを範囲指定し、N2セルのフィルハンドルでオートフィルで下へコピーします。 最後に、この表を利用して F2セルに =INDEX(A$2:A$5,MATCH(LARGE($N$2:$N$5,ROW(A1)),$N$2:$N$5,0)) という数式を入れ、列方向と行方向にオートフィルでコピーすると 画像のような感じになります。 尚、元データの同じ列に「赤」がありその個数も同じ場合は 正確なデータを表示できないと思います。 (作業用の表の合計値が同じものがある場合等・・・) 以上、長々と書きましたが 他に良い方法があったり、 的外れなら読み流してくださいね。m(__)m

その他の回答 (2)

  • hige_082
  • ベストアンサー率50% (379/747)
回答No.3

作業列(E列)を使用する方法です E2へ =countif(B2:D2,"赤")*100+countif(B2:D2,"青")*10+countif(B2:D2,"白")*1 E5までコピーします すると下記のようになると思うので 赤赤青=210 赤青青=120 白白白=3 白赤白=103 E列をキーに並び替えを行います 参考まで

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.1

列と行が反対になっているように思いますが、AからC列に含まれる「赤」の文字の個数が多い順に並べ替えたいという意味なら、補助列に以下の式を入力し、下方向にオートフィルし、この列を基準に並べ替えます。 =COUNTIF(A2:C2,"赤") AからC列に「赤」の含まれる行だけ抽出したい場合は、数式を使ったフィルタオプションの設定を利用します。 たとえば、F2セルに「=COUNTIF(A2:C2,"赤")>0」と入力し、「データ」「フィルタ」フィルタオプションの設定」でリスト範囲にAからC列、検索条件範囲に「F1:F2」としてOKしてみてください(他の部分に抽出データを表示したいときは抽出先を指定)。

関連するQ&A