• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセル縦データをズレが無く横並びに)

エクセル縦データをズレが無く横並びに

このQ&Aのポイント
  • エクセル縦データをズレが無く横並びにする方法について教えてください。
  • エクセルのバージョンは2002です。
  • A列には毎日処理するデータが1000行程ありますが、途中から1行減って9行の構成になります。このズレを解消する方法を教えてください。

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

  • ベストアンサー
  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.9

再提示された模擬データでは下記の数式で目的の処理が出来ると思います。 L列は作業用です。 L2=LARGE(INDEX((LEFT(A$2:A$1001,1)="P")*ROW(A$2:A$1001)+(LEFT(A$2:A$1001,1)="C")*ROW(A$2:A$1001),0),SUMPRODUCT((LEFT(A$2:A$1001,1)="P")+(LEFT(A$2:A$1001,1)="C"))-ROW()+2) L2セルを下へ必要数コピーします。 B2=INDEX(OFFSET($A$1,$L2-1,0,10),COLUMN(B2)-1) B2セルをJ2セルまでコピーします。 K2=IF(OR(LEFT(INDEX(OFFSET($A$1,$L2-1,0,10),COLUMN(K2)-1),1)="P",LEFT(INDEX(OFFSET($A$1,$L2-1,0,10),COLUMN(K2)-1),1)="C"),"",INDEX(OFFSET($A$1,$L2-1,0,10),COLUMN(K2)-1))&"" B2からK2セルを選択して下へコピーしてください。 尚、データの中でシリアル値の列については表示書式を目的に合わせて修正してください。

1968masaru
質問者

お礼

ご対応、ご教授頂き有難うございます。 目的通りに表示する事が出来ました。 今後質問する時がありましたら、もっと分かり易く掲示していく事にします。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (8)

  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.8

>判断出来るものとして、文字列の左端に必ず、pとcいずれかの文字を含んでいます。 A列の模擬データを再提示してください。 P1 2 3 4 5 6 7 8 9 10 C1 2 3 4 5 6 7 8 9 のようになるのか? P1 P2 P3 P4 P5 P6 P7 P8 P9 P10 C1 C2 C3 C4 C5 C6 C7 C8 C9 のようになるのでしょうか? 尚、Pの場合が10行1組でCの場合が9行1組と言う関係でしょうか? 条件によって最適な数式が変わります。 質問の内容が情報不足で回答者泣かせのように思われます。

1968masaru
質問者

補足

言葉足らず多く、大変申し訳ありません。 10行データと9行データの参考データが以下の通りになります。 10行データ P製品1 -4 4000円 0.29 (7.14%) 製造中 16,500円 2016/9/14 4100円 0.31 (8.05%) -- C製品1 -4 3000円 0.39 (7.14%) 製造停止中 16,900円 2016/10/14 4150円 0.201 (8.05%) -- 9行データ P製品1 -4 4000円 0.29 (7.14%) 製造中 16,500円 2016/9/14 4100円 0.31 (8.05%) C製品1 -4 3000円 0.39 (7.14%) 製造停止中 16,900円 2016/10/14 4150円 0.201 (8.05%)

全文を見る
すると、全ての回答が全文表示されます。
  • msMike
  • ベストアンサー率20% (363/1775)
回答No.7

[No.6補足]へおコメント、 私がヤルと、添付図のようになります。 ただし、セル A1 から下方に 1、2、3、4、5、6、7、8、9、10、11、12、…、19、21、22、…、29、31、32、…、39、41、42、…、49、51、52、…、59、61、62、…、69、71、72、…、79、81、82、…、89、91、92、…、99、101、102、…、109 を入力した結果を示しています。 何処か齟齬がありますか? 》 上記の式を組んでみましたら、… 「組んでみました」が気になります。自分で“組まない”で、私のメッセージ中の式をそっくりコピーして、Excel に貼り付けたら如何?セルアドレスも変更せずに!「何も足さない、何も引かない」ですよ。

全文を見る
すると、全ての回答が全文表示されます。
  • msMike
  • ベストアンサー率20% (363/1775)
