• ベストアンサー

Excelでこれできますか??(関数)

こんにちは 初めて質問させていただきます。 Excelで下のようなファイル(csvもしくはxls)があるのですが、 列1) 列2) 商品名 個数 商品1 5 商品2 4 商品3 3 商品4 10 本ファイル(シート)から 商品1 商品1 商品1 商品1 商品1 商品2 商品2 商品2 商品2 商品3 商品3 商品3 商品4 商品4 商品4 商品4 商品4 商品4 商品4 商品4 商品4 商品4 のように列1)の内容を列2)の個数分縦に並べたいと考えております。 関数等で簡単にできる方法ありませんか? どうぞよろしくお願いします。

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

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

「関数等で簡単にできる方法」とはいいかねますが、下記で出来ます。 (例データ)Sheet1のA1:B6(C,D列は関数を入れた結果を先回りして、出しているもの) A列  B列   C列   D列 商品名 個数 0 1 商品1 5 5 2 商品2 4 9 3 商品3 3 12 4 商品4 10 22 5 商品5 2 24 6 99 7 (関数式:1)Sheet1のC2(C1ではない)に =SUM($B$2:B2)を入れ、C6まで下方向に複写。 結果は上記のとおり。累積個数が出る。C1に0を入れる。VLOOKUP関数のTRUE型利用のため。 D1に=ROW()といれ、縦方向に複写する。結果は上記D列の通り。行番号である。 C列「99」のところは、最下行数を超える大きな数を入れておいてください。 (関数式:2)Sheet2のA1に =OFFSET(Sheet1!$A$1,VLOOKUP(ROW(A1)-1,Sheet1!$C$1:$D$6,2,TRUE),0)を入れ、「Sheet1のデータ最下行の累積個数(C列)の行」まで下方向に複写する。 (結果) 商品1 商品1 商品1 商品1 商品1 商品2 商品2 商品2 商品2 商品3 ・・ 商品4 商品5 商品5 となります。 Sheet1のC列とD列の表より、Sheet2のこの行は、Sheet1の何行目を持ってくるか、判別できています。 Sheet1でB列の個数をSheet2にもってきたい場合は =OFFSET(Sheet1!$A$1,VLOOKUP(ROW(B12)-1,Sheet1!$C$1:$D$6,2,TRUE),1)とA列の式の最後の引数を0->1にすればもってこれます。Sheet1にC列データがあっても同じ要領。

mintmint24
質問者

お礼

とても参考になりました。早速やってみたところ うまくいきました。本当にありがとうございました。 この関数は自分ではとても思いつきません。勉強になりました。

その他の回答 (2)

  • saru5
  • ベストアンサー率34% (41/118)
回答No.3

一般的にはピボットテーブルを使うのが便利だと思います。ここでご説明するのは困難なので、市販のテキストを参考にしてみてください。

mintmint24
質問者

お礼

ピボットも始めに挑戦しては見たのですが・・・ わたくしの持ってる知識ではできなかったんです(泣) また勉強しなおします。ありがとうございました。

  • hakone
  • ベストアンサー率54% (40/73)
回答No.1

作業列を使わずにやろうと思ったのですが、 だいぶ複雑になりそうなので、作業列を使いました・・・ あいている列(ここでは仮にC列)の「2行目に」 =SUM(B$2:B2) と書いて、下のほうにコピーします。 (累計を計算しています) 一列に並べたい最初のセルに、 =IF(ROW(A1)>MAX(C:C),"",INDEX(A:A,IF(ROW(A1)-1<MIN(C:C),1,MATCH(ROW(A1)-1,C:C))+1)) と書いて、下のほうにコピーします。

mintmint24
質問者

お礼

素早い回答ありがとうございました。 とても簡単にできる関数ですね、気付きませんでした。とても参考になりました。感謝いたします。 

