Excel (一般機能)

Excelの一般機能に関するフォーラムです。
  • 掲示板への投稿には会員登録(無料)が必要です。会員登録がまだの方はこちら
  • 掲示板ご利用上のお願い」に反するご記入はご遠慮ください。
  • Q&A掲示板の使い方はこちらをご覧ください
トピックに返信
質問

 
(Windows 10 Home : Excel 2007)
名前ごとに、複数の数値を抽出したい
投稿日時: 20/05/17 10:55:54
投稿者: memememme

こんな感じの元データがあります。データごとに空白の行と名前・点数のヘッダーがついています。
 
名前    点数
まい    124
    356
    
名前    点数
いずみ    163
    277
    
名前    点数
りか    356
    367
    
名前    点数
みき    357
 
名前    点数
えりか    346
    246
    406
 
これを、名前・点数ごとにリストを作りたいです↓
 
名前    点数
まい    124
まい    356
いずみ    163
いずみ    277
りか    356
りか    367
みき    357
えりか    346
えりか    246
えりか    406
 
関数で点数を抽出することはなんとかできたのですが、名前を抽出する関数をコピーするとうまくいきません。「まい」の点数 124のところは、最初の行なので「まい」と結果を出すことはできますが、次の356点はどのように名前を出すように指定したらよいのでしょうか。説明が下手ですみません。

回答
投稿日時: 20/05/17 12:11:48
投稿者: exvatpc

セルとの関係が見えないので
実際に作成したセルの場所と数式をかいたら、わかるかもしれません。
 

回答
投稿日時: 20/05/17 13:08:48
投稿者: んなっと

●作業列無し(悪い方法)
 
     A   B C    D   E
 1  名前 点数    名前 点数
 2  まい  124    まい  124
 3      356    まい  356
 4          いずみ  163
 5  名前 点数   いずみ  277
 6 いずみ  163    りか  356
 7      277    りか  367
 8           みき  357
 9  名前 点数   えりか  346
10  りか  356   えりか  246
11      367   えりか  406
12                
13  名前 点数         
14  みき  357         
15                
16  名前 点数         
17 えりか  346         
18      246         
19      406         
 
D2
=IFERROR(LOOKUP("ーー",A$1:INDEX(A:A,AGGREGATE(15,6,ROW($2:$500)/(A$2:A$500<>"名前")/(B$2:B$500<>""),ROW(D1)))),"")
下方向・↓
E2
=IFERROR(INDEX(B:B,AGGREGATE(15,6,ROW($2:$500)/(A$2:A$500<>"名前")/(B$2:B$500<>""),ROW(E1))),"")
下方向・↓
 
●作業列あり
 
     A   B  C  D    E   F
 1  名前 点数      名前 点数
 2  まい  124  2  1  まい  124
 3      356  2  2  まい  356
 4         2  2 いずみ  163
 5  名前 点数  2  2 いずみ  277
 6 いずみ  163  6  3  りか  356
 7      277  6  4  りか  367
 8         6  4  みき  357
 9  名前 点数  6  4 えりか  346
10  りか  356 10  5 えりか  246
11      367 10  6 えりか  406
12        10  6       
13  名前 点数 10  6       
14  みき  357 14  7       
15        14  7       
16  名前 点数 14  7       
17 えりか  346 17  8       
18      246 17  9       
19      406 17 10       
20        17 10       
 
C2
=IF(AND(A2<>{"名前",""}),ROW(),C1)
下方向・↓
D2
=D1+AND(A2<>"名前",B2<>"")
下方向・↓
E2
=IFERROR(INDEX(A:A,INDEX(C:C,MATCH(ROW(E1),$D:$D,0),0)),"")
下方向・↓
F2
=IFERROR(INDEX(B:B,MATCH(ROW(F1),$D:$D,0)),"")
下方向・↓

回答
投稿日時: 20/05/18 07:42:08
投稿者: Mike

