Excel (一般機能)

Excelの一般機能に関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 7 Professional : Excel 2010)
横長のリストを縦に表示
投稿日時: 17/11/20 18:43:26
投稿者: you_ku

次のような表があります。
 
県名     出荷品目1     出荷品目2     出荷品目3
北海道    じゃがいも     にんじん      
北海道    かぼちゃ      じゃがいも     とうもろこし
青森     りんご       にんじん      こめ
青森     にんにく      りんご        
青森     メロン
 
 
これを以下のようにしたいのですが、関数等教えてください。
重複する品目は削除せず、全て県名とペアでリストにします。
 
北海道    じゃがいも
北海道    にんじん
北海道    かぼちゃ
北海道    じゃがいも 
北海道    とうもろこし
青森     りんご
青森     にんじん
青森     こめ
青森     にんにく
青森     りんご
青森     メロン
 

回答
投稿日時: 17/11/20 19:09:04
投稿者: んなっと

     A      B      C       D   P    Q       R
 1  県名 出荷品目1 出荷品目2  出荷品目3   202 北海道  じゃがいも
 2 北海道 じゃがいも  にんじん          203 北海道   にんじん
 3 北海道  かぼちゃ じゃがいも とうもろこし   302 北海道   かぼちゃ
 4  青森   りんご  にんじん     こめ   303 北海道  じゃがいも
 5  青森  にんにく   りんご          304 北海道 とうもろこし
 6  青森   メロン                402  青森    りんご
 7                          403  青森   にんじん
 8                          404  青森     こめ
 9                          502  青森   にんにく
10                          503  青森    りんご
11                          602  青森    メロン
 
P1
=IFERROR(AGGREGATE(15,6,(ROW($2:$500)*100+COLUMN($B:$K))/($B$2:$K$500<>""),ROW(1:1)),"")
下方向・↓
Q1
=IF(P1="","",INDEX(A:A,P1/100))
下方向・↓
R1
=IF(P1="","",INDEX($A:$K,P1/100,MOD(P1,100)))
下方向・↓
 
※本当はP1:P1000などと選択してから
P1
=IFERROR(AGGREGATE(15,6,(ROW($2:$500)*100+COLUMN($B:$K))/($B$2:$K$500<>""),ROW()),"")
Ctrl+Shift+Enter同時押し
と、配列数式にしたほうが軽い。

回答
投稿日時: 17/11/20 21:42:39
投稿者: Mike

どうせ表形式に書くなら、列記号/行番号も付してくださいネ。回答が楽になるから。
 
Sheet1
   A     B      C      D
1 県名  出荷品目1  出荷品目2 出荷品目3
2 北海道 じゃがいも  にんじん 
3 北海道 かぼちゃ   じゃがいも とうもろこし
4 青森  りんご    にんじん  こめ
5 青森  にんにく   りんご 
6 青森  メロン     
 
Sheet2 ⇒⇒⇒⇒⇒⇒⇒⇒⇒⇒⇒⇒ Sheet2
   A     B           A     B
1 県名  出荷品目       1 県名  出荷品目
2 北海道 じゃがいも      2 北海道 じゃがいも
3 北海道 にんじん       3 北海道 にんじん
4 北海道      0     4 北海道 かぼちゃ
5 北海道 かぼちゃ       5 北海道 じゃがいも
6 北海道 じゃがいも      6 北海道 とうもろこし
7 北海道 とうもろこし     7 青森  りんご
8 青森  りんご        8 青森  にんじん
9 青森  にんじん       9 青森  こめ
10 青森  こめ         10 青森  にんにく
11 青森  にんにく       11 青森  りんご
12 青森  りんご        12 青森  メロン
13 青森       0     13
14 青森  メロン     
15 青森       0
16 青森       0
17   0      0
 
Sheet2 において、
1.次式をセル A2 に入力
 ̄ ̄=OFFSET(Sheet1!$A$2,(ROW(A1)-1)/3,)
2.次式をセル B2 に入力
 ̄ ̄=OFFSET(Sheet1!$B$2,(ROW(A1)-1)/3,MOD(ROW(A1)-1,3))
3.範囲 A2:B2 を下方にズズーッと(列Aに数値 0 が表示されるまで)オートフィル
4.列A、Bを選択 ⇒ Ctrl+C ⇒ Ctrl+Alt+V ⇒ “値”に目玉入れ ⇒ [OK]をツン
5.列A、Bを選択 ⇒ Ctrl+G ⇒ [セル選択]をツン ⇒ “定数”に目玉入れ、かつ、
 ̄ ̄“数値”以外に付いているチェック外し ⇒ 選択された任意のセル上でマウスの
 ̄ ̄右クリック ⇒ [削除] ⇒ “行全体”に目玉入れ ⇒ [OK]を「エイヤッ!」と叩き付け

投稿日時: 17/11/21 18:39:48
投稿者: you_ku

迅速な回答ありがとうございます。
お陰様で解決できました。
 
ありがとうございました。