-PR-
解決済み

VLOOKUPを使用して、随時並び変えたいのですが・・・

  • 困ってます
  • 質問No.99143
  • 閲覧数133
  • ありがとう数3
  • 気になる数0
  • 回答数4
  • コメント数0

お礼率 71% (5/7)

選挙投票数の数を随時入力し、その途中結果の数を投票数の多い順に候補者の名前を上位順に並び変えたいのですが、VLOOKUPを使用しても上手くいきません。

関数は B6=VLOOKUP(C7,A2:B4,1,FALSE) と使用しても、結果が「#N/A」とでてしまいます。
各候補者の途中投票数を入力する度にB7~B9の候補者の名前を随時自動的に並びかえたいです。
誰か良い関数又は解決方を知りませんでしょうか?

  A   B    C    D   E 
1  TOTAL 1回目 2回目 3回目
2 A候補  80  20  50  10
3 B候補  86  25  50  11
4 C候補  77  15  50  12

6  順位  名前 獲得票数
7  1位  #N/A  86票
8  2位  #N/A  80票
9  3位  #N/A  77票
通報する
  • 回答数4
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.2
レベル12

ベストアンサー率 52% (322/612)

こんばんは!

方法は、いろいろあると思いますが1例を

  A   B   C   D   E 
1    TOTAL 1回目 2回目 3回目
2 A候補  80   20   50   10
3 B候補  86   25   50   11
4 C候補  77   15   50   12

6  順位  名前  獲得票数
7   1  式2  式3
8  式1   ↑   ↑
9   ↑   ↑   ↑

 セルA7 1を入力
 セルA8 式1 =IF(COUNTIF($B$2:$B$4,C7)>COUNTIF($A$7:A7,A7),A7,COUNTIF($A$7:A7,A7)+A7)
 (A9へ複写)
 セルB7 式2 =INDEX($A$2:$A$4,MATCH(C7,$B$2:$B$4,COUNTIF($A$7:A7,A7)-1))
 (B8:B9へ複写)
 セルC7 式3 =LARGE($B$2:$B$4,A7)
 (C8:C9へ複写)

 A7~A9 書式設定 → ユーザー定義 0"位"
 C7~C9 書式設定 → ユーザー定義 0"票"

こんなかんじでしょうか!
同点の場合も処理しているため多少長くなってしまいました!
お礼コメント
ganjyaman

お礼率 71% (5/7)

こんばんわ。
返事が遅くなりすみませんでした。
まさに私が望んでた結果を出して頂き感謝しております。
今回愛の手を差し伸べて頂いた関数ですが、非常に複雑でしたが、言われるがままに打ちこんでみましたら、まさに望んでたものがでました。

また、分からないことがありましたら、助言を宜しくお願いします。

    from ganjyaman
投稿日時 - 2001-07-06 23:40:06
関連するQ&A
-PR-
-PR-

その他の回答 (全3件)

  • 回答No.1
レベル5

ベストアンサー率 66% (2/3)

VLOOKUP関数の基本的な使い方がまちがっているのではないでしょうか? 私もあまり詳しくないのですが・・・ B6=VLOOKUP(C7,A2:B4,1,FALSE) で指定すると、Aの列(正確にはA2~A4)にC7といっちするものがあるかどうかを検索するはずです。 したがって、Aの列には、C7(86)と一致するものがないため”N/A”となるのではないのでしょうか? 検索値が、範 ...続きを読む
VLOOKUP関数の基本的な使い方がまちがっているのではないでしょうか?
私もあまり詳しくないのですが・・・


B6=VLOOKUP(C7,A2:B4,1,FALSE)

で指定すると、Aの列(正確にはA2~A4)にC7といっちするものがあるかどうかを検索するはずです。
したがって、Aの列には、C7(86)と一致するものがないため”N/A”となるのではないのでしょうか?

検索値が、範囲で指定した領域の先頭領域(例だとA列)に一致したものを検索するのがVLOOKUPの使い方のはずです。


  • 回答No.3
レベル11

ベストアンサー率 37% (133/354)

これを、一つの関数で行うことは、無理ですね。 複数の関数を組み合わせる必要があるとおもいます。 ご希望の回答ではないのですが、 順位を求める関数に、RANK関数がありますので、 ご紹介しておきます。 =RANK(B2,$B$2:$B$4,1) で、B2が、2という値がでます。 この数式をコピーすると、 B3が、3で、B1が、1という数字がでます。 あとは、このRANK関数を使 ...続きを読む
これを、一つの関数で行うことは、無理ですね。
複数の関数を組み合わせる必要があるとおもいます。

ご希望の回答ではないのですが、
順位を求める関数に、RANK関数がありますので、
ご紹介しておきます。

=RANK(B2,$B$2:$B$4,1)
で、B2が、2という値がでます。
この数式をコピーすると、
B3が、3で、B1が、1という数字がでます。

あとは、このRANK関数を使った、「値」だけは、
昇順で並べ替えボタンで並べ替えられますけど。
(候補名含んで選択して、並べ替えは、できません。
また、列は別にしておかないと、並べ替えはできません。)

自動的にできる方法は、わかりません。
ごめんなさい。
  • 回答No.4
レベル9

ベストアンサー率 32% (32/99)

次のようにしてはいかがでしょうか。表はタブ区切りになっているので整形してご覧下さい。 集計する表を、順位、得票数合計、候補者の順に並べます。 順位には、RANK(C3,$C$3:$C$5)のようにRANK関数を入れ、順位を表示させるようにします。 BCDEFG 2順位 TOTAL 1回目 2回目 3回目 3280A候補205010 4186B候補255011 5377C候補 155012 ...続きを読む
次のようにしてはいかがでしょうか。表はタブ区切りになっているので整形してご覧下さい。
集計する表を、順位、得票数合計、候補者の順に並べます。
順位には、RANK(C3,$C$3:$C$5)のようにRANK関数を入れ、順位を表示させるようにします。

BCDEFG
2順位 TOTAL 1回目 2回目 3回目
3280A候補205010
4186B候補255011
5377C候補 155012

得票数順の表は、下のように配置し、名前と獲得票数にVLOOKUP関数を使います。名前の欄:VLOOKUP(B11,$B$3:$D$5,3,FALSE)
得票数の欄:VLOOKUP(B11,$B$3:$C$5,2,FALSE)
つまり、上の表でRANKを使って順位を求め、下の表ではRANKから得票数と候補者名を表示させるようにします。この場合、順位と獲得票数は数値である必要がありますので、1位、86票と表示したければ、表示形式を用いて表示を変更してください。また、この方法は上の表の行数が固定されている場合にのみ利用可能です。上の表の行数が変動する場合には、別の方法を考える必要があります。

10順位名前獲得票数
111B候補86
122A候補80
133C候補 77
お礼コメント
ganjyaman

お礼率 71% (5/7)

こんばんわ。
今回はアドバイを頂き有難うございます。
yuhki_fさんから頂いた関数も利用できたのですが、行数変動があるため、私が完全に望んでいるものとより、少しりなかったです。
comvさんで頂いたものがまさに望んでいるものでした。
今回次点にはなってしまいましたが、また、機会ありましたら宜しくお願いします。
    from ganjyaman(P.S. 返事が遅くなりました。)
投稿日時 - 2001-07-06 23:48:12
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このやり方知ってる!同じこと困ったことある。経験を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


新大学生・新社会人のパソコンの悩みを解決!

いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