• 締切済み

縦に並んでいるデータを横並びに変えたい

お世話になっております。エクセルの表で縦に並んでいる数字を横にしたいのです。添付の左の表のシートを参照して右の表に変更したいと思っているのですがどなたかご教授いただけませんでしょうか。エクセルは2010です。

みんなの回答

  • SI299792
  • ベストアンサー率48% (719/1488)
回答No.6

多分、 E2: =IF(COUNTIF(B$2:B2,B2)=1,SUMIF(B:B,B2,D:D),"") が入っていると思うので、これを利用します。 F列が空いているのでワークエリアに使います。フォントの色を白にすると見えなくなります。 F2: =F1+(E2<>"") 下へコピペ。 H2: =IFERROR(INDEX(B:B,MATCH(ROW()-1,F:F,0)),"") I2: =SUMIFS($D:$D,$B:$B,$H2,$C:$C,I$1) J2へコピペ。 F2,H2,I2を下へコピペ。

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

[No.4補足]へのコメント、 》 簡単そうでよさそうに見えました “よさそうに”だけ、でしたか? 》 満足な結果が得られませんでした 斯樣な抽象的な表現でなく、だう云ふエラーになったとか具體的に仰ってェ~m(_._)m 明記していた 範圍 A1:E8 を選擇⇒Alt+MC⇒“上端行”だけにチェック入れ を先ず實行していましたか? 「Alt+MC」の意味は、次の通りです。 [数式](forMulas)⇒[選択範囲から作成](Create from selection)

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

範圍 A1:E8 を選擇⇒Alt+MC⇒“上端行”だけにチェック入れ⇒ 式 =SUMIFS(金額,得意,$H2,税率,I$1) を入力したセル I2 を 右隣&下3行にオートフィル オ・シ・マ・イ

gaaze
質問者

補足

ありがとうございます。 簡単そうでよさそうに見えましたが 左の表の得意先名・金額・税率の並びが不規則な位置にあるので、ご教授いただいた数式をコピーしても満足な結果が得られませんでした。。

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

これは、エクセルの「シートデータの組換え」問題に当たると思います。 >質問の表現「縦に並んでいるデータを横並びに変えたい」、では正確に表現できないものです。 (これにぴったりの課題は、形式を選択しての、コピー貼り付けで、「行と列を入れ替える」、があるが 似ても似つかぬものです。) 「データの組換え」はエクセル関数では、扱いづらい型の課題だと思います。 仕事にエクセルを使うなら、いろんな場面で、VBAの利用は必須だと思います。勉強してください。 ーー 泥臭いですが、下記に一例を上げます。 例データ シートSheet1のA1:D7に NO 得意先名 税率 金額 請求額 1 山本商店 軽8% 250 1450 2 山本商店 10% 1200 3 藤田商店 軽8% 850 850 4 小田商店 軽8% 600 1600 5 小田商店 10% 1000 6 田中商事 10% 2600 2600 標準モジュールに Sub test01() Set sh1 = Worksheets("Sheet1") Set sh2 = Worksheets("Sheet2") lr = sh1.Range("B10000").End(xlUp).Row 'MsgBox lr '--- For i = 2 To lr sn = sh1.Cells(i, "B") '社名 Set fnd = sh2.Range("B2:B10000").Find(sn) If fnd Is Nothing Then '社名見つからない r = sh2.Range("B10000").End(xlUp).Row sh2.Cells(r + 1, "B") = sn '社名セット If sh1.Cells(i, "C") = "軽8%" Then '--8% sh2.Cells(r + 1, "C") = sh1.Cells(i, "D") Else '--10% sh2.Cells(r + 1, "D") = sh1.Cells(i, "D") End If Else '社名見つかった rf = fnd.Row If sh1.Cells(i, "C") = "軽8%" Then '--8% sh2.Cells(rf, "C") = sh1.Cells(i, "D") Else '--10% sh2.Cells(rf, "D") = sh1.Cells(i, "D") End If End If Next i End Sub ーー 「社名」の表現や、「軽8%」の部分について、シートのデータの文字の半角・全角やスペースの有無などと、プロクラムコードのその部分を、統一することに留意してください.これらがバラバラだと結果はむちゃくちゃになります。 ーー 結果 Sheet2のB1:D5に結果 得意先名 税率8%金額 税率10%金額 山本商店 250  1200 藤田商店 850 小田商店 600  1000 田中商事  2600 == 質問者が、先行のご回答の補足で書いている、いろいろデータの統一についても、VBAでやらないとむつかしいでしょう。 200件程度というのが、手作業でやれる限界かと思うので、かえって悩ましい。

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

