• ベストアンサー

EXcelの関数の1つの数値を一括で変換する方法

Excelにて次のような関数を作りました。 {=SUM(IF(入出庫管理!$C$5:$C$153=1,IF(入出庫管理!$D$5:$D$153=1,入出庫管理!$G$5:$G$153,0),0))} 入出庫管理表なるものを作ってそのシートに入力した数値をカレンダーに反映させるものです。 入出庫管理!$C$5:$C$153=1は製品番号、入出庫管理!$D$5:$D$153=1は日付、入出庫管理!$G$5:$G$153,0),0は入庫数です。ここでセル一つ一つに入力するのが面倒なので一月分のセルに最初に記述した関数をコピーした後、製品番号や日付を同時に変換する方法は無いでしょうか?ご教授お願い致します。

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

  • ベストアンサー
回答No.3

補足どうもです。 #2の方法は理解して頂けたでしょうか? (わからないようなら、また補足してください。) 置換する方法もあるとは思いますが、修正の度に置換するのも面倒なのでお勧めしません。 入出庫管理表の入出庫数に入庫数も出庫数も入力するのでしょうか? その場合、出庫数はマイナス入力なのでしょうか? #1さんの方法で、列番号を求める関数COLUMNがありますので、 日付の=1の部分を=COLUMN(A1)-1に置き換える方法もあると思います。 私が作るとすれば、カレンダーの1行目に日付を入力(B1セルに1、C1セルに2) B2セル =SUMPRODUCT((入出庫管理表!$C$2:$C$153=B$1)*(入出庫管理表!$E$2:$E$153=$A2)*(入出庫管理表!$F$2:$F$153>0)*(入出庫管理表!$F$2:$F$153)) B3セル =SUMPRODUCT((入出庫管理表!$C$2:$C$153=B$1)*(入出庫管理表!$E$2:$E$153=$A2)*(入出庫管理表!$F$2:$F$153<0)*(入出庫管理表!$F$2:$F$153)) (入庫はプラス、出庫はマイナスで入力していると仮定) (カレンダーの品名は、入出庫管理表の品名(品番ではない)が入力されている) として、B2とB3を選択して右方向へドラッグ(コピー・貼り付け) さらにそのまま、下方向へドラッグします。 入出庫数の入力方法が違っていたら補足してください。 カレンダーの1行目に日付を表示できなければ、COLUMNを使用すればいいと思います。

BigChance
質問者

お礼

ご丁寧に解説有難う御座います。無事目的を達成出来ました。感謝致します。

その他の回答 (3)

回答No.4

#3で訂正があります。 COLUMN(A1)-1 → COLUMN(B1)-1 関数の部分で 入出庫管理表! → 入出庫管理! です。すみません。

回答No.2

もう少しカレンダーの詳細が欲しいところですね。 #1さんのROW関数は行番号を取得する関数ですので、 1行目がタイトル行で、2行目からカレンダーが入っている場合、ROW(A2)-1のような修正が必要になります。 後、カレンダーには、製品番号の1や日付の1はどこかのセルにタイトルがあるのでしょうか? 例えば、カレンダーが   A    B  C  D  E  F  ←列 1 日付  1  2  3  4  5 2 製品1 3 製品2 4 製品3 ↑ 行 のような表だとすると、(分かりやすいように製品番号を製品1・・・にしてあります。) B2セルに =SUMPRODUCT((入出庫管理!$C$5:$C$153=$A2)*(入出庫管理!$D$5:$D$153=B$1)*(入出庫管理!$G$5:$G$153)) のようにタイトルの値を参照するようにすれば、いちいちコピーした関数を修正しなくてもいいと思います。 (日付と、製品番号が逆でも同じようにできます。) (配列数式でもできます。) $A2やB$1のように、列や行の前に$をつけると コピーした場合に、 $をつけた列、行指定は値が変わらず、$をつけてない指定のみ値が変化します。 $A2を横にコピーしても、どの式も$A2のままで、     縦にコピーすると、$A3、$A4のように変化 B$1を横にコピーすると、C$1、D$1のように変化し、     縦にコピーしても、どの式もB$1のままです。 複雑なカレンダーですと、面倒ですが・・・ カレンダーの詳細が分かれば、もう少し具体的な回答もできると思います。