回答No.6

[No.4補足]へのコメント、 》 10行のデータでしたら、以下の式で… 》 9行のデータの場合は、以下の式… 何を仰りたいのか? 私が提示した式では不都合があったのでしょうか?YESなら、具体的に何処が貴方の意図するところではなかったのかをご指摘ください。 》 エクセルには、or条件は無いかと思いますので… なぜそう考えるのですか? 》 10行用のデータと9行用のデータを…する事は可能でしょうか? 繰り返しになるけど、私の提示式は貴方の前回の[補足]である「10行のデータの後に9行のデータが並んでいる状態」を満足しているか否かを述べてください。 つまり、貴方の今回の[補足]はサッパリポンです。

1968masaru
質問者

補足

言葉足らず失礼致しました。 =IF(COLUMN(A1)>10-(ROW()>1),"",OFFSET($A$11,+(ROW(A1)-2)*9-(ROW()=1)+COLUMN(A1)-1,)) 上記の式を組んでみましたら、10行のデータの1行目で1番右端に10行目のデータが表示されるかと思い、その部分には空白のままとなり、2行目の基準になる左端に表示されます。 基準になるデータが、1行目では1番左側で問題ないのですが、2行目から1つずつ右側に移動して表示していきます。 10行のデータは、日々の処理データ毎回違っていきます。 試しに、10行のデータを最初のデータとして1つにして、その後のデータ全て9行のデータで確認してみましたら、最初に表示するセルB2からJ2迄は表示されます。 K2には10行目のデータが表示はされず、B3に表示されます。 B2に基準となる文字列が次の行以降は、9行データ全てのデータはC列にB2で表示しています基準文字列が表示します。

全文を見る
すると、全ての回答が全文表示されます。
  • ushi2015
  • ベストアンサー率51% (241/468)
回答No.5

こんにちは セルB2に =IF(ROW(B2)=2,OFFSET($A$1,COLUMN(A1),0),IF(COLUMN(B2)=11,"",OFFSET($A$1,ROW(B1)*9-9+COLUMN(B2),0))) で、K2までフィルコピー、必要な行数迄フィルコピーで。

1968masaru
質問者

補足

ご回答有難うございます。 =IF(ROW(B2)=2,OFFSET($A$1,COLUMN(A1),0),IF(COLUMN(B2)=11,"",OFFSET($A$1,ROW(B1)*9-9+COLUMN(B2),0))) の数式を組んでみたところ、最初の行はイメージ通り表示出来ましたが、2行目から基準になる文字列(1番左側に位置する文字列)が、右側に1つズレた位置に来ます。 3行目は、2行目に対して1つ右側にズレてしまいます。

全文を見る
すると、全ての回答が全文表示されます。
  • msMike
  • ベストアンサー率20% (363/1775)
回答No.4

セル C1 に次式を入力して、此れを右方へセル L1 までオートフィルした後に、範囲 C1:L1 を下方へズズーッとオートフィルしてみたら如何? =IF(COLUMN(A1)>10-(ROW()>1),"",OFFSET($A$11,+(ROW(A1)-2)*9-(ROW()=1)+COLUMN(A1)-1,)) 【独白】何だか自己嫌悪的作業だなぁ~(*^_^*)

1968masaru
質問者

補足

ご回答ありがとうございます。 10行のデータでしたら、以下の式でイメージ通りに表示しました。 =IF(COLUMN(A1)>10-(ROW()>1),"",OFFSET($A$12,+(ROW(A1)-2)*10-(ROW()=1)+COLUMN(A1)-1,)) 9行のデータの場合は、以下の式で表示しました。 =IF(COLUMN(A1)>10-(ROW()>1),"",OFFSET($A$11,+(ROW(A1)-2)*9-(ROW()=1)+COLUMN(A1)-1,)) エクセルには、or条件は無いかと思いますので、or条件みたいに2つの式いずれかを満たしたら、10行用のデータと9行用のデータをそれぞれ表示する事は可能でしょうか?

全文を見る
すると、全ての回答が全文表示されます。
  • dogs_cats
  • ベストアンサー率38% (278/717)
