• ベストアンサー

エクセルで列Aの同じ値のものを15行ずつ表示したい

「エクセルで同じ列の値のものを15行ずつ表示したい」というタイトルではきちんと表現できませんでしたが、 以下のことはできますでしょうか?    A   B   C 1 りんご  1   100  ・・・ 2 りんご  9   100  ・・・ 3 みかん  4   70  ・・・ 4 なし   3   110  ・・・ 5 なし   1   110  ・・・ 6 なし   5   110  ・・・ といったシートがあるとします。 これを「A」の列を基準に15列ずつに分けたいと思います。    A   B   C 1 りんご  1   100  ・・・ 2 りんご  9   100  ・・・ ・・・15まで空白 16 みかん  4   70  ・・・ ・・・30まで空白 31 なし   3   110  ・・・ 32 なし   1   110  ・・・ 33 なし   5   110  ・・・ ・・・45まで空白 何かよい方法があれば教えてください。 よろしくお願いいたします。

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

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

次の方法は如何でしょうか。 ・シート3にデータ表 ・シート1のA1、A16、A31に数式を設定し、下方向に15行分、右方向に必要列分コピーして下さい。 ・配列数式を使用していますので、入力完了時にshift+ctrl+enterキーを同時押下して下さい。 A1セルに=IF(ROW($A1)-1<COUNTIF(Sheet3!$A$1:$A$200,"りんご"),INDEX(Sheet3!A$1:A$200,SMALL(IF(Sheet3!$A$1:$A$200="りんご",ROW(Sheet3!$A$1:$A$200),999),ROW($A1))),"") A16セルに=IF(ROW($A1)-1<COUNTIF(Sheet3!$A$1:$A$200,"みかん"),INDEX(Sheet3!A$1:A$200,SMALL(IF(Sheet3!$A$1:$A$200="みかん",ROW(Sheet3!$A$1:$A$200),999),ROW($A1))),"") A31セルに=IF(ROW($A1)-1<COUNTIF(Sheet3!$A$1:$A$200,"なし"),INDEX(Sheet3!A$1:A$200,SMALL(IF(Sheet3!$A$1:$A$200="なし",ROW(Sheet3!$A$1:$A$200),999),ROW($A1))),"")

その他の回答 (3)

  • NNAQ
  • ベストアンサー率56% (104/184)
回答No.4

X列が空いているとして、 X1セルに 1 を入力。 X2=IF(A1=A2,X1,X1+1) データの最終行までコピー。 ご質問の例だと6行目(X6)まで。   ↓ X7=MATCH(1,INDEX((COUNTIF(X$1:X6,ROW(INDIRECT("A1:A"&MAX(X$1:X6))))<15)*1,),) X6の値を15倍した行(X6が3なら3*15=45行目)までコピー。   ↓ X列をコピーして[形式を選択して貼り付け]-[値]。 X列をキーに昇順で並べ替え。 X列を削除。 ※データが多いと再計算に時間がかかります。 ※#3のmaron--5さんの式は Y2=IF(A2<>"",X2,IF(ROW(A1)=COUNTA(A:A),1,IF(COUNTIF($Y$1:Y1,Y1)<15,Y1,IF(Y1=MAX(X:X),"",Y1+1)))) ですかね?

da00774422
質問者

お礼

#4さんのご回答へのお礼でみなさまへのお礼にかえさせていただきますことをお許し下さい。 さらに、お返事が遅れてしまい申し訳ありません。 みなさまの方法で検討してみます。 わたくしオリジナルのものは結局データ件数が多すぎてかえってきませんでした(泣 いろんな方法がありますね。 ありがとうございました。

  • maron--5
  • ベストアンサー率36% (321/877)
回答No.3

