人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

エクセルの関数に関する質問です。

名前 1点数 1順位 2点数 2順位

○○ ○ ○ ○ ○

○○ ○ ○ ○ ○

○○ ○ ○ ○ ○

となっている表がsheet1にあったとき、1順位と2順位のいずれかが20位以内に入る人のデータだけを集めた表を、sheet2に抽出したいです。関数などを用いて、sheet1の表にデータを入れ込めば一発で結果がsheet2に表示されるようなフォーマットを作りたいのですが、方法を教えてください。

注:「ココで調べて」「不可能」など、具体的なやり方を明記していない回答は0ポイントとさせて頂きます。ご了承ください。

●質問者: kaerukaerukaeru
●カテゴリ:コンピュータ 科学・統計資料
✍キーワード:エクセル データ フォーマット ポイント 名前
○ 状態 :終了
└ 回答数 : 4/11件

▽最新の回答へ

1 ● kikuta
●18ポイント

http://arena.nikkeibp.co.jp/tec/excel/20040310/107759/

常に並べ替えられた表を作成する - デジタル - 日経トレンディネット

こんにちは。

ここに、常に並べ替えた表を児童で表示する方法が載っています。

ただこれだけだと、1順位と2順位のいずれかが、という条件にはあっていません。

いったんif文を使用すれば「いずれかが20位以内」のものを並べ替えることができると思います。

◎質問者からの返答

出来ればダイレクトに関数の式を教えてください。


2 ● EddyYamanaka
●18ポイント

http://www.hatena.ne.jp/1101444638#

人力検索はてな - エクセルの関数に関する質問です。 名前 1点数 1順位 2点数 2順位 ○○ ○ ○ ○ ○ ○○ ○ ○ ○ ○ ○○ ○ ..

以下のマクロでどうでしょう?

Private Const ROW_START = 2

Private Const COL_NAME = 1

Private Const COL_RANK1 = 3

Private Const COL_RANK2 = 5

Private Const LEVEL = 20

Private Sub Worksheet_Change(ByVal Target As Range)

Dim iRow1 As Integer

Dim iRow2 As Integer

iRow1 = ROW_START

iRow2 = ROW_START

Call Sheet1.Rows(1).Copy(Sheet2.Rows(1))

While Len(Cells(iRow1, COL_NAME))

If (Cells(iRow1, COL_RANK1) <= LEVEL) Or (Cells(iRow1, COL_RANK2) <= LEVEL) Then

Call Sheet1.Rows(iRow1).Copy(Sheet2.Rows(iRow2))

iRow2 = iRow2 + 1

End If

iRow1 = iRow1 + 1

Wend

End Sub

◎質問者からの返答

試してみます!


3 ● actual
●17ポイント

http://www.hatena.ne.jp/

はてな

URLはダミーです。

Sheet2のA2セルに

=IF(OR(Sheet1!C2 < 21,Sheet1!E2 < 21),Sheet1!A2,””)

を入れてみてください。

◎質問者からの返答

試してみます!ありがとうございます。


4 ● itg1224
●17ポイント

http://www.hatena.ne.jp/1101444638

人力検索はてな - エクセルの関数に関する質問です。 名前 1点数 1順位 2点数 2順位 ○○ ○ ○ ○ ○ ○○ ○ ○ ○ ○ ○○ ○ ..

シート2枚目のところに

=IF(Sheet1!B3<5,Sheet1!B3,””)

とかいれてみては?

上の式だと

Sheet1のB3が5より大きかったら、そこの値

小さかったら何も出さない。

となります。

◎質問者からの返答

なるべく空欄は出したくないんですが。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