こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

EXCEL2000にて1列内の範囲にてシート間ソート?(LOOKUP?)

EXCELの関数ではまっています。
1列内の範囲(B2:B7)間に入力された数値(未ソート(3,6,2,8,1,4)を、別のセルで対象数値(2)が有ったら、その数値(2)を表示したいのですが、Lookup系を使ってどうもうまくいきません。

 ABCDEF… ABACAD…
―――――――――――――――――
1 
2 3 HB    1 2H 
3 6 4H    2 4B ←ここの関数を
4 2 4B    3 HB  =LOOKUP(2,B2:B10,B2:B10) 
5 8 2B    4 3B   とすると返り値が『1』になってしまいます。
6 1 2H         (他にH,VLOOKUPも試したのですがどうも・・・) 
7 4 3B    6 4H
8        
         8 2B
       
希望としては上記のような形にしたいのですがうまくいきません
正確なLOOKUPの使用方法または別の適切な関数が有ったら教えてください。        
 

投稿日時 - 2002-07-20 18:07:07

QNo.318557

すぐに回答ほしいです

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

再びこんにちは!

>補足と現在までの成果ですが「A」列で入力された
>不規則な値とAに添う項目「B」があり、この2列が
>入力されると、「AB」列にて2行目から1ずつ並び替え、
>「AC」列は「A」に添う項目「B」を 表示したい
>というのが目的です。

あれ? 数値が入力されるのは B列 だったのでは?

取あえず
不規則な数値(重複無し)を並び変えて表示してかつ
その行の隣の列の値を表示する式の例

AB2
=IF(COUNT(A:A)>=ROWS(A$1:A1),SMALL(A:A,ROWS(A$1:A1)),"")
AC2
=IF(AB2="","",VLOOKUP(AB2,A:B,2,0))

と入力して下に必要行複写

------------------------
>『AB2の場合 =IF(ISNA(MATCH(1,A2:A10,0)),"",1)
>AB3の場合 =IF(ISNA(MATCH(2,A2:A10,0)),"",2) 』
これだと全ての入力が想定される数値分の式を個々に
入力する必要があるのでは?

投稿日時 - 2002-07-21 10:23:49

お礼

ズバリな回答ありがとうございます~
これで作業も先が見えました!

今回の質問で多くの事を学ばせて貰いました。
他に回答してくださった方々!
ありがとうございます~!!!

投稿日時 - 2002-07-21 12:54:17

ANo.6

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(6)

ANo.5

こんばんは!

>あとはAC2~AC9の関数となりました。
AB列 と AC列 の両方を式で処理するってこと
でしょうか!

 セルAB2(#4 FlossenEngelさんの式を少々加工)
 =IF(ISNA(MATCH(ROWS(A$1:A1),$B$2:$B$10,0)),"",ROWS(A$1:A1))

 セルAC2
 =IF(AB2="","",VLOOKUP(AB2,$B$2:$C$10,2,0)

AB2 と AC2 下行へ必要数複写

投稿日時 - 2002-07-21 04:25:13

補足

深夜の返事ありがとうございます。
私の説明不足で皆様の御尽力をかけましてすみませんです。
補足と現在までの成果ですが「A」列で入力された不規則な値と
Aに添う項目「B」があり、この2列が入力されると、
「AB」列にて2行目から1ずつ並び替え、「AC」列は「A」に添う項目「B」を
表示したいというのが目的です。

 |A|B…   |AB|AC…
―――――――――――――――――
1| |     | | 
2|3 |HB   | 1|2H 
3|6 |4H   | 2|4B
4|2 |4B   | 3|HB 
5|8 |2B   | 4|3B
6|1 |2H   | |        
7|4 |3B   | 6|4H
8| |     | |
9| |     | 8|2B 
   ※わかりやすいようにセル間を切ってみたのですがズレか…

#4 FlossenEngelさんのお答えにて「AB」列は解ったのですが       
『AB2の場合 =IF(ISNA(MATCH(1,A2:A10,0)),"",1)
AB3の場合 =IF(ISNA(MATCH(2,A2:A10,0)),"",2) 』

「AB」列に添う項目「AC」がまだうまくいきません。
当初下記の関数で行くと思ったのですが↓
『AC2=IF(AB2="","",LOOKUP(AB2,A2:A10,B2:B10))』
うまく行かず、皆様のお答えいただいたVLOOK等、試してみているのですが未だ未解決の状態です。

お願いします。

投稿日時 - 2002-07-21 05:24:12

ANo.4

よくわかんないんですが、
=IF(ISNA(MATCH(2,$B$2:$B$10,0)),"",2)
では。

投稿日時 - 2002-07-20 22:35:08

お礼

ありがとうございます。
試してみたところ、AB2~AB9に値する数字の表示に関する関数はズバリでした。
ありがとうございます。(そっか~、ここは単純に数値指定しちゃえばいいんだ!)

あとはAC2~AC9の関数となりました。

No.3の方の答えの関数を参照にがんばります。

投稿日時 - 2002-07-21 04:08:19

ANo.3

>対象数値(2)が有ったら、その数値(2)を表示したいのですが
の意味がよくわかりませんが、左側の列を右のように表示しなおしてみました。こういう質問でした?


(3,6,2,8,1,4)がB2~B7。HB,4H,4B,2B,2H,3BがC2~C7とします。

AB2~AB9に、B2~B7に1~8があればその数値を表示、AC2~AC9に対応する2H~2Bを表示してみます。


AB2に
 =IF(ISNA(VLOOKUP(ROW()-1,$B$2:$C$7,1,FALSE)),"",VLOOKUP(ROW()-1,$B$2:$C$7,1,FALSE))

AC2に
 =IF(ISNA(VLOOKUP(AB2,$B$2:$C$7,2,FALSE)),"",VLOOKUP(AB2,$B$2:$C$7,2,FALSE))

として、下にコピーします。2行目から使用なので、ROW()-1で表示すべき数値を求めています。

何か誤解している?ソートする必要もないような?・・・

投稿日時 - 2002-07-20 21:07:20

お礼

具体的な参照例ありがとうございます。
試してみます。

投稿日時 - 2002-07-21 04:00:30

ANo.2

取り急ぎで解答していますが、Vlookupの表(この例ではB2:B10の内容)は昇順に並んでいる必要があったと思いましたが。
今マニュアルを確認しました。降順も不可のようです。

投稿日時 - 2002-07-20 18:33:42

お礼

お返事ありがとうございます。
当初(マニュアル確認せず)「なんとかLookup」でしか思い出せずVLOOKを
やってみてダメなのを確認してからマニュアルを見るという後手に廻っていました。
そう!SORT済みが前提のLOOKUPなんですよね~

もうちょっとガンバッテみます。
ありがとうございました。

投稿日時 - 2002-07-20 20:16:10

ANo.1

こんばんは。

元になるデータ(以下)は、
>HB
>4H
>4B
>2B
>・・
>・・
静的(固定)データですか?
そうであれば、絶対参照になりますので、
IF文との組み合わせでできそうですね。
動的データであれば、
マクロというかVBAで組み込むしかないのでは?

投稿日時 - 2002-07-20 18:16:30

お礼

早々のお答えありがとうございます。
参照データは静的データです。
IF文と組み合わせは思いつきませんでした。
IF文でやろうとしたのですが実を言うと実行行を20行で実際行っていて
関数の限界行まで来てしまい挫折しました。
対象外は非表示にするためIFを(「4 3B」の下行を考慮し)使っていたのですが
どうもうまくいきません。
具体的な関数を教えてもらえると幸いです。

投稿日時 - 2002-07-20 20:07:45

あなたにオススメの質問