◆補助列を2列設けます ◆補助列(何処でもいいのですが、使用している次の列とし仮にX列とします) X1=IF(A1="","",COUNT(INDEX(1/(MATCH($A$1:A1,$A$1:A1,)=ROW($A$1:A1)),))) ★下にコピー Y1=1 Y2=IF(A2<>"",D2,IF(ROW(A1)=COUNTA(A:A),1,IF(COUNTIF($E$1:E1,E1)<15,E1,IF(E1=MAX(D:D),"",E1+1)))) ★Y2の式を下にコピー ◆Y列をキーに昇順で並び替えします

noname#204879
noname#204879
回答No.2

Sheet1    A   B    C … 1 種類  個数 単価 … 2 りんご   1  100 … 3 りんご   9  100 … 4 みかん   4  70 … 5 なし    3  110 … 6 なし    1  110 … 7 なし    5  110 … 8 …    …  … … Sheet2   A  B   C   D   E   F   G   H 1  5 tmp1 tmp2 tmp3 tmp4 種類  個数 単価 2     2   2   1   1 りんご   1  100 3     2      1   2 りんご   9  100 4     1   4   1   3      5     3   5   1   4      6     3      1   5      7     3      2   1 みかん   4  70 8     0   8   2   2      9     0      2   3      10    0      2   4      11    0      2   5      12    0      3   1 なし    3  110 13    0      3   2 なし    1  110 14    0      3   3 なし    5  110 15    0      3   4 16    0      3   5 17    0      4   1 Sheet2 において、… 1.セル A1 には何行ずつ表示するかの数値を入力   ここでは 5 にしているが、貴方の場合は 15 にされたい 2.次の左端に示す各セルに、それぞれ該当する式を入力   B2: =COUNTIF(Sheet1!A:A,Sheet1!A2)   C2: =IF(B2<>B1,ROW(),"")   D2: =INT((ROW()-2)/A$1)+1   E2: =MOD(ROW()-2,A$1)+1 3.範囲 B2:E2 を下方に必要なだけ、あるいはそれ以上ズズーッと複写 4.セル F2 に次式を入力し、此れを右方に必要なだけズズーッと複写   =IF(ISERROR(INDEX($B:$B,SMALL($C:$C,$D2))),"",IF($E2>INDEX($B:$B,SMALL($C:$C,$D2)),"",OFFSET(INDIRECT("Sheet1!A$"&SMALL($C:$C,$D2)),$E2-1,COLUMN(A1)-1))) 5.セル F2 以右の範囲を下方にズズーッと複写 6.列F以右全体を選択して[コピー]→[値の貼り付け]を実行 7.列A~Eを削除