関連するQ&A

  • エクセルマクロの質問です。

    例えば、A.xlsというファイルに01.csv,02.csv,・・・,20.csvといういくつかのファイルからデータを取り出すのですが、A.xlsのシート1の1列目に01.csvの1列目を貼り付けて、01.csvの2列目はA.xlsのシート2の1列目に貼り付けるようにシートをずらして行って、02.csvの1列目はA.xlsのシート1の2列目、02.csvの2列目はA.xlsのシート2の2列目というようにしたいのですが、どのようなプログラムがよいのでしょうか? エクセルマクロ初心者なので説明が不十分かも知れませんがよろしくお願いします。

  • エクセルで集計

    エクセルで集計 シート1に1つの列に各支店名、2つ目の列に各商品名、3つ目の列に商品個数がランダム入力されているデータをシート2に自動で整理し集計したいのですが、2つの列の集計は関数SUMIFできるのですが、例えば、「各支店の商品個数の集計」など、「各支店の各商品の個数の集計」などの3つの列の集計方法を分かる方、いましたら教えてください。宜しくお願いします。

  • 関数について教えて下さい。

    エクセル2003を使用してます。 商品名と材料名と参照して、関数を使用して商品名の個数を 出したいのですが、やり方がわかりません。 (現在の表内容) シート1 「A2:D9」  に商品名を入力する表があります。 シート1 「F2:I9」  材料の個数を表示する表があります。 シート2 「A2:B10」 に商品一覧表があります。 (例) シート1「F2」のセルの場合。 「F列」に V と言う材料名が入ってます。 「A2:D2」に ● ■ → ●  と言う商品名が入力されました。 シート2の商品一覧表に ● の場合 V の材料を使用するとなってます。 Fの列は、Vなので●の数を入れたいので、 「F2」のセルには2個と関数を使用して入れたいです。 このような事、可能でしょうか? 教えて頂けませんか? よろしくお願いします。

  • XLS→CSVでセルの末尾のスペースが?に

    いつもお世話になります。エクセルのA列に、末尾に1つor2つのスペースをもつデータが入っています。このエクセルファイルをCSV形式で保存すると各セルの末尾にスペースの個数分だけ?がついた結果となりました。 例 xls:○○○_(末尾にスペース1つ) ↓ csv:○○○? この末尾のスペースを消そうと、xlsシートでTRIM(A1)のデータを試みましたがスペースは消えていません。CSVでTRIM関数を使うとセルデータがすべて消えます。このxlsでのスペース(csvの?)は消せないのですか?あるいはこれはスペースでないのでしょうか?ご教授いただければ幸いです。

  • エクセルの関数について

    エクセルの関数にてこういった場合、どうしたらいいでしょうか? 過去の質問をみましたが、探し方が悪いのか、見つけれませんでした。 A列には商品の個々の名前 B列には商品の売上個数 E列にそれぞれの商品が何個売れたのかという 合計を出したいのですが… 何かの関数で出来るのでしょうか?

  • エクセル 全部のシートを自動的に読み込みたい

    どなたが助けてください。 エクセルのファイルが一つのフォルダの中に 沢山あります。(CSVの場合もあります) 各ファイルには複数のシートが入っていて シート名はバラバラです。 各シートのに入っているデータは 縦は500行目まで、横は端から端まで(A列→IV列)です。 この沢山のエクセルファイルの全シートを 一つのシートに自動的に読み込んで 縦てに並べたいのです。 1ファイルの中にある全シート(1枚しかシートがない ものもあれば5枚あるものもあり もれなく全部) の500行目までを 別の新しいエクセルファイルのシートに縦に並べて 次のファイルをまた開いて全シートを 先ほど並べたデータの下にまた並べて・・・・と 繰り返して一つのフォルダの中にあるエクセルファイルの全シート重複せずに並べるような マクロをどなたか教えて頂けないでしょうか? ファイル数が大変多く、本当に困っています。 よろしくお願いいたします。

  • エクセルの関数

    以下のデータベースがあるとします。 商品名 販売個数 はちみつ   1 砂糖      3 塩        5 はちみつ   2 砂糖      3 数字の列がずれているように見えるかもしれませんが数字は同じ列にあると思ってください。ここからはちみつや砂糖など各商品の合計販売個数を導き出す関数を教えてください。ピボットテーブルではない方法でお願いします。

  • エクセル 同期の反映

    先程、QNo.4234533で エクセルファイル(sumple1.xls)のワークシート名○○のA1のセルに別のエクセルファイル(sumple2.xls)のワークシート名●●のB1の文字列を同期する方法を教えて頂いたのですが、エクセルファイル(sumple2.xls)のワークシート名●●のB1の文字列を変更・保存してエクセルファイル(sumple1.xls)を開いたのですが変更したはずの文字列が反映されませんでした。 どのようにすればきちんと反映するのでしょうか。

  • 大量のCSVファイルをExcel形式に変換する

    お世話になります。 大量のCSV(.csvファイルをExcel(.xls)ファイルに変換したい と考えております。 リネームソフトを使って、(.csv)⇒(.xls)の一括変換を したところ、拡張子は確かに.xlsに変換されたのですが、 中身はCSVのままとなっておりました。 (↑ファイル名とシート名が同期を取っているので) このCSVを確実にエクセル形式へと変換したいのですが、 どなた様かいいお考えをお持ちでしたら教えてください。 ググってみたところ、そういったアドインがあるのですが、 できれば費用をかけずに行いたいです…。

  • エクセルで関数を使いこのようなこと可能でしょうか?

    こんにちは。皆様のお力を貸してください。 エクセルで商品一覧(シートA)を作りました。販売管理(シートB)と連動させ、納品日欄(F列)に日付が入ったら、列Bに入っている商品の仕入金額をG列に入れたいのです。商品一覧シートは、A列に商品コード、B列に商品名、C列に商品金額、D列に表示させたい仕入金額が入ってます。 関数で簡単に出来そうですが、組み方がいまいちわかりません。 ご存知の方いましたら、ご教授願います。

専門家に質問してみよう