• ベストアンサー
  • すぐに回答を!

エクセルのデータ整理方法について

マクロではなく、関数等でのやり方を教えて下さい。 今、以下のようなフォーマットで大量のデータがあります。 A1:名前   B2:クラス A2:○○君  B2:1組 A3:△△君  B3:2組 A4:■■さん B4:1組 A5:□□君  B5:3組 これを A1:1組   B1:2組   C1:3組 A2:○○君  B1:△△君  C2:□□君 A3:■■さん のように、クラス別で並べ替えたいと思っています。A2とA3の間に空白のセルができないように整理をしたいのですが、よい方法を教えて下さい。

共感・応援の気持ちを伝えよう!

  • 回答数3
  • 閲覧数236
  • ありがとう数2

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

  • ベストアンサー
  • 回答No.3
noname#204879

[回答番号:No.1]の別解です。 「大量のデータ」の「大量」が 1000行と仮定します。 1.範囲 A2:A400 に次の[条件付き書式]を設定    数式が   =ISERROR(A2)    フォント色 白 2.範囲 A2:A400 を選択(アクティブセルは A2)した後、[数式バー]   にマウスカーソルを置いて、次の配列数式を入力して Ctrl+Enter   で確定    =INDEX(Sheet1!$A$1:$A$1000,SMALL(IF(Sheet1!$B$1:$B$1000=A$1,ROW(A$1:A$1000),""),ROW(A$1:A$1000))) 3.範囲 A2:A400 を右2列にドラッグ&ペースト 【お断り】解説は遠慮します。

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • エクセルで条件付きの平均値を求める関数

    お世話になります。 恐らく簡単な見落としかと思うのですが、 関数がうまく動いてくれないので質問します。 A1&#65374;A5に商品名群(空白セルあり)、B1&#65374;B5(空白セルなし)にその値段が入力されています。 C1セルに、A1&#65374;A5で空白ではない行のB1&#65374;B5セルの平均値を出したいです。 例: A1:リンゴ  B1:100 A2:(空白) B2:50 A3:みかん  B3:400 A4:メロン  B4:500 A5:みかん  B5:200 この場合、B2の「50」は含めず、それ以外の行の平均値を求める。 関数はC1=AVERAGEIF(A1:A5,"<>""",B1:B5)と入れたのですが、空白セルを除いて計算してくれません。 間違いが分かる方がいましたら、返信頂きたいです。

  • Excelでのマクロについての質問

    ひとつの例ですが A1 佐藤 A2 山田 A3 田中 A4 高橋 A5~A10 空白 B1 山下 B2 田代 B3 吉田 B4~B10 空白 と元のデータが入力されているとします A1~A10,B1~B10に入力されるセル数は変化します 例えばA4~A7にデータがあり、B1~B10は空白という場合もあります ただし必ず上から順に入力されているとします C1~C10、D1~D10には [C1] =IF(A1<>"",A1&"君",""),[C2] =IF(A2<>"",A2&"君","") ・・・ [D1] =IF(B1<>"",B1&"君",""),[D2] =IF(B2<>"",B2&"君","") ・・・ というように元のデータを 加工するための数式が入力されています マクロが登録されているボタンを押すと E1から下方向へC1,C2,C3,C4,D1,D2,D3,(以後空白)と C1~C10、D1~D10の順に空白を除いた「値」が入力されるよう マクロを組むにはどうすればいいでしょうか

  • 横一列のデータを、規則的に並び替えたい

    A1 A2 A3 A4 B1 B2 B3 B4 C1 C2 … というデータを A1 A2 A3 A4 B1 B2 B3 B4 C1 C2 … と並べ代えようとしています。 「エクセル技道場」や他のエクセル関数サイトを参照して いるのですが、うまくできません… こちらの質問も検索しているのですが、数が多すぎて、目的の質問を見つけられない状態です。 どなたか、教えて頂けないでしょうか? 宜しくお願いいたします。

その他の回答 (2)

  • 回答No.2
noname#99913

