- ベストアンサー
エクセルで任意の文字を抽出してその列の全ての文字を並べる方法
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは! 参考になるかどうか判りませんが・・・ 強引な方法になります。 ↓の画像のように作業用の表を使わせてもらっています。 作業用の表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)
作業列(E列)を使用する方法です E2へ =countif(B2:D2,"赤")*100+countif(B2:D2,"青")*10+countif(B2:D2,"白")*1 E5までコピーします すると下記のようになると思うので 赤赤青=210 赤青青=120 白白白=3 白赤白=103 E列をキーに並び替えを行います 参考まで
- MackyNo1
- ベストアンサー率53% (1521/2850)
列と行が反対になっているように思いますが、AからC列に含まれる「赤」の文字の個数が多い順に並べ替えたいという意味なら、補助列に以下の式を入力し、下方向にオートフィルし、この列を基準に並べ替えます。 =COUNTIF(A2:C2,"赤") AからC列に「赤」の含まれる行だけ抽出したい場合は、数式を使ったフィルタオプションの設定を利用します。 たとえば、F2セルに「=COUNTIF(A2:C2,"赤")>0」と入力し、「データ」「フィルタ」フィルタオプションの設定」でリスト範囲にAからC列、検索条件範囲に「F1:F2」としてOKしてみてください(他の部分に抽出データを表示したいときは抽出先を指定)。