回答No.3

2002はISERROR関数しか使用出来ないので、同じ関数を2度記載しなければならいので長い数式になりました。 もっとスマートな方法はあるかと思います。 C1~L1には数値データは入力しないで下さい。文字の入力は可能です。 C2式 =IF(COUNT($C$1:$L1)+COLUMN(A1)>COUNT($A$2:$A$1001),"",IF(ISERROR(INDEX(INDIRECT("A"&COLUMN(A2)+(ROW(A1)-1)*7&":A"&COLUMN(A2)+(ROW(A2)-1)*7+7),MATCH(COLUMN(A2),INDIRECT("A"&COLUMN(A2)+(ROW(A1)-1)*7&":A"&COLUMN(A2)+(ROW(A2)-1)*7+7),0))),"",INDEX(INDIRECT("A"&COLUMN(A2)+(ROW(A1)-1)*7&":A"&COLUMN(A2)+(ROW(A2)-1)*7+7),MATCH(COLUMN(A2),INDIRECT("A"&COLUMN(A2)+(ROW(A1)-1)*7&":A"&COLUMN(A2)+(ROW(A2)-1)*7+7),0)))) C2を右方向、下方へオートフィル

1968masaru
質問者

補足

ご回答有難うございます。 数字のみでしたら、問題なく表示出来ました。 "縦に並んでいるデータ(データは、文字列や数字です。)" 実際のデータは、文字列を含んでいる為、数字を文字列に置き換えて確認してみたところ、文字列を認識せず数式を組んだセルは空白になってしまいます。

全文を見る
すると、全ての回答が全文表示されます。
  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.2

1組のデータが10行のものと9行のものがあるとしても先頭行が判断できる指標が無いと処理できません。 提示された模擬データがA2=1、A3=2、・・・、A10=9、A11=10、A12=1、A13=2、・・・のように続いていますが、これをB2=1、C2=2、・・・J2=9、K2=10、B3=1、C3=2、・・・J3=9、K3=””、・・・、のように処理できれば良いと言うことでしょうか? 指標となる値が1から10の順列であり各組の先頭行が1である場合は作業用の列を使うことで処理できるでしょう。 作業用にL列を使うものとして次の数式を設定すれば各組の先頭行が割り出せます。 L2=SMALL(INDEX((A$2:A$1001=1)*ROW(A$2:A$1001)+(A$2:A$1001<>1)*2000,0),ROW()-1) L2を下へ必要数コピーして作業用の列とします。 B2=INDEX(OFFSET($A$1,$L2-1,0,10),COLUMN(B2)-1) C2=IF(AND(B2<>"",B2<INDEX(OFFSET($A$1,$L2-1,0,10),COLUMN(C2)-1)),INDEX(OFFSET($A$1,$L2-1,0,10),COLUMN(C2)-1),"") C2セルをK2セルまでコピーします。 B2~K2を選択して下へ必要数コピーすれば目的に合うでしょう。 但し、他の付随する情報については処理上の条件が提示されていませんので何のための情報処理なのか推測できません。 貼付画像はExccel 2013で処理したものですがExcel 2002でも再現できると思います。

1968masaru
質問者

補足

ご回答ありがとうございます。 >1組のデータが10行のものと9行のものがあるとしても先頭行が判断できる指標が無いと処理できません。 判断出来るものとして、文字列の左端に必ず、pとcいずれかの文字を含んでいます。

全文を見る
すると、全ての回答が全文表示されます。
  • msMike
  • ベストアンサー率20% (363/1775)
回答No.1

》 途中から1行減って9行の構成に変化します。 「途中から」てのが曲者です。 Excel には、ましてや Excel 2002 には人工知能は装備されていないので、Excel に最初から「途中から」の定義を教えてあげなければならないことは自明の理ですよね。 そういう次第なので、どのような「途中から」なのかを「ご教授頂ければ幸いです」。 ちなみに、私もいまだに古典的な Excel 2002 を愛用しております。

1968masaru
質問者

補足

