• ベストアンサー

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の使用方法または別の適切な関数が有ったら教えてください。          

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

  • ベストアンサー
  • comv
  • ベストアンサー率52% (322/612)
回答No.6

再びこんにちは! >補足と現在までの成果ですが「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) 』 これだと全ての入力が想定される数値分の式を個々に 入力する必要があるのでは?

myonmyon
質問者

お礼

ズバリな回答ありがとうございます~ これで作業も先が見えました! 今回の質問で多くの事を学ばせて貰いました。 他に回答してくださった方々! ありがとうございます~!!!

すると、全ての回答が全文表示されます。

その他の回答 (5)

  • comv
  • ベストアンサー率52% (322/612)
回答No.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 下行へ必要数複写

myonmyon
質問者

補足

深夜の返事ありがとうございます。 私の説明不足で皆様の御尽力をかけましてすみませんです。 補足と現在までの成果ですが「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等、試してみているのですが未だ未解決の状態です。 お願いします。

すると、全ての回答が全文表示されます。
回答No.4

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

myonmyon
質問者

お礼

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

すると、全ての回答が全文表示されます。
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.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で表示すべき数値を求めています。 何か誤解している?ソートする必要もないような?・・・

myonmyon
質問者

お礼

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

すると、全ての回答が全文表示されます。
  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.2

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

myonmyon
質問者

お礼

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

すると、全ての回答が全文表示されます。
  • Good-S15
  • ベストアンサー率33% (149/439)
回答No.1

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

myonmyon
質問者

お礼

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

すると、全ての回答が全文表示されます。