dポイントプレゼントキャンペーン実施中!

A列に

1 きゅうり
2
3 なす
4
5
6
7 かぼちゃ
8
9
10
11 トマト
12
 :
 :
と入力されています。
これを、B列に空白を飛ばして

1 きゅうり
2 なす
3 かぼちゃ
4 トマト
 :
 :

と持って来たいのですが、うまい方法はないでしょうか。
ただ、この空白セルは本当の空白ではなく、A列は

=if(参照先が300円以下のもの,その野菜のなまえ,"")

というような""が入っている状態です。

A 回答 (2件)

関数式のVLOOKUPを使ってみてはどうでしょうか?



下準備として、
現時点で、A列に入っているデータを、
C列に移し、C1のセルには、『野菜』という項目名を入れます。
A列には、C列にデータが存在する場合、その通し番号を昇順に表示する式を入力します。
B列は、A列の順位を出すための累計として使います。
そして、空白を飛ばして表示する列をD列とします。

具体的には、
A列は下記のように入力します。

1 通し番号
2 =IF(C2<>"",B2,"")
3 =IF(C3<>"",B3,"")
4 =IF(C4<>"",B4,"")
5 =IF(C5<>"",B5,"")
   :
   :

B列は下記のように入力します。

1 累計
2 =IF(C2<>"",1,0)
3 =IF(C3<>"",B2+1,B2)
4 =IF(C4<>"",B3+1,B3)
5 =IF(C5<>"",B4+1,B4)
   :
   :

C列には、データが入っているので、そこは飛ばし、
最後に、空白をつめて表示するD列は、

1 並び替え
2 =VLOOKUP(1,$A$1:$C$11,3)
3 =IF(VLOOKUP(2,$A$1:$C$11,1)=2,VLOOKUP(2,$A$1:$C$11,3),"")
4 =IF(VLOOKUP(3,$A$1:$C$11,1)=3,VLOOKUP(3,$A$1:$C$11,3),"")
5 =IF(VLOOKUP(4,$A$1:$C$11,1)=4,VLOOKUP(4,$A$1:$C$11,3),"")
   :
   :

(※今回、データが表示される最後を、10レコード分の、11行目とさせてもらいました。
データが表示される、最終行が11行目以降になる場合、
D列のVLOOKUP式の範囲で指定されている$C$11を変更してください。)
という感じです。
もーちょっと、すっきりさせたかったのですが、他に思いつきませんでした(汗
    • good
    • 0
この回答へのお礼

O_Denwaさん、ありがとうございました!
出来ました!
=VLOOKUP(1,$A$1:$C$11,3) は
=VLOOKUP(1,A:C,3)
として一気にA列~C列全体にしちゃいました。いやあ、めんどくさい方法ですね。もっと簡単に出来る初歩的なことだとばかり思っていたものですので。考えていただいて本当にありがとうございました。

お礼日時:2002/08/01 16:47

こんにちは。

maruru01です。

・一番上の行(A1)に項目行(例えば"野菜名")を追加
・A1~Axでオートフィルタを設定
・A列("野菜名")で"空白以外のセル"を選択
・フィルタリングされたデータをコピー
・フィルタを解除して、B列に貼り付け
    • good
    • 0
この回答へのお礼

maruru01さん、回答ありがとうございます!
なるほど!できました!
・・・ただ、欲を言えばAに次々とデータが追加されていったときに自動的にBにも入っていくようにしたいのですが・・・
そんな方法はないでしょうか?

お礼日時:2002/08/01 14:18

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