[[20061018165508]] 『VLOOKUPではできないのですが・・・』(禁肉マン) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『VLOOKUPではできないのですが・・・』(禁肉マン)
   売上表を作っているのですが、A列にRUNK関数で金額による順位をつけました。
  ぜんぶで4000行位あります。別のシートに上位30を抽出したいのですが、上から
  日付順になっているので、順位の並びは変えられません。順位で抽出すると、順位
  が昇(降)順では ないので、VLOOKUPが使えません。何かいい方法がありませんか?
   
  シート1                                 
     A  B    C      D      E     F     G     H     I      J    K    
  1 順位 番号 発注 区分 発注者 件名 場所 金額 担当 着手 完了   
  2  2      1    都  元  A社  **  @@  ¥20  a   18/1   18/2   
  3   1      2    民    下    B社   ##  %%  ¥50  b   18/3   18/4   
                  ・                     
                  ・                     
                  ・                     
  シート2                                  
    A     B    C      D      E     F     G     H     I      J          
  1 順位 発注 区分 発注者 件名 場所 金額 担当 着手 完了      
  2   1                                     
  3    2                                     
                  ・                     
                  ・                     
                  ・                     
  シート2に上位30を転記?抽出?したいのです。
  宜しくお願いします。

 >VLOOKUPが使えません
 VLOOKUP(検索値,範囲,列番号,検索の型)
 「検索の型」を「0」又は「FALSE」にしても、ダメって事ですよね?

 (Ohagi)

 データ-->フィルタ-->オートフィルタで順位でトップテンを使うと
 上位30データが抽出されると思います。
 これをシート2にコピペして並べ替えたら良さそう。

 また、同順位が複数あるかないかは関数で処理する時に重要です。
 どのようなデータが予想されますか? (茨)


 =vlookup(row(A1),シート1!$A$1:$K$100,column(A1),0)
かな

 上はどなたでしょう?
 見たことのないような式ですが、これはExcelで実際に使えますか?
 [式を修正されたようですので、このコメントはなかったことにして読み飛ばしてね]
 (茨)


 どこかおかしい
かな

 かなさんでしたか。 てっきり無記名の名無しさんと思ったもので、失礼をしました。
 その式はエラーになりませんか?
 [ここも、かなさんが式を修正されたので読み飛ばしてね] (茨)


 テストしてみましたが、(テストなので、データは10行位しか入れてません)
下の方が#N/Aになってしまいます。
また、C列の一部だけ#N/Aになってしまいます。
同じ順位がでないようにしてあります。また、オートフィルを使わないで、関数でお願いします。
(禁肉マン)

 Sheet2で
 A2=IF(ROW($A1)>30,"",SMALL(Sheet1!$A$2:$A$50,ROW($A1)))
 と入力して下にフィルドラッグ

 B2=IF(ROW($A1)>30,"",INDEX(Sheet1!C$2:C$50,SUM(IF(Sheet1!$A$2:$A$50*10^5+ROW($A$1:$A$49)
   =SMALL(Sheet1!$A$2:$A$50*10^5+ROW($A$1:$A$49),ROW($A1)),ROW($A$1:$A$49),""))))
 としてCtrl+Shift+Enterで数式を確定後、必要分右と下にフィルドラッグでどうでしょうか?

 上記数式は2行目から50行目までで作成しておりますので、ご自身の表に当てはめて修正してください。
 (ROUGE)

 >同じ順位がでないようにしてあります。
 とのことですから、Sheet2のA2に
 =INDEX(Sheet1!$A$1:$K$24,MATCH(ROW(A1),Sheet1!$A$1:$A$24,0),COLUMN(A1))
 でも良さそうに思います。
  Sheet1と2で1行目が異なっていますので、
 =INDEX(Sheet1!$A$1:$K$24,MATCH(ROW(A1),Sheet1!$A$1:$A$24,0),MATCH(A$1,Sheet1!$A$1:$K$1,0))
 に変更。(茨)

 テストなので、データは10行位しか入れてません)下の方が#N/Aになってしまいます

 10行位しか入れてません A列に1〜10まででセットしてますか。

(  )


 もしかして、(ROUGE)さんも(茨)さんも順位が30位まであるという条件でしょうか?
じつは、工事業種ごとに同じシートがあって、業種によっては10位に満たないのもあります。
お二人の関数は両方とも、10位以下がエラーになりました。
(10位までしかデータを入れてません)どうですか?

 =vlookup(row(A1),シート1!$A$1:$K$100,column(A1),0)
試されましたか、 変更してありますが、

 シート2のA2に入力すると上記と同じ結果になります。

 =VLOOKUP(ROW(A1),Sheet1!$A$1:$D$100,COLUMN(A1),0)
 	sheet1		
	A	B	C
1			
2	6	A	い
3	3	B	ろ
4	4	C	は
5	8	D	に
6	5	E	ほ
7	7	F	え
8	1	G	と
9	9	H	ち
10	2	I	り
11	10	J	ぬ

 	sheet2		
	A	B	C
1			
2	1	G	と
3	2	I	り
4	3	B	ろ
5	4	C	は
6	5	E	ほ
7	6	A	い
8	7	F	え
9	8	D	に
10	9	H	ち
11	10	J	ぬ

 上記数式結果
(UUU)


 数式をどこにいれるのですか?シート2のA2に入れて、
ドラッグすればいいのですか?してみましたが、横にやると、#REF!になります。
半角スペースを

 シート2のA2に入れて、ドラッグすればいいのですか
シート名は確認の事違うと エラーですよ。
UUU

 シート名はあってます。半角スペースをsenntouni

 提示したシート名じゃなくあなたのエクセルシート名ですよ

 何がなにやら、わけが分からないので退散します。
 と、書いたものの、思い当たるところを付け加えておきます。
 エラー処理がしてないことを言っているのでしょうか?(茨)
 =IF(ISNA(MATCH(ROW(A1),Sheet1!$A$1:$A$24,0)),"",
INDEX(Sheet1!$A$1:$K$24,MATCH(ROW(A1),Sheet1!$A$1:$A$24,0),MATCH(A$1,Sheet1!$A$1:$K$1,0)))


 あってます。

 一度だけコメントさせてください。
 ↑上の方は、スレ主の禁肉マンさんだと想像しますが、
 HNの記入をして頂いても宜しいでしょうか?
 名無しの文章だけですと、何が何やらわからなくなる恐れがあります。
 
 もう一つ、
 ←ここに、半角スペースを入れると、フォントも小さくなり改行もされます。
 
 エクセルマイスターより
http://www.excel.studio-kazu.jp/mag2/backnumber/mm20040713.html
 
 「#REF!」とは、『セルの参照がおかしい』時などに出るエラーです。
 (キリキ)(〃⌒o⌒)b

 最初の方の(茨)の関数を使ってみます。30位に満たないときに出でくるとおぼしき、#N/A!は、条件書式で処理します。 いろいろ、有り難う御座います。(禁肉マン)

 Sheet2で
 A2=IF(ROW($A1)>COUNT(Sheet1!$A:$A),"",SMALL(Sheet1!$A$2:$A$50,ROW($A1)))

 B2=IF(ROW($A1)>COUNT(Sheet1!$A:$A),"",INDEX(Sheet1!C$2:C$50,SUM(IF(Sheet1!$A$2:$A$50*10^5+ROW($A$1:$A$49)
   =SMALL(Sheet1!$A$2:$A$50*10^5+ROW($A$1:$A$49),ROW($A1)),ROW($A$1:$A$49),""))))

 数式修正。数式の確定方法は上記と同じです。
 (ROUGE)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.