• 締切済み

Excelで行方向に並んだデータを列に

こんばんは。 質問タイトルをどう書いていいのかわからず、わかりにくくてすみません。 こういうExcelの表があります。 A表 A列 B列 No  code   1  10 1  11 1  12 2  10 3  14 4  14 4  15 それを次のようにしたいと思ってます。 B表 A列 B列  C列  D列 No  code1 code2 code3 1  10   11  12 2  10 3  14 4  14   15 A列にあるのがサンプルNoで、それぞれに対応するコードが縦に並んでいる(A表)のを、サンプルNoを重複させずにコードを横に展開(B表)したいのです。 今は各サンプルで重複しているコード数を出して、2以上だったらif関数で横に持っていくという非常に面倒な方法を取っています。 他によい方法はないでしょうか。なお、マクロは嫌がられるので使えません。 データ数よりもシート数(1シートに1つの表)が多く、できるだけ簡単な方法があれば教えていただけますでしょうか。 以上よろしくお願いします。

みんなの回答

回答No.4

No.2のCorlTarです >あ、そうか、それだとcolum関数は使えないんだ・・・と今気づきました。 A表A列が昇順(降順)に並んでいれば使えます >実際はA列は連番とは限りません。B列に入れているのは連番とはならないことが多いです。 使えないのはROW関数でしょう。 ●B表のA列の出し方 1. データ - フィルタ - フィルタオプションの設定 2. 抽出先 ●指定した範囲 3. リスト範囲 : $A$1:$A$7 (A表のA列の範囲でタイトル含める) 4. 検索条件範囲 : (空欄のまま) 5. 抽出範囲 : $A$10 (仮です) 6. [レ]重複するレコードは無視する にチェック 7. [OK] 後は当方が示した数式を放り込めば出てきます

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

持って回った質問の書き方だが、良く見ると、A列に何行目に来るかの数字が出ているのかな。 例データ Sheet1 1 10 1 11 1 12 2 10 3 14 4 14 4 15 Sheet2のA1に =IF(COUNTIF(Sheet1!$A$1:$A$10,ROW())>=COLUMN(),INDEX(Sheet1!$B$1:$B$100,MATCH(ROW(),Sheet1!$A$1:$A$10,0)+COLUMN()-1),"") これを右方向に式を複写。最高3列の場合 A1:C1の式を下方向に複写。 結果 10 11 12 10 14 14 15 ーー #1のご回答と同じになった。こちらはSheet2に結果を出しているのだが(不思議)。 ーー もしA列がなくて関数で出すなら 例データ A列  B列 1<-- 行挿入してA1に1を入れる 1 10 1 11 1 12 2 10 2 14 3 14 3 15 A2の式は =IF(B2>B1,A1,MAX($A$1:A1)+1) を下方向に式を複写する。質問と10->14のところが違うが。 こちらは等しいか 小ならA列番号を+1するというルールで良いなら、このように(A列データを手作業で入力しなくても、B列から関数で)出来る(出せる)。

guinet
質問者

お礼

すみません、持って回った質問の仕方で・・・。 あ、そうか、それだとcolum関数は使えないんだ・・・と今気づきました。 実際はA列は連番とは限りません。B列に入れているのは連番とはならないことが多いです。 A列  B列 101  5 101  8 103  12 104  5 106  1 106  98 ↓ A列  B列  C列 101  5   8 103  12 104  5 106  1   98 こっちの方がわかりやすかったですね、すみません。

回答No.2

>データ数よりもシート数(1シートに1つの表)が多く、 が問題ですが一応、数式での方法です。 A表は昇順に並んでいるとして B11セルに =IF(COUNTIF($A$2:$A$8,$A11)>=COLUMN(A1), INDEX($B$2:$B$8,MATCH($A11,$A$2:$A$8,0)+COLUMN(A1)-1),"") 右へ 下へオートフィル 参考まで

guinet
質問者

お礼

早速のご回答ありがとうございます。 なるほど、どうもindex関数というのがわからなかったのですが、そうやって使うのですね。 行数も多いので別シートをたてて使うことになると思いますがいい手です。 試してみます。

  • koko88okok
  • ベストアンサー率58% (3839/6543)
回答No.1

私なら、Web検索して見付からなければ、D&Dで並べ替えますが、・・・ (大変な思いをすれば、次回から後々のことを考えて安易な表を作ることをしなくなるでしょうから) 何か事情がおありなんでしょうね。

guinet
質問者

お礼

早速のご回答ありがとうございます。 実は私が請け負っている仕事に絡むことで、私にはいかんともしがたいんです。

関連するQ&A