• ベストアンサー

エクセルのシートについて

エクセルでバイクの在庫管理表を作ろうと思いまして50ccと250ccと400ccの3種類の車両がセルにあるとします シートを4つ作成して1つ目のシートの名前は【全車種】2つ目は【50cc】3つ目は【250cc】4つ目は【400cc】作成して【全車種】をメインに編集して使用したいと思ってます。 メインを編集(追加や削除)したら2つ目以降のシートにも自動で反映させる方法とはあるのでしょうか? 例えばメインの50ccのA車両を削除したら【50cc】のシートにも同じように削除みたいな感じです 以上な事が出来るのであれば、もう一つ質問なんですが、下のセルがあるとします↓ 【全車種】メインシート 1行目 【A車】【400cc】 2行目 【B車】【50cc】 3行目 【C車】【250cc】 メインシートの2行目の50ccのB車を削除したとします そしたら【50cc】のシートは 1行目 【D車】【50cc】 3行目 【F車】【50cc】 になるのでしょうか? それとも 1行目 【D車】【50cc】 2行目 【F車】【50cc】 と自動で上がってくれるのでしょうか? 解りにくい説明ですいません アドバイスよろしくお願い致しますm(__)m

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

  • ベストアンサー
  • telescope
  • ベストアンサー率54% (1069/1958)
回答No.2

ピボットテーブルを使えば簡単に出来ます。 1行目にはタイトルを入れます。 タイトルが「車名」、「排気量」とすると 【全車種】メインシート 1行目 車名   排気量 2行目 A車  400 3行目 B車   50 4行目 C車  250 質問例では、50ccとccがついていますが、置換などで削除して数値だけにしてください。表示したければ、セルの表示形式でccを表示します。 表のどれかのセルを選択して「データ」-「ピボットテーブル~」を選択します。【次へ】ボタンを押すと、表の範囲を自動で選択されていますから、範囲が違っていれば修正します。良ければそのまま【完了】ボタンを押します。 「ページのフィールド」に【排気量】をドラッグします。 「行のフィールド」に【車名】をドラッグします。 「データフィールド」にも【排気量】をドラッグします。 これでメインシートと同じ「全車種」の表が出来上がったと思います。 もし、「データの個数:排気量」となっていたら、そこを右クリックして、「フィールドの設定」で[集計の方法]を[合計]に変えます。 「ページのフィールド」を右クリックして、「ページの表示」を選択すると、自動的に「排気量」別のシートが出来上がります。 元の「メインシート」とピボットテーブルの「全車種」「50cc」「250cc」「400cc」の5つのシートがあることになります。 メインシートの一部を削除したり修正した場合、「全車種」のピボットテーブルのシートで表内のセルを選択して、赤い「!」をクリックするとデータが更新されます。排気量別のシートも自動で更新されます。 削除したものは、自動で繰り上がります。

noname#186192
質問者

お礼

遅くなりましてすいませんでした ご丁寧にありがとうございました

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

その他の回答 (1)

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

自称imogasi方式で解けます。各機種は999件以下と仮定します。 例データ Sheet3のA2:C17(C列は関数で。後述の結果) A列  B列   C列 a 450 4001 b 50 1001 c 250 2001 d 750 6001 e 450 4002 f 750 6002 g 250 2002 h 50 1002 i 250 2003 j 300 3001 k 300 3002 l 450 4003 m 250 2004 n 750 6003 o 50 1003 p 250 2005 VLOOKUP関数用に Sheet3のG2:H7に G列  H列 50 1 250 2 300 3 450 4 500 5 750 6 Sheet3のC2に=VLOOKUP(B2,$G$2:$H$7,2,FALSE)*1000+COUNTIF($B$2:B2,B2) を入れてC17まで式複写. 結果は上記C列の通り。 Sheet4に行って B2に =INDEX(Sheet3!$A$2:$C$100,MATCH(1000+ROW()-1,Sheet3!$C$2:$C1000,0),1) B3以下に複写。 C2に=INDEX(Sheet3!$A$2:$C$100,MATCH(1000+ROW()-1,Sheet3!$C$2:$C1000,0),2) c3以下に複写。 Sheet5に行って B2に =INDEX(Sheet3!$A$2:$C$1000,MATCH(2000+ROW()-1,Sheet3!$C$2:$C1000,0),1) B3以下に複写。 C2に =INDEX(Sheet3!$A$2:$C$1000,MATCH(2000+ROW()-1,Sheet3!$C$2:$C1000,0),2) C3以下に複写。 Sheet6以下同様(略) その結果、各シートの結果は下記。 Sheet4 b 50 h 50 o 50 #N/A #N/A #N/A #N/A Sheet5 c 250 g 250 i 250 m 250 p 250 #N/A #N/A #N/A #N/A Sheet6 j 300 k 300 #N/A #N/A #N/A #N/A #N/A #N/A #N/Aが見えないようにする方法は複雑になるので略。 過去のimogasi方式の回答を見てください。

noname#186192
質問者

お礼

ご丁寧にありがとうございました! 頑張ってみます!

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

関連するQ&A

  • エクセルのシート1のある行をシート2に入力

    お世話になります。 エクセル2010を使っています。 たとえばシート1に、以下のような行があったとしましょう。     A       B       C    D 1(  1  )(2011/11/11)(にんじん)(100) ()はセルを表し、()内がセル内のデータです。 この行を、シート2に自動入力する方法を教えてください。 よろしくお願いします。

  • エクセル VBA あるシートで指定したセルを他のシートの下端のセルに自動で貼り付ける

    エクセル2003です。宜しくお願い致します。 シートは「メイン」、「本社」、「地方」というのがあり、「本社」と「地方」は全く同じフォーマットで、「メイン」は本社か地方を分類する欄があります。 元のデータを「メイン」シートに入力後、フォームで作成したボタンをクリックしたら、各行が「本社」、「地方」に自動で振り分けられるようにしたいです。(追加で振り分けた際には、最後の空白行にデータが追加されるようにしていただきたいです。) 各シートは以下のようになっています。 ・「本社」、「地方」シート   A     B   C 1通し番号 名前 性別 2 ・「メイン」シート   A     B   C   D   1通し番号 名前 性別 場所 2 ※1行目は項目名です。  通し番号は、各シートで固定なので、マクロを実行しても変わることはありません。  振り分けたいデータは、「メイン」シートのB2,C2以降のセルです。  振り分け先のシートを見分けているのは、D1セルです。  VBA実行ボタンをクリックしたら、下端のセルに自動でデータが追加されるようにしたいと思っています。(ただし、通し番号は各シート毎の番号が保持されたままです。)つまり、B列、C列の下端に自動で貼り付けられるということです。 マクロ初心者で、ネットをいろいろと調べたのですがどうもうまくいきません。 宜しくご教示いただければ幸いです。

  • エクセルについて

    【sheet1】     A    B   C    D    E    F   G 1   1    ★   ●   ■   ◆    ☆   ◎ 2   2    海   山   川   陸    水   土 3   3    (1)   (2)   (3)   (4)    (5)   (6) 【sheet2】     A    B   C    D    E    F   G 1                      ◆  2   ☆              ★ 3   ■                  ●       ◎    sheet1に必要事項を記入します。 で、例えばですがsheet1のあるセルに「1」と入力すると、 行No.1に記入してある「★●■◆☆◎」がsheet2の一定のセルに自動的に 反映させたいのですが、関数で可能でしょうか? あるセルに「2」と入力した場合は、行No.2に該当するデータがsheet2に反映されます。 「★のところは→海」「●のところは→山」「■のところは→川」…といった感じで 自動的に反映させたいのですが。

  • シートの違うセルを参照したいのですが・・・

    Sheet1 A1  B1  C1  D1 Sheet2 F1 F2 F3 F4 Sheet1 A1 のセルには Sheet2 F1 のセルを Sheet1 B1 のセルには Sheet2 F2 のセルを 参照するような数式を作成したいと思っています。 お教えくださいますよう、お願いいたします。

  • 2つのエクセルのシート間でこのようなことは出来ますか?

    こんにちは 1つのエクセルファイルに2つのシートがあり(シートA、シートBとします。両シートはともに300行100列ほどの大きさで、各セルに値、数式、第3のシートセルの参照等が入っています。また、両者とも結合されたセルが散らばっていますが、結合セルの番地は同じです。)両者のシートは非常に似ているのですが、セルの中身、行列の高さ・幅が微妙に違います。 ここで2つのシートを使い、次のような新たなシートを作りたいのです。 ・セルの中身はシートAとまったく同じ。 ・行の高さと列の幅はシートBとまったく同じ。 新たなシートの中身はシートAとまったく同じなので、シートAを元にして行の高さと列の幅がシートBと同じになるようにすればよいと思うのですがやり方が分かりません。かといって1行、1列ごとにシートAの高さ、幅を変更するのも大変です。 何方か簡単に出来る方法が分かる方はいらっしゃらないでしょうか? よろしくお願いします。

  • エクセル、各シート毎に参照行を自動でずらしたい

    元となるシートには1の行にA1のセル=4/1とあり、 その日の出勤者が B1セルにAさん C1セルにBさん…と入力されています。  そこで、4/1から4/30までのシートを新規に作成し、    4/1のシートには原本シートの1行目    4/2のシートには原本シートの2行目 と表示さえできれば、各シートまとめて参照セルを指定してしまえばできるかなと思っておりますが…どうぞよろしくお願いします。

  • Excelで範囲内にあるデータを引用して表示させる方法

    こんばんわ。いつもお世話になります。 また、皆様のお知恵を借りたくて質問させていただきます。 今回下記のような、2つのシートがあり、メインシートのA1のセルに任意の数値を入れるとサブシートに既にマスタとして入力されてある表のDセル、Eセルの間の範囲にある行のAセル、Bセル、Cセルの値をメインシートで表示をさせたいのですが良い方法はありますでしょうか。 例えば、メインシートA1セルに「135」の数値をいれるとサブシートのD、E各列から範囲に適応する行(130以上~150未満)のA3、B3、C3のセルの値をメインシートのB1、C1、D1のセルに表示させたいのです。 サブシートのデータ数は約50行程あります。 申し訳ありませんがよろしくお願いします。説明不足なところはその都度補足させていただきます。 メインシート(Sheet1) A B C D 135 140 ウ c 107 100 ア a サブシート(sheet2) A B C D E ア a 100 90以上 110未満 イ b 120 110 130 ウ c 140 130 150 シートがうまく表示できてませんが、よろしくです。

  • エクセルVBA シート1からシート2へ転記したい

    シート1のデータはそのままで、 シート2に編集して転記したいです。 シート1にはA列からI列までデータが入っています。 行数は都度変わりますがデータは3行目から始まり 大体500行くらいです。 転記方法は シート1のD列→シート2のA列 シート1のE列→シート2のB列 シート1のF列→シート2のC列 シート1のC列→シート2のD列 でシート1のD列の値が同じ場合は 転記先のシート2の行数は増やさずにシート1のC列の値を 同じ値のF列内にカンマでつないで転記したいです。 でそのつないだ合計数をシート2のE列に表示したいです。 イメージ C  D    E     F ------------------------ A1 みかん 国内 Sサイズ A3 みかん 国内 Sサイズ D6 みかん 国内 Sサイズ D9 りんご 国内 Mサイズ G7 りんご 国内 Mサイズ F5 バナナ 海外 Lサイズ G1 バナナ 海外 Lサイズ A2 いちご 国内 Sサイズ D8 いちご 国内 Sサイズ F3 いちご 国内 Sサイズ H2 いちご 国内 Sサイズ   ↓ A    B    C      D     E ------------------------------------------- みかん 国内 Sサイズ A1,A3,D6   3←3個 りんご 国内 Mサイズ D9,G7     2←2個 バナナ 海外 Lサイズ F5,G1     2←2個 いちご 国内 Sサイズ A2,D8,F3,H2  4←4個 上記例の場合は元データは11行ですが編集後は4行です。 配列は自力で作成できないので考え方を教えていただきたいです。 構文をそのまま書いていただいても大変助かります。 Do~LoopかFor~Nextで上から順最終行まで処理で シート1からシート2へ転記する構文をかいて D列の値が直前に処理した値と同じ場合は 転記はしないでC列の値を変数1に代入し シート2の該当行のD列も変数2に代入し 変数1&","&変数2で対象行のD列に転記と考えましたが うまくできませんでした。 またシート2のE列の求め方ですが、上記変数1,2に代入した後に 変数3=変数3+1とかの文でカウントし、 その値を転記すればいいのでしょうか? すいません。今日1日頑張ってうまくできず 上手く説明できません。 よろしくお願いします。

  • vbaでシートより100より大きい値を削除するコードを教えてください

    vba初心者です。 値の羅列のシートでセルの値が100より大きいセルはのある行は削除したい時どのようなコードを書けばわからず苦慮してます。 例として下記のようなシートの場合どうかきますでしょうか? A B C D E F ---------------------------------------- 1 20090101 20 30 95 40 ---------------------------------------- 2 20090102 25 35 105 45 ---------------------------------------- 3 20090103 40 50 110 50

  • 複数のSheetのデーターを一枚のシートへ転記させる。

     エクセル初心者です。よろしくお願いします。 例えば      A     B      C    D     E      F 1 2  タイトル  タイトル              タイトル 3    a     b                    f 4 5 6 という全く同じSheetを毎日一枚ずつ作成していくとして、ここで”集計”Sheetに        A        B         C      D      E 1                      タイトル   タイトル  タイトル 2 追加した日付 追加Sheet名     a       b       f 3 追加2枚目  4 追加3枚目 5    " 6    " と言うように、行ごとに追加されていくSheetのデーターを”集計”一枚に自動で転記していきたいと思います。当方全くの初心者ですので、できましたら関数で教えて頂きたいと思います。 追加した日付や追加したSheet名を自動での転記させる方法は関数では無理かもしれませんが、タイトル集計だけでもかまいませんので、わかる範囲でよろしくお願いします。

専門家に質問してみよう