• 締切済み

エクセルの数式の使い方について

Excelデータの取りまとめ方についてご教授ください。 説明下手なので、何がしたいのか箇条書きします。 画像データも添付していますので、ご覧くだされば幸いです。 (1)1つのブックに各市のデータを各シート毎に入力してあり、そのデータを参照したとりまとめのシートを作りたい。 (2)列の項目は全市同じだが、行の項目や数がそれぞれの市で違う。 (3)実際は30行×100列くらいあるので、なるべく入力がコピペでできるか最低限の労力でやりたい。 (4)たとえば甲市の”A・X”の値をSheet4の”A・甲市”に表示したいときは、 「Sheet1の行項目のなかに、Sheet4の行項目と同じ"A"があれば、Sheet1の"A・X"の値を入力、なければ0」 のような数式を使えばいいのかと思ったが、このような数式があるのだろうか? 経緯として、これまで各市のデータをそれぞれ1ファイルずつで集めて、30ファイルのエクセルデータにひとつひとつ手で入力していたのですが、 開いてはぽちぽち入力して閉じて、開いてはぽちぽち入力して閉じて…の繰り返しで毎回頭が発狂しそうでした。 エクセルなんだからもっと手間を省く方法があるのではないかと、1つのブックにシートごとにとりまとめてみたまではよかったのですが、 何しろ初心者なもので、IFやVLOOKUP、フィルターなどを調べて使ってみてもうまくいかず…。 複数ブック×複数ブックを1つのブックで集計するというのが無謀な挑戦なのかもしれませんが、 少しでも手間を省くような方法がありましたら教えていただけると幸いです。

みんなの回答

  • pc_net_sp
  • ベストアンサー率46% (468/1003)
回答No.6

>複数ブック×複数ブックを1つのブックで集計するというのが無謀な挑戦なのかもしれませんが、少しでも手間を省くような方法がありましたら教えていただけると幸いです。 エクセルファイル1.xlsのB4に =[エクセルファイル2.xls]Sheet1!$B$4 と入れれば、ファイル間データが引っ張ってこれます。 計算時集計が面倒になりますが、「複数ブック×複数ブックを1つのブックで集計する」方法です。 エクセルファイル2.xlsを甲市.xlsとし、エクセルファイル1.xlsを各市の統計.xlsとでもすれば、ファイル整理は必要ないはず。 ただし、エクセルファイル1.xls(各市の統計.xls)を開く時、各市のデータファイル(エクセルファイル2.xls・甲市.xls)にアクセスしますので、かなっり重くなると思います。

  • mt2015
  • ベストアンサー率49% (258/524)
回答No.5

一例です。 各市のシートのA列に作業列を挿入し、「データ名_シート名」を入れます。 手入力でもいいですし、↓こんな感じのセル式でもいいです。 =B2&"_"&RIGHT(CELL("filename",A2),LEN(CELL("filename",A2))-FIND("]",CELL("filename",A2))) 後はまとめ用シートにデータの結合を行い、最後に並び替えを行えばお望みの状態に近いデータになると思います。 手作業でも良いと思いますが、シートが多い場合を考慮して以下の様なマクロを作成してみました。 Sub Sample()   'データの統合   nShtCount = ThisWorkbook.Sheets.Count   ReDim MyAry(nShtCount - 2)   For i = 2 To ThisWorkbook.Sheets.Count     MyAry(i - 2) = Sheets(i).Name & "!R1C1:R4C6" '←R4C6は実際の最大データに合わせて変更   Next i   Sheets(1).Cells.ClearContents   Sheets(1).Range("A1").Consolidate Sources:=MyAry, Function:=xlSum, TopRow:=True, LeftColumn:=True, CreateLinks:=False      '並び替え   With Sheets(1).Sort     .SortFields.Clear     .SortFields.Add Key:=Sheets(1).Range("A1")     .SetRange Sheets(1).Cells     .Header = xlYes     .Apply   End With End Sub

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

>(1)1つのブックに各市のデータを各シート毎に入力してあり、そのデータを参照したとりまとめのシートを作りたい。 新規に取りまとめ用のシートを作成するのですね? >(2)列の項目は全市同じだが、行の項目や数がそれぞれの市で違う。 画像で提示の形式ですか? >(3)実際は30行×100列くらいあるので、なるべく入力がコピペでできるか最低限の労力でやりたい。 1つの数式をコピペすれば済むようにしたいと言うことですよね? 可能ですが、複雑な数式を解読できる知識が無いと修正できなくなりますのでご自身で考えるか有償で処理システムを外注された方が良いと思います。 >(4)たとえば甲市の”A・X”の値をSheet4の”A・甲市”に表示したいときは、「Sheet1の行項目のなかに、Sheet4の行項目と同じ"A"があれば、Sheet1の"A・X"の値を入力、なければ0」のような数式を使えばいいのかと思ったが、このような数式があるのだろうか? INIECT関数で範囲を指定する方法を使えばSUMPRODUCT関数で目的の配置へ代入できます。 添付画像は提示の画像を元にExcel 2013で検証した結果です。 「Sheet4:Xとりまとめ」のB4セルへ次の数式を設定してF6セルまでコピーしています。 =SUMPRODUCT((INDIRECT($A4&"!$A$4:$A$6")=$A$3)*(INDIRECT($A4&"!$B$3:$F$3")=D$3)*INDIRECT($A4&"!$B$4:$F$6")) 「Sheet5:Yとりまとめ」と「Sheet6:Zとりまとめ」は「Sheet4:Xとりまとめ」の数式をコピーしてあります。 「Sheet1:甲市」、「Sheet2:乙市」及び「Sheet3:丙市」のシート名は夫々の市の名称(甲市、乙市、丙市)に変更しています。

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

こういう(複数)表の組み換えに当たる作業は、エクセル関数でなく、 (1)VBAとか (2)初めから設計時にアクセスを使うことにするものだ。 VBAやアクセスができなければ、本当はあきらめた方がよい。 ー 1つの方法は Shweet1、Sheet2、Sheet3の第1(左端列)列に空白列を1列挿入し、全行に各々、甲市、乙市、丙市を入れる(コピーで1発) そして順次、甲のデータ下に乙、乙の下に丙のデータをコピーして、貼り付ける。 この後、X,Y,Zの列(第2ソートキーを市の列)でソートする。 すると、 X、Y,Z別の甲、乙、丙順のデータになるから、X、Y、Z別にデータのまとまりをコピーして、新しいシートに張り付けて、シート名・見出し等の文言の体裁を整えてはどうか。 ーー データを入力する前にこういう点は、熟慮しないといけない点で、エクセルの経験が少ないのだろうが、あとで考えようというのはおかしいのだ。経験して失敗して、勉強しないとほかに手はない。 ーー エクセルには「統合」という機能がある。知らないだろうが、WEBででも照会して、勉強して。本件の場合に、応用できるかどうか(今は確認する時間がないが)考えてみて。

noname#232800
noname#232800
回答No.2

私も出来ません。 データの種類をご提示くだされば、詳しく進められますが、表計算は2次元です。聞くところ、自治体ごと、A、Bとか値の出方。日付。 自治体はいくつあるのか? 自治体数固定なのでしょうか? 10自治体ということで、進めたら20に増えたのを対処して欲しい。と質問されても答えられません。 まず、自治体数です。 次に日付。年度ごとなのですか? 3年分とか、5年分など動的に変わるのでしょうか? 私はまだ受けることができませんが、ビットコインで報酬は受けられるのでしょうか? うーん、わかんないなー

  • HohoPapa
  • ベストアンサー率65% (454/690)
回答No.1

関数では期待のことはできないと思います。 少なくとも私にはできません。 提示の資料であれば 一般には(あるいは私なら)、 添付画像のようなレイアウトにして 1ブック、1シートに集約します。 そうすれば、期待の検索や抽出は フィルターや並べ替えを使うことで容易に 可能となりましょう。