Fig-1 をスタート畫面とします。
A列選擇⇒F5⇒[セル選択]⇒“空白セル”に目玉入れ⇒[OK]⇒[数式バー]上にマウスカーソルを放り投げ⇒式 =A2 を入力⇒Ctrrl+Enterを實行
其の結果が Fig-2 です。
A、B列内の任意のデータを選擇⇒[データ⇒]⇒[並べ替えとフィルター <フィルター>]⇒セル B1 のナビスコマーク(▼)をクリック
その結果が Fig-3 です。
下端に在る“点数”、“(空白セル)”以外のチェック外し⇒[OK]
その結果が Fig-4 です。
先頭行以外の(添附圖では4行目以降の)行全体を選擇⇒マウスの右クリック⇒[行の削除]
[データ⇒]⇒[並べ替えとフィルター <クリア>]を實行
その結果が Fig-5 です。
 
Fig-1       Fig-2       Fig-3
   A   B      A   B   検索
 1 名前  点数   1 名前▼ 点数▼  □124
 2 まい   124   2 まい   124  □163
 3     356   3 まい   356  □246
 4         4 まい      □277
 5 名前  点数   5 名前  点数   □346
 6 いずみ  163   6 いずみ  163  □356
 7     277   7 いずみ  277  □357
 8         8 いずみ     □367
 9 名前  点数   9 名前  点数   □406
10 りか  356  10 りか   356  □点数
11     367  11 りか   367  □(空白セル)
12         12 りか  
13 名前  点数   13 名前  点数
14 みき   357  14 みき   357
15         15 みき  
16 名前  点数   16 名前  点数
17 えりか  346  17 えりか  346
18     246  18 えりか  246
19     406  19 えりか  406
         
Fig-4       Fig-5
 A   B       A    B
1 名前 点数    1 名前  点数
4 まい       2 まい   124
5 名前 点数    3 まい   356
8 いずみ      4 いずみ  163
9 名前 点数    5 いずみ  277
12 りか       6 りか   356
13 名前 点数    7 りか   367
15 みき       8 みき   357
16 名前 点数    9 えりか  346
          10 えりか  246
          11 えりか  406

回答
投稿日時: 20/05/21 17:53:28
投稿者: WinArrow
投稿者のウェブサイトに移動

表のレイアウトの説明がないので、
 列をA列とB列
 行を1から
  
と仮定して説明します。
  
まずA列を選択して、
ジャンプを使って、空白セルを選択します、
その状態で、A3セルに
=IF(B3<>"",A2,"")
を入力し、[Ctrl]+[Enter」を押します。
 選択した空白セルに一挙に数式が入力されます。
  
そのあとで、
 A列昇順で並べ替えします。
  
名前・点数というセルは、表の下にまとまるので、削除します。
 表全体を選択して値複写します。
 

回答
投稿日時: 20/05/21 19:19:58
投稿者: んなっと

作業列ありもうひとつ。
 
     A   B  C    D   E
 1  名前 点数    名前 点数
 2  まい  124  1  まい  124
 3      356  2  まい  356
 4         2 いずみ  163
 5  名前 点数  2 いずみ  277
 6 いずみ  163  3  りか  356
 7      277  4  りか  367
 8         4  みき  357
 9  名前 点数  4 えりか  346
10  りか  356  5 えりか  246
11      367  6 えりか  406
12         6       
13  名前 点数  6       
14  みき  357  7       
15         7       
16  名前 点数  7       
17 えりか  346  8       
18      246  9       
19      406 10       
20        10       
21        10       
22        10       
 
C2
=C1+AND(A2<>"名前",B2<>"")
下方向・↓
D2
=IFERROR(IF(INDEX(A:A,MATCH(ROW(D1),C:C,0))="",D1,INDEX(A:A,MATCH(ROW(D1),C:C,0))),"")
下方向・↓
E2
=IFERROR(INDEX(B:B,MATCH(ROW(E1),C:C,0)),"")
下方向・↓

トピックに返信