BigChance
質問者

補足

お忙しい中ご回答本当に有難う御座います。 taisuke555様のご指摘がありましたのでもう少し表の詳細を説明致します。 表は備品管理表と入出庫管理表とカレンダーに分かれております。備品管理表で  A   B    C    D    E  品番  品名  入庫数  出庫数  現在庫 1 1   鉛筆   10         10    2 3 というように品名に品番をつけます。 入出庫管理表では   C  D  E            FG 1 日付 品番 品名(備品管理表より抽出)入出庫数 2 1日  1   鉛筆 10 3 となっております。 入出庫管理表に日付と品番、入出庫数を記入する様になっております。 (入出庫数はトータルで備品管理表に反映されます。) 本来の管理目的はここで終了なのですが、どうしてもカレンダーで入出庫を書き出す必要がある為  A    B     C      D ~ 1品名 1日の入庫数 2日の入庫数 3日の~  2    1日の出庫数 2日の出庫数 3日の~ 3品名  同上~ となっております。 たとえば入出庫管理表に「2日に品番1が10入庫」とするとカレンダーのC1に「10」と記入されるようにしました。品番が多くなるとカレンダーも相当数になるので出来れば1日から31日までの最初に記述した関数(最初の説明で品番と日付が逆でした。)を一列作ってそれをコピー。品番のみを列ごとに一括で変更するか、最初のセルの日付を1にして品番を変えづに日付だけが連番で変わるようにする方法が無いかということなのです。説明べたで申し訳ありません。

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.1

こんにちは。maruru01です。 つまり、日付の場合、 入出庫管理!$D$5:$D$153=1 入出庫管理!$D$5:$D$153=2 入出庫管理!$D$5:$D$153=3 ・・・ と連番コピーをしたいということでしょうか。 それなら、最初のセルに、 入出庫管理!$D$5:$D$153=ROW(A1) と入力して下の行へコピーすれば出来ます。 整理番号も同様だと思います。 ちなみに、質問の式は配列関数を使用しなくても出来ますよ。 =SUMPRODUCT((入出庫管理!$C$5:$C$153=1)*(入出庫管理!$D$5:$D$153=1)*(入出庫管理!$G$5:$G$153)) です。

BigChance
質問者

お礼

SUMPRODUCT使えました。目的の作業以上の収穫でした。有難う御座います。

BigChance
質問者

補足

お忙しい中ご回答本当に有難う御座います。 taisuke555様のご指摘がありましたのでもう少し表の詳細を説明致します。 表は備品管理表と入出庫管理表とカレンダーに分かれております。備品管理表で  A   B    C    D    E  品番  品名  入庫数  出庫数  現在庫 1 1   鉛筆   10         10    2 3 というように品名に品番をつけます。 入出庫管理表では   C  D  E            FG 1 日付 品番 品名(備品管理表より抽出)入出庫数 2 1日  1   鉛筆 10 3 となっております。 入出庫管理表に日付と品番、入出庫数を記入する様になっております。 (入出庫数はトータルで備品管理表に反映されます。) 本来の管理目的はここで終了なのですが、どうしてもカレンダーで入出庫を書き出す必要がある為  A    B     C      D ~ 1品名 1日の入庫数 2日の入庫数 3日の~  2    1日の出庫数 2日の出庫数 3日の~ 3品名  同上~ となっております。 たとえば入出庫管理表に「2日に品番1が10入庫」とするとカレンダーのC1に「10」と記入されるようにしました。品番が多くなるとカレンダーも相当数になるので出来れば1日から31日までの最初に記述した関数(最初の説明で品番と日付が逆でした。)を一列作ってそれをコピー。品番のみを列ごとに一括で変更するか、最初のセルの日付を1にして品番を変えづに日付だけが連番で変わるようにする方法が無いかということなのです。説明べたで申し訳ありません。

関連するQ&A

  • エクセルの関数の数値を複数セル同時に変換する方法

    Excelで在庫管理をしております。入出庫管理表のデーターから下記の関数で数値を引っ張ってカレンダーにしております。=後の数値(1の部分)を他の数値に複数セル同時に変換する方法はあるのでしょうか?ご指導頂ければ幸いです。 =SUM(IF(入出庫管理!$C$5:$C$254=1,IF(入出庫管理!$D$5:$D$254=1,入出庫管理!$H$5:$H$254,0),0))

  • SUMIFS関数で行が変わると反映されない。

    写真の、上のシートで入庫または出庫を選んで数を入れると下のシートの入庫数、出庫数に自動で反映されるようにしたいです。条件は製品番号が一致していることです。 SUMIFS関数を使ってみたらシート間で同じ行には数字が反映されたのですが、上のシートの6行目に出庫数を入れても、下のシートの同じ製品番号である1行目の出庫数に反映されません。 使用した関数は以下です。(写真内と同じもの) =SUMIFS(OFFSET(入出庫リスト!$H$3,0,0,COUNTA(入出庫リスト!C:C),1),OFFSET($E$3,0,0,COUNTA(入出庫リスト!C:C),1),[@製品番号],OFFSET(入出庫リスト!$G$3,0,0,COUNTA(入出庫リスト!C:C),1),"出庫") 関数のどこを間違えているのか教えて頂きたいです。 よろしくお願いします。

  • エクセル関数について

    エクセルの部品管理表を作成しています。 エクセルのシート1に入出庫表、シート2に、実在庫数表、シート3に発注表、シート4に部品名と作成しました。 シート1のA1セルに部品名、B1セルに部品サイズ、C1セルに日付、E1セルに、実在個数(箱数)、F1セルに実在個数(本数・入数)、G1セルに入庫、H1セルに出庫、と入力しました。 シート2にはA1セルに部品名、B1セルに部品サイズ、C1セルに期首在庫(箱数)、D1セルに期首在庫(本数・入数)、E1セルに実在個数(箱数)、F1セルに実在庫数(本数・入り数)と入力。 シート3のA1セルに部品名、B1セルに部品サイズ、C1セルに発注日、D1セルに発注数、E1セルに受取日(入庫日)、F1セルに受取個数(入庫数)、G1セルに受取本数(入庫本数・入数)と入力。 シート4のA1セルに部品名、B1セルに部品サイズ、と入力。(部品名は約200種類、部品名は同じでもサイズ違いの部品がある、部品コードは存在しない。) 教えて頂きたいことは、 ・在庫管理を行うにあたり、上記のようなファイルの作り方でいいのか?。(縦に表を使うのか、横など) ・付け足したほうがいい項目があるか。 ・シート1(入出庫表)には部品名と部品サイズは部品コードが無いため入力規則を使用し、日付、入庫数、出庫数は手入力で行うとし、実在個数(箱数)、のセルには関数を入れ値を表示したい。入庫数と、出庫数は箱数で入力するものとし、入庫があれば、実在個数(箱数)の値が増え、出庫があれば、実在個数(箱数)の値をへらしたい。実在庫数(本数・入数)は実際に入庫してみないと、1箱に何本入っているのか曖昧な為、大体の数値で設定した。(1箱に200本など) 実在個数(箱数)に値を表示するにはどのような関数を使えばいいのか。 ・シート2(実在庫表)に、部品名と部品サイズが約200行程度、入力されており、実在個数(箱数)、実在個数(本数・入数)を在庫一覧としたい。期首在庫(箱数)と期首在庫(本数・入数)は在庫を確認し、数字を入力済み。実在個数(本数・入数)は、大体の数値で設定済み。 部品名、サイズ毎に実在個数(箱数)に値を表示するにはどの様な関数を使えばよいのか。 説明不足でしたら申し訳ございません。 よろしくお願いします。

  • ExcelのVlookup関数の応用について

    ExcelのVlookup関数においての質問です。 画像のような場合において、 どのようにしたら”最終入庫”と”最終出庫”の値を 『導き出したい値』のように引っ張ってこれますでしょうか? (画像では手入力しています) 品目が複数のセルに存在し、入出庫ステータスがバラバラであり、 各入出庫の最新の日付を検索したい場合どのようにしたらよいか お知恵を拝借できますと幸いです。 宜しくお願い致します。

  • エクセル関数について

    いつもお世話になります。 ”管理”と”リスト”というシートがあります。 ”管理”シートは A1    B1    C1・・・・・ 番号   名前   住所・・・・ と、情報が管理してあります。 ”リスト”シートのB3に番号を入力するセルを作りB11に =IF($B$3="","",VLOOKUP($B$3,注文管理!$A$3:$AE$9880,31)) という関数を入れて、”管理”シートの該当セルに記入があるなら B11に返すようにしています。B11に答えが返った場合、D4に「★備考あり★」と返したいのですが、 =IF(B11>1,"★備考あり★",IF(B11<1,"")) の関数を使うと、もともとB11には関数が入っているのでずっと「★備考あり★」のままです。 これを、B11に答えが返ってきた時のみ「★備考あり★」とする関数はありますか?

  • エクセル関数のセル参照方法

    エクセル関数のセル参照で、あるセルに入力した数値を、参照するセルの行番号として使いたいのですがどうしたらよいのでしょうか? VBAではそのような方法があったと思うのですが、関数で処理する方法はあるのでしょうか? たとえば、 =SUM(C5:C*) のような関数で「*」を他のセルに入力して参照させることは可能でしょうか? よろしくお願いいたします。

  • Excelで条件に一致する数値の合計を求める

    日付け列と商品名(商品ID)列と入庫、出庫列を作ったとして、一日に何回にも分かれて同じ商品が入出庫された場合、伝票でその都度入力したとします。後日見て何日に商品ID"何"が合計何個入庫したかをほかのセルに表示したい場合どのような関数を使えばよいのでしょうか?解りずらい質問ですが、ご回答頂きたく御願い致します。

  • Excelの関数について

    Excelの関数について教えてください。 C1に50、D1に30、E1に=SUM(A1:D1)、B2に=E1-SUM(A1:B1)、が入力されています。 このB2の計算式を、「もしB1:C1のどちらか片方(もしくは両方)に値が入力されているときはB2の計算式の結果が返ってくる。B1:C1のどちらも空欄のときは「#N/A」が返ってくる。0は入力有りとみなす」というようにしたいです。 IF関数にISBLANK関数を入れてみたんですが、片方に入力有りでも「#N/A」が返ってきてしまいます。 =IF(ISBLANK(B1:C1),NA(),E1-SUM(A1:B1)) ISBLANK関数じゃダメだったんでしょうか? どういうふうに変えればいいんでしょうか? すみませんがどなたか教えてください。

  • EXCELで関数のセル指定を数値に変換

    エクセル2003を利用していて、 A1に 1 B2に =3 C3は空白 D4に =2+5 とそれぞれ入力 =SUM(A1,B2,C3,D4) となっているとき SUM関数のなかみを =SUM(1,3,0,2+5) と置き換える方法はありませんか? (置換する必要のある関数は1シートの中にたくさんあるので1つ1つF9するのは厳しいです) マクロで何とかならないかと考えているのですが、ほかの方法でも構いません。 元データは削除しつつ合計結果の内訳を簡単に見られるようにする必要があるため このような手段を講じようとしています。 宜しくお願いします。

  • Excel 検索に関する関数について教えてください

    色々と試しましたが、どうしてもうまくいかないので教えてください。 A列に休日を除いた日付(生産カレンダー)が入っています。 日付は手入力です。 A列 2008/5/14 2008/5/15 2008/5/16 2008/5/19 2008/5/20 2008/5/21 B1セルに任意の日付が入力された時、C1のセルに任意に入力されている数値分だけ前の日付をA列を参照してD1セルに表示したいのです。 例えばB1セルに2008/5/20、C1セルに3と入力された場合、D1セルには2008/5/20の3つ上のセルの値、2008/5/15を表示させたいのです。 生産カレンダーは列でなく、行にしても可です。 LOOKUP系やOFFSETなども複合したりして試してみましたが、うまくいきません。 ご教授よろしくお願いします。

専門家に質問してみよう