関連するQ&A

  • エクセルの数式をどのように入れたら良いでしょうか?

    エクセルの数式をどのように入れたら良いでしょうか? いつもこちらでお世話になっています。 今回も教えて頂きたく質問させていただきます エクセルについてですが、 sheet1に入っているデータを sheet2に入力するようにしたいのですが sheet1の A列に1~50までのNo. →A1セルにNo.1、A50セルにNo.50 B列に(1)データ C列に(2)データ があり sheet2の D5のセルに「1」と入力すれば、sheet1!A列の数字とリンクしてsheet!B1の(1)データが入り D6のセルに「10」と入力すれば、Sheet1!A列の数字とリンクしてsheet!C10の(2)データが入る ように設定し、 さらにsheet2のD5,D6のセルに上書きで(繰り返し)数字を入力させ 数式が消えないようにしたいのですが どのようにすればよいでしょうか? 分かりずらい説明で申し訳ありませんが 大変困っているので、アドバイス頂けると助かります。

  • EXCELの数式を教えて下さい

    今朝、ここで数式を教えて頂いて大変助かったのですが 又、一つ私にとって難しすぎるのが出ましたので教えて下さい。 1)EXCELの4行目から53行目までデータがあり、A4とI4とS4列は文字の項目です。G4列は売上の数値です。 2)例えば4行目から53行目までのある1行でA4(*JPY)、I4(*JPY)、S4(*アジア)の3項目が合致した行だけのG4の売上数値だけを4行目から53行目までの数値合計をだす数式をつくりたいです。3項目の合致がない場合はセルに0を表示したいです。 宜しくお願い致します。

  • 複数のシートを参照する数式について

    複数のシートを参照する数式について Sheet1   A  … 1  3 . . Sheet2   A  … 1  4 2  7 3  8 ←この値(8)をShett3に入れたい . . 上記値が入力されている場合 Sheet3の任意のセルに、Sheet2・A列のSheet1のA1に指定されている値の行を入力したいです。 (Sheet1・A1が1のときは、Sheet3に4、2のときは7、3のときは8を入力したい) この場合、Sheet3にはどのような数式を記載すればよろしいでしょうか?

  • エクセルの条件による数式の入力

    こんにちは!既存でも見つからなかったので質問させていただきます。どなたかご教授ください。 ●ひとつのブック内に2枚のシートがあります。sheet1とsheet2とします。sheeet1にしかるべき数式を入力したいです。 Sheet2には例えば名簿があるとします。明石から始まり渡辺まで500人ほどの名簿です。これはA列に1から順に名前、B列の1からは年齢が入っています。 Sheet1のA列1行に数式を入れます。A-1には文字列で【わたしは明石です。】と順にA-1~A-500まで順番に入れます。ただしこのとき年齢が18歳未満の時これは入力したくありません。さらにそこには空白のセルを必要とします。IF関数を使うとは思うのですが、このsheet2の列Bの年齢を条件でみっあった時のみを抽出して数式を入力する数式がわかりません。どのようにしたらよろしいでしょうか?

  • Excelの数式の自動変更について

    excelの数式で困っています。 以下のようなシート1があります。 シート1 │A B C ─┼──── 1│a b c 2│d e f 3│g h i シート2で、以下の数式でシート1の値"e"を参照しているセルがあります。 =シート1!B2 この式では、シート1に行や列を挿入しても、"e"の値があるセルを参照したままになるように、数式が自動的に変更されます。 そうではなく、以下の条件を満たすような数式に変更したいと思っています。 ・1行と2行の間に行を挿入  →数式が自動変更され、"e"を参照したままにする ・A列とB列の間に列を挿入  →数式は変更されず、元々"e"があった場所を参照する 何かよい方法はないでしょうか? 回答よろしくお願いいたします。

  • ■ エクセルのマクロで出来ますか?

    エクセルマクロの初心者です。 現在、業務で以下の様な表を作成し、請求書の発行を行っています。 「sheet1」A列のNo.を「sheet2」のA列(例えばセルA1)に入力すると VLOOKUP関数で必要項目が請求書の雛形に表示される仕組です。 複数行を抽出する場合は、複数のNo.(例: 1,3,10)を手入力(例: A1,A2,A3・・・)しております。 ----- <sheet1>    A列  B列   C列   D列  ・・・ 1行 No.  項目1  項目2  項目3 ・・・ 2行  1   値1   値2   値3  ・・・ 3行  2   値4   値5   値6  ・・・ 4行  3   値7   値8   値9  ・・・ <sheet2> 請求書の雛形 セルA1~A10に請求書を発行したい<sheet1>A列のNo.を入力。 ----- これを、A列の左に行を挿入、各行にチェックボックスを配置し、 チェックボックスをオンにした行のB列(行挿入前はA列)の値(No.)を 「sheet2」のA列(例えばA1/複数の場合はA1,A2,A3・・・10行程度)に コピーを行う仕組を作ることを検討しています。 複数のNo.をチェック(1,3,10)した場合は、 「sheet2」のA1,A2,A3の様に、上から順になれば理想的です。 説明が悪く、意図が伝わり難いこととは思いますが、 これらの作業を行うマクロ(他の方法も可)を組むことは可能でしょうか。 ご教授いただければ幸いです。 よろしくお願いいたします。

  • エクセルの数式についての質問です。

    下記の数式で、「一覧!A4:EG1003,137」の「一覧!A4:EG1003,137」が空白の場合に、空白で返す場合の数式をお教えください。 現状の数式 =VLOOKUP(B1,一覧!A4:EG1003,137) 補足説明 エクセルのシート(一覧シート)のA4:EG1003内で137列目が空白の場合は空白で返す数式にしたいです。 VLOOKUPを使用しているので、別シートのB1セルには一覧シートの専用番号の行の値を入力するとその行が全て別シートに反映される形になっています。その時に空白の個所があると0表示になってしまうので、空白は空白で返したいです。

  • 数式のみコピーする??

    過去ログ読んだのですが、いまいちはっきりしないので教えてください。 たとえば、Book1とBook2があり、  ・両方ともA、E、G、Jの列には固定の数値が入っている  ・Book1は複数行あり、AEGJ列以外には何も入力されていない  ・Book2は1行のみ。BCDFHI列にはそれぞれ計算式が入っている この状態で、Book2をマスターにして、同じ計算式を Book1に適用したいです。そこで  (1)Book2の1列目を全体コピー  (2)Book1の適用したい行を複数選んで    形式を選択して貼り付け→数式→OK とやると、計算式以外の部分である、AEGJ列の値まで ペーストされてしまい、全行が同じになってしまいます。 ここで言う「数式」とは、BCDFHI列のみを指して いるんじゃないのですか?? 何かいい方法ないですかね。。 同じ事する単純作業が900ブックくらいあるんです(笑)

  • エクセル数式教えてください

    エクセルの数式を教えてください! 参考書をみても適当な数式を探しだせませんでした・・ 売上をのせた一覧表を別シートに飛ばす方法です。 SHEET1  A  B   C  D   1   10日 11日  12日 2ペン 100  150  210 3靴  900  840  920  4鞄  1000  790  980  SHEET2  A  B   C   D 1   12日  11日  10日 2ペン 3鞄 4靴 販売項目(シート2のA列)と日付(シート2の1行目) を入れるとシート1から数字が飛ぶ数式を教えて下さい!

  • 《エクセル》配列数式について教えて下さい

    いつもお世話になります。 先日、このページで質問した時、配列数式について教えていただいて、例をもとに自分で作成しようとしたのですが、うまくいきません。 集計表A列とB列に項目行があり、別のファイル[Book1.xls]のSheet1にあるデータを羅列した表のA列とB列にある項目の2つのセルの内容に合致するデータ数をカウントする場合 =COUNTA(IF('[BOOK1.xls]Sheet1'!$A$2:$A$2000=$A1*'[BOOK1.xls]Sheet1'!$B$2:$B$2000=$B1)) と入力して、Shift+Ctrl+Enterキーを打ったのですが、「入力した数式にはエラーがあります」のエラーメッセージが出てきて、ヘルプを読んでみても解決方法がわかりませんでした。 お手数ですが、ご教授宜しくお願い致します。

専門家に質問してみよう