どの様な途中とは、カテゴリーの違う物で情報量が1行違っています。 先ずは、10行のデータが連続してありまして、10行のデータの後に9行のデータが並んでいる状態です。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセル 縦長のデータを横並びにしたい

    A列1行目から500行目まで 縦に500のデータがあり、 その後も空欄が2行入って その下に500個のデータが並ぶという 500個のデータが固まり(固定)のデータが 縦にずっと並んでいるものを 横に並べたいのですが どのようにしたら簡単に 並べかえられるか教えてください! 例 A1 FF A2 FF A3 FF A4 GG ・ ・ ・ A503 GG A504 GG A506 FF ・ ・ ・ というものをA503から500個をB1からB列に その後の500個のかたまりをC1からC列に といった具合です。 よろしくお願いいたします。

  • 横のデータを縦のデータにしたい

    sheet1, A列(A4にはタイトル)に種類、B列(B4にはタイトル)に名前、E3:AI3に日付、E4:AI4に曜日、E5:AI5 , E9:AI9・・・・4行置きに数値データがあり、A,B列、および日付、曜日だけ関数を使い、それぞれこのシートにデータが出るようにしています。E5:AI5 , E9:AI9・・・・4行置きには任意に入れています ※A列、B列も4行置きに、データ内容が変わります、A列はA5からデータ、B列はB5からデータで、A5:A8には同一の種類、B5:B8には同一の名前が入っています、表の大きさはA4:AI5000あります、よろしくおねがいします sheet2,(写真のように)データ表示させたい

  • エクセルのデータのコピー(シート間)

    エクセルのデータのコピー(シート間) シート1の10行目には,A列からCZ列の各列ごとに1行目から9行目までの数値の加算式が入力されています(A10には「=SUM(A1:A9)」,B10には「=SUM(B1:B9)」,・・・CZ10には「=SUM(CZ1:CZ9)」)。 これらの加算式のデータ(A10,B10,・・・CZ10)を,シート2のA列の1行目から78行目まで縦にコピーしたいのですが,良い方法を教えて下さい。 宜しくお願いします。

  • エクセル:データが入った最終行の行番号の取得

    お世話になります。 A列にいろいろデータが入っているとして、データが入っている一番下(最終行)の行番号をB1のセルに表示させるにはどういう計算式で出来るでしょうか? A列のデータは数値だけでなく文字列も含みます。また途中空白セルもあります。 A1~A20にデータが入っているときはB1に20と表示させる。 よろしくお願いします。

  • EXCEL セル内のデータを置き換えたい

    うまく説明できないのですが、 Sheet1のA列とB列に、1つのセルに複数のデータが以下のように入っています。(データの間に「,」があります。)     A列             B列 1行 6599A,6599B,6599C  6599A 2行 6599B,6599C      3行              6599A,6599C これは商品コードでして、Sheet2に明細があります。 A列    B列 りんご  6599A メロン   6599B みかん  6599B Sheet1のデータを、「りんご」「メロン」「みかん」に置き換えたいのです。 データの数が、たくさんあるので、コピー、ペーストでは対応できません。 よい方法をお教えください。よろしくお願いいたします。

  • あいまい検索でヒットするデータを表示する方法

    office2016 ある機種のデータをsheet1のA列2行目以降に取り込みます code  ←題目 1233 127011 ←(A) C00001 C00233 … C90001 ←(B) その後昇順にならんだデータにします。約50行くらいあります。 (A)のデータは 1270で始まるデータで 127011,127021の様に6ケほど存在します。 (A)のデータは機種に必須のデータなので6ケの中でどれか1つが必ず存在します。 文字列と数字が混載表示のデータで1270が含まれるデータはありません。 C91270の様なデータは無いということです。 (B)のデータは C9000で始まるデータで C90001,C9002の様に5ケほど存在します。 (B)のデータは機種に必須ではないので、存在しない場合があります。 A列のデータの中から (A)で存在するデータはsheet2のG3セルへ (B)で存在するデータはsheet2のM3セルへ それぞれ表示したいのですが、何か簡単に一発で表示される良い方法があれば教えていただきたく。 現状の構成は次の通りです。 マクロで下記を対応してます。 Aデータの有無を確認する作業シート(シート名はA)を設けて A列にコピーし B2セルに判定として =IF(ISERROR(SEARCH("1270",A2,1)),"対象外",SEARCH("1270",A2,1)) これをA列の行分コピー B列で対象外の行を削除 1行目が題目で2行目に対象のデータが残るのでそれを表示 code 127011   1 の状況になるので SHEET2のG3セルは =IF(A!B2=1,A!A2,"") とすると 127011がG3セルに表示される Bデータの有無を確認する作業シート(シート名はB)を設けて A列にコピーし B2セルに判定として =IF(ISERROR(SEARCH("C9000",A2,1)),"対象外",SEARCH("C9000",A2,1)) これをA列の行分コピー B列で対象外の行を削除 1行目が題目で2行目に対象のデータがあれば残るのでそれを表示 code C90001   1 の状況になるので SHEET2のM3セルは =IF(B!B2=1,B!A2,"") とすると C90001がM3セルに表示される C9****のデータが存在しない場合、M3セルは空欄表示でOK これで一応やりたい内容は達成できていますが、関数で一発表示ができたらとの思いです。マクロでも構いません。 よろしくお願いします。

  • Excel 2007 1列のデータにしたい

    Excel2007で、A1:C3に下のようなデータが入っています。   A  B  C 1 49  65  12 2 77  23  98 3 35  20  81  このデータを下のように別の列に1列に順に並べたいんです。   E 1 49 2 65 3 12 4 77 5 23 6 98 7 35 8 20 9 81  実際のデータは10列×100行あるので、1行コピー → 貼り付け時に行と列の入れ替え を繰り返すのはかなり大変なので、いい方法がありましたらアドバイスよろしくお願い致します。

  • Excel データをまとめたい

    データが次のように各セルに分かれて入っております。 A \300 \1400 A \600 \1400 A \500 \1400 B \300 \300 C \200 \600 C \400 \600 1列目はデータ名 A,B,C.... 2列目はAで\300,\600,\500の受注が入りましたということ。Bは\300ひとつ、Cは\200,\400 3列目はAの合計\1400、Bの合計\300、Cの合計\600が各行に入っています。 ここで、合計のみが必要なので下記のように各データを1行づつにしたいのです。 A \300 \1400 B \300 \300 C \200 \600 質問がわかりづらいかもしれませんが どうぞご教授お願いします。

  • Excelで1列のデータを5列に振り分けする

    Excel2003でA列に1行にあるデータ(半角英数字)を 次のシートに、1行ずつコピーして、それを5列に振り分けするというマクロを作りたいです。 (ただし、コピーは2つずつの時もあります。) 元データ ●A列 B列 C列  1  2  3  4  5  ・  ・ 加工後 ●A列 B列 C列 D列 E列   1   1   2   2   3   3   4   4   5   5   上記のような感じです。ただデータは数字のみでなくて、英数字です。 Excelのマクロは全くの初心者で大変困っています。 どうぞよろしくお願いたします。

  • Excel データの抽出について教えて下さい。

    初めて質問させて頂きます。 Excelでデータの抽出と言ったらいいでしょうか・・・ 「一定の条件に当てはまった場合に、別のセルに数字を入力する」 というような処理をしたいのですが、データ量が多くて、 どのようにやったら効率がいいのか、頭を悩ませています。 例えば・・・       A列  B列 1行目  111   A 2行目  112   B 3行目  115   C 4行目  115   C 5行目  118   D といったようなデータが1500件ほどあります。 このデータを使って、A列の中で番号が2つ(又は3つ等)あるものに、      A列   B列  C列 1行目  111   A 2行目  112   B 3行目  115   C    1 4行目  115   C    1 5行目  118   D といった感じで決まった数字を表示する方法がないでしょうか? こんな説明でご理解頂けるかどうか、心配なんですが・・・。 いい方法をご存知の方がいらっしゃいましたら、力を貸して下さい。

専門家に質問してみよう