> 別々のセルに分ければ使えそうなのですが、どのようにすればよいでしょうか。 データの区切り位置を使って2つのセルに分けてください。スペースが前後に残るようでしたらTRIM関数でスペースを削除してください。TRIM関数で削除したデータをコピーし「形式を選択して貼り付け」の「値」で貼り付けてください。 全角を半角に統一するには C2を半角にしたい場合はたとえばD2に =ASC(C2) とすれば半角になります。下に200行あるのでしたらD2をそのまま下にコピーしてください。 最後に200行すべて選択してコピーし、選択したまま「形式を選択して貼り付け」で「値」で貼り付けてからC列を削除します。

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

I2に =SUMPRODUCT(($B$2:$B$7=$H2)*($C$2:$C$7=I$1)*($D$2:$D$7)) として右と下にコピーして試してみてください。

gaaze
質問者

補足

ありがとうございます。 さらに発展して教えていただけますでしょうか。 実は、この左の表のたとえばB2「山本商店」、C2「軽8%」は一つのセル(B2)に「山本商店 軽8%」となっています。 教えていただいたやり方で使いたいのなら別々のセルに分ければ使えそうなのですが、どのようにすればよいでしょうか。左の表の6行が実際には200行くらいありますが、さらに実際はこの軽8%の「8」や「%」が「8」や「%」など、半角・全角が混じっておりまして。 最悪、手作業で修正しないといけないかもしれませんが。 すみません、宜しくお願い致します。

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

