【最大10000ポイント】当たる!!質問投稿キャンペーン!

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

A 回答 (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))),"")

この回答への補足

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

補足日時:2008/02/21 12:14
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/02/21 15:53

次の方法は如何でしょうか。


任意セルに=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キーを同時押下して下さい。
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/02/21 12:22

ANo.2


です。

取り消し

思い違いです。
うまくいきませんね。ごめんなさい。
    • good
    • 0

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



オートフィルタ
データ―フィルタ―オートフィルタ
にチェック
    • good
    • 0

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

この回答への補足

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

補足日時:2008/02/21 11:42
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング