• ベストアンサー

条件付き文字列の表示方法を教えてください

教えてください。量が多いので困っています。 エクセルでA列に○がついている行が複数ある場合、○に対応したB列の文字列を指定したセルに表示させる方法を教えてください。 どうぞよろしくお願いします。

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

  • ベストアンサー
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.5

少しわかりにくいですね >A列に○がついている行 とは「A列に『○』1文字が入力されている」のですか? それとも「『○あいう』のように文字列の先頭に『○』がついている」のですか? また >○に対応したB列の文字列 は「A列に『○』が入力されている行のB列の値」という意味でよいですか? A列にオートフィルタをかけて、オプションで「○から始まる」条件にすれば目的のリストは得られます。 関数でやりたければ、A列に入力された値の「先頭1文字」が「○」である行のB列の値だけを取り出す式は以下になります。 同じシートの適当なセルに貼り付けて下方向にコピーしてください (2カ所あるA$1:A$100の範囲指定は実際のデータにあわせて変更が必要です) =INDEX(B:B,SMALL(INDEX(SUBSTITUTE((LEFT(A$1:A$100,1)="○")*1,0,10^5)*ROW(A$1:A$100),),ROW(Z1))) この式では「○」の個数以上にセルをコピーすると#REF!エラーになります。エラーを回避するには以下のようにIF文を追加します =IF(COUNTIF(A:A,"○*")>=ROW(Z1),INDEX(B:B,SMALL(INDEX(SUBSTITUTE((LEFT(A$1:A$100,1)="○")*1,0,10^5)*ROW(A$1:A$100),),ROW(Z1))),"")

noname#262462
質問者

お礼

時間がかかりましたがやっとできました。 大変便利になりました。 ありがとうございます。

noname#262462
質問者

補足

A列には「○」1文字の入力です。 また、A列の○が入力されている行のB列の文字です。 今からトライしてみます。 ありがとうございました。

その他の回答 (4)

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.4

次の方法は如何でしょうか。 任意セルに=IF(COUNTIF(A:A,"○")>ROW(A1)-1,INDEX(B:B,SMALL(IF($A$1:$A$1000="○",ROW($A$1:$A$1000),99999),ROW(A1))),"")入力して下方向にコピーして下さい。 尚、配列数式の為、入力完了時にshift+ctrl+enterキーを同時押下して下さい。

noname#262462
質問者

お礼

ありがとうございました。 やってみましたが、違う行の文字列が出てきました。 もう少し努力してみます。

  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.3

ANo.2 です。 取り消し 思い違いです。 うまくいきませんね。ごめんなさい。

  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.2

表をオートフィルタか、リストにして、○のついた行を抽出し、目的の場所にコピー/ペーストする。 オートフィルタ データ―フィルタ―オートフィルタ にチェック

  • DIooggooID
  • ベストアンサー率27% (1730/6405)
回答No.1

A列に○がついている行が複数あり、それに対応したB列の内容を指定したセルに表示するというご要望ですが、指定されているセルは、○の数に相当する分のセルが存在しているのでしょうか。

noname#262462
質問者

補足

その通りです。○の数の分のセルを用意しています。 よろしくお願いします。

関連するQ&A