関連するQ&A

  • 横並びのデータを縦1列に並びかえる

    横に月、縦に時間項目の表があります。 元データを残した状態で横に並んでいるデータを縦に並べる方法を教えてください。 1月のデータの下に2月データを並べる 2月の下に3月をもってくる。 上記の繰り返し ただし、表の上段には表タイトルと項目があります。 サンプルデータを添付します。

  • エクセルの操作方法しりたい

    添付ファイル参照 1.表計算の合計の値を別の表に自動的に計算したい 2.計算ではないが一つのセルに入力した数値を別の表のセルに自動入力したい 3.縦と横の合計を自動入力したい。 4.デリートで数字を削除しても表計算は消せないようにしたい 5.シートの表計算を変更できないようにパスワードで保護したい

  • エクセルのデータ配置を変えたい

    質問をお願いします。 エクセルで作成したデータの配置を添付のように変更したいのですがどのような方法があるのでしょうか。 具体的には、横に展開した上の表を下の表のように、A列のコード毎に、A・B・Cそれぞれの数値を表示したいことと、ブランクの部分は表示させない、というようにしたいのです。 (もちろん別のシートにデータを作成して構いません) データ量は、縦・横とも相当あるので、とても手作業ではできません。 何か良い方法があれば教えて下さい。

  • 種類ごとに横に並んだ数字を別シートに縦に変換する方法を教えて下さい

    エクセルシートで、Sheet1に種類ごとに横に並んだ数字があり、そのデータをSheet2の指定のセルに数字の小さい順に縦に並び替えしたいのですが、どのようなVBAを書込んだら可能でしょうか?ご教授願います。 例 Sheet1  A    B    C    D    E    F    G 1 2     りんご  8    3    12 3     みかん 2    9 4     バナナ 4    3    7 5 6  このデータを下記のように変更して貼り付け Sheet2  A    B    C    D    E    F    G 1 2 3           りんご  3 4                 8 5                12 6           みかん  2 7                 9 8           バナナ  3 9                 4 10                7 11

  • VBAを使わずに複数シートの列データを縦に並べたい

    フォーマットの異なる表が4種類あり、集計用シートと合わせて5シートを1つのブックにまとめています。各表はカテゴリーが異なるWebサイトのURLリストの列を持っていて、そのURLを集計用シートにまとめたい(縦に並べたい)のですが、Web検索で調べながらOFFSET、ROW、MATCH関数などで挑戦するも、関数の整理がつかず、セル位置の指定と入れ子の式が複雑でうまくいきません。 シート1のURL列の2行目(タイトル行があるので)から最終行までを参照した後、シート2の頭から順番に最終行まで参照し、それをシート4まで繰り返し行うというものです。 VBAは使わずに関数だけで完結させたいです。 どうかご教示ください。 よろしくお願いいたします。 ◆環境:Excel 2016/Windows10 ◆ブックの構成(添付画像ご参照)  ・シート1:参照元シート(1)  ・シート2:参照元シート(2)  ・シート3:参照元シート(3)  ・シート4:参照元シート(4)  ・シート5:参照先集計シート  ※シート1~4はフォーマット及び行数がバラバラの表。  ※各表にはWebサイトのURL一覧の列がそれぞれ含まれている。  ※各表のURL列の1行目のタイトルは「URL」で共通。(列番号はバラバラ) ◆やりたいこと  ・シート1~4のURLの列をまるごとシート5に縦に並べてまとめて参照したい。  ・マクロではなく関数で完結させたい。  ・シート1~4をそれぞれ更新(新データをペースト)すれば、シート5も最新に更新される運用としたい。

  • エクセル 縦 書き

    エクセルでの質問ですが縦書で平成19年10月5日と記入するのですが 数字のところで書式セルで横に設定し直してまた 年 で縦に設定し直さないと 記入できないのでしょうか? 要するに数字は横文字にしたいのですが? 多くの文字を記入するので良い方法はないものかと

  • エクセルに張り付けている画像をVBAで指定の範囲を削除し、画像サイズを

    エクセルに張り付けている画像をVBAで指定の範囲を削除し、画像サイズを変更させることは可能でしょうか?似たように情報は見ましたが、どれも上手くいかずに困っています。具体的には、縦1000×横1200の画像があります。(上50、下80、左150、右200)を削除し、縦870×横850の画像にし、さらに90%にサイズをトリミングし、縦435×横425としたいのです。これをVBAで一発で行う方法があれば教えて下さい。また、同じシート、異なるシートに複数の画像があった場合、全てを同時にできましたらなお良いです。以上、宜しくお願いいたします。

  • 縦一列の表を縦三列にして印刷したい

    名前と電話番号だけの表を作っているので縦長の表になってしまい(→目のように…)、自動的に→田のように横に2~3列にして印刷できないかと思っています。ページ設定の「シート」の「ページの方向」で「左から右」でできるのかなーと思いましたがだめでした。印刷プレビューで1ページの範囲を出し、手で表を切りとり貼りつけでもできなくはないんですが、もっといい方法がないかなと思います。 どなたかご存知でしたら教えてください。よろしくお願いします。

  • Excelで、横並べのデータを縦並べにリンクを貼りたい

    エクセルにおいて、A1セル、B1セル、C1セル・・・と横に不連続な日付を並べた表があります。 日付は毎日追加していきます。入力された日付を別のシートに"="を使ってリンクを貼っておきたいのですが、リンク先では横ではなく縦にA1、A2、A3・・・と並べていきたいと思っております。 ちなみに、いったん別シートにA1セル、B1セル、C1セル・・・と横にリンクを貼った後、コピー→形式を選択して貼り付け(行列を入れ替える)で縦にしようとしてもうまくいきませんでした。 なお、その都度値複写をすることは考えておりません。 良い方法をご存知の方いらっしゃいましたら教えていただきたくお願いします。

  • 同じデータで縦と横の表を同時に作成したい

    Excel2002を使用しています。 日毎に20項目の数を集計したデータがありまして、日付を縦にした表と横にした表を作成したいのです。 コピーで行列の入替えが出来る事が分かったのですが、フォームを作って、それぞれの表にデータを入力しなければなりません。 出来れば、縦の表に数値を入力するだけで、横の表にも反映されるようにしたいです。 どうかご教授下さい。

専門家に質問してみよう