関連するQ&A

  • 同列で重複する値の隣の列の値を表示させたい

    エクセルで下記のような、A列には必ず値(品目)が入っていますが、 B列には値(価格)が入っていたり入ってなかったりする表で、 A列で重複する値がある場合、隣の列B列の値をC列に表示させるような方法はありますか? A列には品目のデータが2000行以上ありまして、B列には価格が1000程度しか埋まっておらず 出来れば関数か何かでB列の抜けた価格データを埋めたいと思っています。 職場にて使用出来るエクセルバージョンは2000です。何卒宜しくお願い致します。 (何故か空白スペースが反映されない為、……を空白として入力させて頂きました。) ………A …… B …… C 1 …みかん … 200… 2 …りんご … 100… 3 … バナナ…150… 4 …ぶどう…300… 5 …りんご… 6…メロン… 600… 7… みかん… 8 …キウイ…170…

  • Excel 指定値だけ行コピー+値の移動

    Excel 2010でSheet1に次のような表があります。  A列  B列 C列 D列 E列  りんご 111  222 333 444  みかん 555  666  いちご 777  888 999   ・   ・   ・ これをマクロを使って、次のような形にしたいと思います。 1.C列以降の「数値が入った列数分だけ」行コピーをする。(最大9列まで)  (この例の場合りんごの行は3回、みかんの行は1回、いちごの行は2回) 2.次にC列以降の数値はコピーした行のB列に移動する。 マクロ実行後は次のようになります。  A列  B列  りんご 111  りんご 222  りんご 333  りんご 444  みかん 555  みかん 666  いちご 777  いちご 888  いちご 999   ・   ・   ・ 膨大な数のデータですので、マクロを使って処理したいと思っています。 どうぞよろしくお願いいたします。

  • Excelで、A列、B列の値を新しいシートに3行ごとにどんどん貼り付け

    Excelで、A列、B列の値を新しいシートに3行ごとにどんどん貼り付ける。 という事をしたいのですが、VBAを始めたばかりなので上手く書くことが出来ません。 例)    A列   B列   101  りんご    102  ぶどう   103  オレンジ   104   桃   105  バナナ      ・      ・      ・ これを別のシートに    A列   B列   101  りんご (2行あける)   102  ぶどう (2行あける)   103  オレンジ (2行あける)    104   桃 (2行あける)    105  バナナ      ・      ・      ・ と表示したいのです。 現在は下記のようなリンクで表示していますが、 件数が少ない時は4件から多い時は800件と幅があります。 出来れば表の一番下(空欄になる部分)まで繰り返し処理をしたいと思っています。 セルの中身が表示されるならリンクでもコピーでも構いません。 現在のマクロ Sub Macro2() Worksheets("Sheet2").Select Range("C11").Value="=Sheet1!A2" Range("C14").Value="=Sheet1!A3" Range("C17").Value="=Sheet1!A4" Range("C20").Value="=Sheet1!A5" Range("C23").Value="=Sheet1!A6" Range("H11").Value="=Sheet1!B!" Range("H14").Value="=Sheet1!B2" Range("H17").Value="=Sheet1!B3" Range("H20").Value="=Sheet1!B4" Range("H23").Value="=Sheet1!B5" End sub 45行分まで書いたところで途方に暮れております。 よろしくお願いいたします。

  • EXCELで範囲内にある値を検索してA列の値を返す

    タイトル通りなのですが、OSはXPでEXCEL2000を使用しています。 シート内ですが 1.A列には文字列が入っています。200行まで空白は無いです。 1.B列からL列の200行までに数字がランダムに入っています。 2.数字は1~500までです。 3.行によってはL列まですべてのセルに値が入ってません。  数字の入っていないセルは空白です。 4.数字の重複はありません。 やりたいことは 別のシートのA列に1~500までの数字を入れ、B列に上記範囲の中からその数字を検索して、その行のA列の値を返したいのですが、出来ません。 どの関数を組み合わせれば出来るのでしょうか? vlookupの検索範囲は1列だけなのでダメでした。 よろしくお願いします。

  • 【Excel】行と列で値を検索したい

    こんにちは Sheet1に表があります。 Sheet2のA列と1行に値を入力したときに、 Sheet1の交わる値を表示したいのですが、 Sheet2のB2、C2、B3、C3の式を教えて下さい。 Excel2013です。 宜しくお願いいたします。

  • EXCELで重複する値の検索

    EXCELで重複する値を検索して、かつその重複した値と同じ行の隣のセルの値を返すということをしたいのですが、どうすればうまくいきますでしょうか。 具体的には下記のようになります。    A    B   C 1 りんご  A市場 2 みかん  C市場 3 りんご  D市場 4 なし   B市場 5 バナナ  A市場 6 りんご  F市場 上のような表があったとして、A列の重複を検索(この場合はりんごが重複)して、重複した場合はB列の値をC列に返すことをしたいんです。 希望する出力は以下のような形です。    A    B    C  1 りんご  A市場  D市場、F市場 2 みかん  C市場 3 りんご  D市場  A市場、F市場 4 なし   B市場 5 バナナ  A市場 6 りんご  F市場  A市場、D市場 よろしくお願いします。

  • 重複する不要な行を消し、必要行のみを残したい

    下表のエクセルがあります。果物の種類はたくさん、4月から3月までの表で、みかんの2行目は1行目に5月のデータが追加されたものです。2行目があれば1行目はいらないので2行目だけを残し、1行目は非表示にして別シートに移したいのですが、うまい関数やマクロを教えてください。 A列  B列   C列  D列 果物   4月    5月   計 みかん   2         2 みかん   2     5   7 りんご   3        3 りんご   3     7   10 これを別シートに移す(不要行を削除して) 果物  4月  5月  計 みかん 2   5   7 りんご 3   7   10

  • ×または空白のセルを繰り上げて表示する(エクセル)

       果実シート                  まとめシート      A   B    C         A    1  いちご  林檎  ミカン          2   ○   ×    ○ 3   4  イ 5  ロ 6  ハ 2行目には○か×か空白が入ります。空白は×と同じです。(以下×という定義は「×または空白」という意味とします。) ・4行目イの欄=A2が○であれば「いちご」を。A2が×でありB2が○であれば「林檎」を。A2、B2が×でありC2が○であれば「ミカン」を ・5行目ロの欄=A2が○でB2が○であれば「林檎」を。A2が○でB2が×、C2が○であればミカンを。A2が×、B2が○、C2が○の場合はミカンを。 ・6行目ハの欄=すべて○の場合だけミカンを。 つまり、×または空白表示の場合は、順次繰り上げて表示する方法についてご教示ください。 4行目は=if(a2="○",a1,if(b2="○",b1,if(c2="○",c1)))ということでOKだと思いますが、5行目6行目がどうしてもわかりません。 マクロをメンテナンスできる人間がいないため、ifやandなどの関数だけでお願いします。 また、このイロハの部分を別の「まとめシートに」リンクさせ、これをVLOOKUP($G$2,まとめシート!A1:R50,1,FALSE)という形(G2は任意の数字を入れる場所)でさらに別のシートへリンクすることは可能でしょうか。 エクセルバージョンは2002です。

  • エクセルからグラフの表示

    シート1  A B C D 1りんご 100 50 80 2みかん 空白 空白 40 3パイナップル 90 100 50 と文字と数字がはいっています この数字をシート2でグラフにしました シート1の「名前の管理」 で、「りんご」「=OFFSET(シート2!$B$1,0,0,1,COUNT(シート2!$1:$1))」 と、設定をしておくと、列が増えても自動的に表に反映されます。 この状態で、2にみかんを追加しました。最初のBとCは空白です 同じように名前の管理にいれても、表に反映されません。 どうしてでしょうか? =OFFSET(シート2!$B$2,0,0,1,COUNT(シート2!$2:$2)) といれました 実際のシートの式とは違うので、もしかしたら、$B$2の表示が違っているかもしれませんが、ほかの行は同じような形式で変更させていったら、ちゃんと表になってでてきます。 空白にゼロを入力するとちゃんとグラフがでてきますが、 ゼロというグラフも表示されるので困っています。

  • Excelについて

    Excelに下記のようなデータが入っているのですが A列   |   B列 りんご |     2 みかん | 3 ばなな | 1 りんご | 6 すいか | 7 かき | 3 みかん | 4 すいか | 8 りんご | 1 *(実際には100件ぐらいのデータが入っています。) A列で同じ「りんご」があれば、同じ行にあるB列の値を合計したいのでがどうすればよいですか? また「りんご」だけでなく他にもあればその値を合計して出したいのですが。 例えば、今回の例では「りんご」が三箇所あるので「2+6+1]で9と表示したいのですが。 イメージとしては、 A列  |   B列 |   C列   |  D列 りんご |    2  |    りんご |  9 みかん |    3  |    みかん | 7 ばなな | 1  |    ばなな | 1 りんご | 6  |    すいか | 15 すいか | 7  |    かき | 3 かき | 3 | みかん | 4 | すいか | 8 | りんご | 1 | というようにしたいです。どなたか教えてください。

専門家に質問してみよう