B列をキーにソートして、あとはコピペで。 関数を入れる暇にやってしまえば、こちらが手っ取り早いかと。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

回答ありがとうございます。データの更新作業が多いため、関数で組みたいところなので、フィルターなどはあまりしたくありません。

  • 回答No.1
  • mu2011
  • ベストアンサー率38% (1910/4994)

データシートをSheet1、組別シートをSheet2に抽出しますのでSheet2の1行目は組名を入力して下さい。 Sheet2のA2に=IF(COUNTIF(sheet1!$B:$B,A$1)>=ROW(A1),INDEX(Sheet1!$A:$A,SMALL(IF(Sheet1!$B$2:$B$1000=A$1,ROW($A$2:$A$1000),9999),ROW(A1))),"")を設定、縦横に必要分コピーして下さい。 尚、配列数式の為、入力完了時にshift+ctrl+enterキーを同時押下して下さい。

共感・感謝の気持ちを伝えよう!

質問者からの補足

申し訳ありません。関数が理解できないため、後学のために解説して頂けないないでしょうか。

関連するQ&A

  • 出勤時間表の作成

    カレンダー(weekday(date))関数で出勤表を作成しております。 A1B1は「月」、C1D1は「火」、E1F1は「水」と順に入力しています。 A2・C2・E2は午前、B2・D2・F2は午後を入力、A1B1は「1」、C1D1は「2」、E1F1は「3」と入力しています。 A4のセルにA3が空白の場合は空白に、A1セルが月曜日および水曜日でA2セルが午前の場合は、2(時間)を記入、A1セルが火曜日で午前の場合は、5(時間)、B4のセルにB3が空白の場合は空白に、B1セルが月曜日および水曜日でB2セルが午後の場合は、3,5(時間)を記入、B1セルが火曜日で午後の場合は、1(時間)を記入しようと思います。 順次4行をコピーしていこうと思います。 ※A1B1は「月」、C1D1は「火」、E1F1は「水」を別々入力しているのは、A4,B4,C4,D4,E4,F4に、A4セルにIF関数(if(A1="月",・・・・)と入力した場合、A1のセルしか見に行かないので、2つ作成しています。 作成した関数(if(A3="","",if(or(A1,"月","水",A2="午前","2",)if(or(A1,"火","午前","5"),と続けてますが、表示できません。 VBA・関数での回答をお願いします。

  • エクセル関数について教えてください。

    A1-0       B1-0 A2-100       B2-200 A3-0       B3-50 A4-80      B4-0 A5-250      B5-100 というセルの値があり、それぞれのAとBを比べたとき、 (1)どちらも0の場合は ”空白” (2)値が2倍以上、または2倍以下の時は ”×” という結果をC列に出したいです。 IF関数を使用してやってみたのですが、値が0の場合エラーになったり 上手くできません・・・。 教えてください、よろしくお願いします。

  • エクセルVBA ループ処理について

    以下のようなことを考えています。 B1が空白ならB1=A1 B1が空白でないならB2=A1 B1、B2が空白でないならB3=A1 B1、B2、B3が空白でないならB4=A1 B1、B3が空白でなく、B2が空白ならB2=A1 *B1:B4の中の空白セルの内、1番上の空白セルにA1の値を入力する。 例)A1=東京、B1<>””→B2=東京 以上、ご教授よろしくお願いします。

  • 1つのセルの文字列を、右の3つの空白でだけ分割する

    タイトルが分かりにくくてすみません。 1つのセルに複数の空白(半角のみ)を含む文字列があって、その最後の3つだけを分割し4つのセルに表示したいのですが・・・ 例えば A1 A2 A3 A4 A5 B1 B2 B3 B4 C1 C2 C3 C4 C5 C6 を A1 A2/A3/A4/A5 B1/B2/B3/B4 C1 C2 C3/C4/C5/C6 のようにしたいのですが、空白の数がセルによってバラバラになっていて自分の手には負えません。 よろしくお願いします。

  • エクセルのデータの並べ替えの方法を教えてください

    大量のデータを転記して別シートに並べ替えをしています。 A1 A2 A3 A4      B1 B2 B3 B4    C1 C2 C3 C4   ↓ A1 A2 A3 A4 B1 B2 B3 B4 C1 C2 C3 C4 このように並べ替えをしたいのですが、 いくつかのファイルからひとつのワークシートにまとめて一覧にする作業なので、数値だけ並べ替えるのではなくリンクの状態で数式が並べ替て、後はリンク元のファイルを変更すると一気に数値が入る というような方法を探しています。 データが大量にあるので困っています。どなたか良い方法を教えてください。      

  • エクセルで、こんな並び替えできますか?

    お世話になります。 A1 B1 A2 B2 A3 B3 A4 B4 A5 B5 セルって、このように並んでいますよね。 それらのセルには、数字が入っているのですが、 これを、C列に、・・・ A1 B1 A2 B2 A3 B3 A4 B4 A5 B5 このように、入っている数字をC列に立てに並び替えたいのです。 どうすれば、いいですか? なるべく 簡単な方法をお願いします。

  • エクセル関数について

    お世話になります。 過去の質問と重複していたらすみません。 受注をまとめた表から、空白セル(受注0)以外の数値を抽出して 伝票を作成したいと考えています。例えば下記のように、 顧客1の例) A1   10 B1   5  C1   空白 D1   空白 E1   7 という受注の場合、別シートの伝票フォーマットに B2   10 B3   5  B4   7 B5   空白 B6   空白 と入力させたいのですが、 B2&#65374;B6にはどのような関数を入れたらよいのでしょうか。 説明不足かもしれませんが、ご回答頂ければ幸いです。 よろしくお願いします。  

  • エクセル関数教えて下さい。

    例えば A1セルに1000 B1セルに1 A2セルに2000 B2セルに2 A3セルに3000 B3セルに3 メモリー計算の合計額を指定セルに一発で14000と出す関数を教えてください。実際は縦に30列位あって空白欄などもありA1*B1+A2*B2・・・というようにしてやっていたのですがあまりにも面倒なものでご教示願います。

  • 行列の積

    4x4のミュラー行列2つの積をするプログラムで以下のような計算があります。 c11 = ( a11*b11 + a12*b21 - a13*b31 - a14*b41) c12 = ( a11*b12 + a12*b22 - a13*b32 - a14*b42) c13 = ( a11*b13 + a12*b23 + a13*b33 + a14*b43) c14 = ( a11*b14 + a12*b24 + a13*b34 + a14*b44) c21 = ( a21*b11 + a22*b21 - a23*b31 - a24*b41) c22 = ( a21*b12 + a22*b22 - a23*b32 - a24*b42) c23 = ( a21*b13 + a22*b23 + a23*b33 + a24*b43) c24 = ( a21*b14 + a22*b24 + a23*b34 + a24*b44) c31 = ( a31*b11 + a32*b21 + a33*b31 + a34*b41) c32 = ( a31*b12 + a32*b22 + a33*b32 + a34*b42) c33 = (-a31*b13 - a32*b23 + a33*b33 + a34*b43) c34 = (-a31*b14 - a32*b24 + a33*b34 + a34*b44) c41 = ( a41*b11 + a42*b21 + a43*b31 + a44*b41) c42 = ( a41*b12 + a42*b22 + a43*b32 + a44*b42) c43 = (-a41*b13 - a42*b23 + a43*b33 + a44*b43) c44 = (-a41*b14 - a42*b24 + a43*b34 + a44*b44) 普通の行列の積なら、要素の掛け算はすべて"+"となると思うのですが、"-"がつく部分があり、よくわかっておりません。 複素行列の場合にこうなるのでしょうか? あるいはミュラー行列特有の計算なのでしょうか?

  • エクセルの数式が分かりません

    例えば、[A1]のセルに[A2]が空白なら空白。 そうではない時は[B1][B2][C1][C2]のセルに表示されたものを表示させる。 ただし、[B1][B2][C1][C2]のセルはどんな時も必ずどれか一つのセルしか表示はしない。 お願いします。