• 締切済み

エクセルの計算式

こんにちは。教えてください。 画像のように、D1~H1に人の名前が入るのですが ここは、毎回名前が違います。 日にちごとにシートを変えるとして 例 sheet1 4月1日 D1にAさん   sheet2 4月2日 E1にAさん   sheet3 4月3日 H1にAさん こういう風になった場合、とにかく1列目に名前が入った場合は 自動で、Aさんのsheetに、キロ数と金額とばすようにセットしたいです。 よろしくお願いします

みんなの回答

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

#4です。 今までの質問者だと、補足要求をしても、補足をくれた人は非常に少ないので、 今回は押し掛け的に、仕様も#4の線で、こちらで推測しやってみた。 しかし最近エクセルをやり始めた人が、できるほどやさしい問題ではないと思う。 (この下記の式を自分の課題の場合に微修正することもできないかもしれない。) 色んな人も見ていたり、将来にも、類似課題で、このコーナーのこの質問を(WEBで)見るかもしれないので、あえて記す。 ーー 元データ 1日1枚のシート。4月1日から4月3日まで1枚ずつ。4日以後は省略。 担当者は3名。山田、佐藤、木村とする。 データ例は 4月1日(4月1日分ということで、シート名とする) A1:D2 4月1日 山田 佐藤 木村 以右列略 (A1の4月1日は文字列) (注意)数字文字列は半角か全角どちらかに統一すること。 データ  22 33 35 4月2日(シート名) A1:D2 4月2日 佐藤 木村 山田 以右列略 (A1の4月2日は文字列) データ     16 25 35 4月3日(シート名) A1:D2 4月3日 木村 山田 佐藤 以右列略 (A1の4月3日は文字列) データ     27 17 29 ーー 質問に基づいて、山田、佐藤、木村の列が日によって違う、設例にした。 == 上記3シートのほかに、山田、佐藤、木村のシートを作る。 まず佐藤にシートにおいて、 A列A1:A5に下記データを作る。 山田  データ 4月1日  4月2日 4月3日 4月4日 ・・ 以下略。4月1日をA2にいれて、右下ハンドルを出して下に引っ張れば連続した日が入る。 データは「見出し」のつもり。ただ休日は省くとなると注意必要。 (注意)4月1日などは文字列とする。シート名と一致させること。日付シリアル値を使わない。 ーー 同じく佐藤のシート、木村のシートを作る。すなわち、担当者分だけ作る。 === (関数式の設定) 山田シートのB2に =INDEX(INDIRECT("'"&A2&"'!B1:J10"),2,MATCH($A$1,INDIRECT("'"&A2&"'!B1:J1"),0)) その式をB4まで複写。 山田シートの結果 A1:B4 山田 データ 4月1日 22 4月2日 35 4月3日 17 同じく佐藤のシートのB2に =INDEX(INDIRECT("'"&A2&"'!B1:J10"),2,MATCH($A$1,INDIRECT("'"&A2&"'!B1:J1"),0))と式を入れる。 山田のシートのB2の式と同じ式である。式を複写できるということ。 その式をB4まで複写 結果 佐藤 データ  ここの「データ」は、質問では「重量」? 4月1日 33  ↓式の複写 4月2日 16 4月3日 29 木村シートも同じなので説明の記述略。 結果 木村 4月1日 35 ↓式の複写 4月2日 25 4月3日 27 担当者名とシート名とを相対化した(式の中に、具体的なシート名や担当者名は出てこないことに注意) このために INDIRECT関数を使わざるを得ない。 ここではINDEX,INDIRECT,MATCHの3つの関数の組み合わせを使っている。 質問例に出てくる「単価」については、説明略。この回答のデータ例に出してないが、式の1か所だけ変えれば出せる程度のもの。

cocoharu07
質問者

お礼

大変、ご丁寧に説明頂いてありがとう ございます。 なんとか、やってみます。 ありがとうございます☆

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

質問にあいまいな点がある。エクセルの経験が少ないとそうなる場合が多い。 小生だったら、質問文を以下のように書く。 間違った点があれば、よければ補足してください(今までの経験では、質問者は補足しないが)。 回答者は通り過ぎた可能性も多いので、質問しなおすのも手だと思う。 ーー (元(素)データ作成の実情) (1)1日1シートを作成。日にちごとに別シートに作成。 (2)各日のシートの第1行目に、担当者は、第1行目の各列に入力される。 すなわち複数担当者のデータが1シートに混じった表。 (3)ただし日によってある担当者の入力される列はバラバラに変わる。 だから、素データで1月につき31枚以下のシート数になるということらしい。 次月データは、シート的には、どうなるの? (出力希望) (1)担当者ごとに出力シートを分けたい。(すると、担当者数のシートが必要ということになる)(この希望もわかるが、シート数を使い過ぎだと思うが。) (2)Aさんのシートで、たとえばA列にその月内の日付を作る。 (第I行目を見出しとして)4月1日分が第2行、4月2日分が第3行、・・)となる。 日付がないとデータのあるシートが特定できない。 そのB列に、元データの30・31枚のシートからAさんの列のデータ(数量、単価?)を取ってきて、日付順に順次行的に下方向に並べて行きたい。 元(素)データの日付は、どこのセルにあるの?か質問に書いてない。 (1)毎日の素データシートの第1行目で、エクセル関数で、Aさんを見つけるのはそうむつかしくない。MATH関数など。 (2)しかしエクセルシートの4月1分や4月2日分を見つけるのは、エクセル関数では簡単でない。 どういうシート(タブ)名の命名方法を取るかによるが。 ーー 上記の小生の質問の言い直し解説に間違いはあるか? 間違いがあれば、その点を、できれば補足してみてください。 ーー 小生は、たまたまVBAを使えるので、何とかなりそうだが、質問者には、VBAはお呼びでないだろうと思う。 するとエクセル関数の利用しかないが、行と列もはっきりしない程度の力の質問者に、エクセル関数を使って、本課題をやるのは、無理だろうとおもう。 関数で、複数!の該当データを抜出して1シートに一覧に出すのは、そもそもむつかしいのだ。 (Googleで「エクセル関数 抜出(または抽出)」で照会すれば、どうむつかしいのかわかる。 ーー もし小生の大きな誤解なら、本件記述は無視してください。回答も3件出ているので誤解しているのかもしれない。私にすれば3件の回答が簡単なのが不思議。 ー== 全般のアドバイスとして (1)関数を使うレベルなら、シートはなるべく増やさない。 (2)データの入力構想(シートのどの列とどの行にデータを入れるか)は、後日アウトプットしたい結果も勘案して、計画し決めるべきなのだ。まずシートにデータを適当に作って、あとから抜出やデータの並べを考えるというのは、課題をむつかしく、または不可能にするのだ。

cocoharu07
質問者

お礼

いろいろと、ご意見ご回答ありがとうございます。 最後のアドバイスで、シートは増やさないのところで まさにそうしたいのですが、 その方法がわかりません。 例えば、せめて1か月ごとにシートをわけるなど。 初心者には、レベルが高かったですね。。すみません。 本当にありがとうございました。

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

4月1日がSheet1,2日がSheet2にあり集計シートのB1セルに抽出したい名前が入力されているなら、B2セルに以下の式を入力して下方向にオートフィルしてください。 =HLOOKUP(B$1,INDIRECT("Sheet"&ROW(1:1)&"!1:3"),COLUMN(B:B),0) 必要に応じてIFERROR関数でエラー処理してください。

cocoharu07
質問者

お礼

ありがとうございます❗ 挑戦してみます。

全文を見る
すると、全ての回答が全文表示されます。
  • shintaro-2
  • ベストアンサー率36% (2266/6244)
回答No.2

こんなところを参考にしてください。

参考URL:
http://pc.nikkeibp.co.jp/pc21/tech/excel36/25/
cocoharu07
質問者

お礼

ありがとうございます。 夜、じっくり挑戦してみたいと思います。

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

HLOOKUP関数を使ってみてください。

cocoharu07
質問者

お礼

夜、じっくり挑戦します。 ありがとうございました。

cocoharu07
質問者

補足

早速ありがとうございます。 初心者のもので・・・ 行番号とはどこのことをさすのでしょうか?

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

関連するQ&A

  • エクセル関数の自動表示について

    自動表示についてご質問いたします。 シート1 (3月入力時)       A列  B列  C列  D列  E列  F列  G列  H列 1行目  1月   2  10  11  12  30  31  33 2行目  2月   1   2   5   8   9  10  48 3行目  3月   3   5  10  11  30  31  32 4行目  4月   こういうシート1の表があったとします。 シート1で3月入力した時点で、シート2では以下の表があったとします。        A列  B列  C列  D列  E列  F列  G列   1行目    3   5  10  11  30  31  32 と、自動で表示され。 4月(シート1)に数値を入力すれば、シート2の数値が最新数値に自動で入れ替わる・・・と、いう関数を作りたいのですが、いい関数ありますでしょうか? この場合、シート1ではB列~H列の数字の個数は固定(今回は7個)であり、毎回ランダムで数字が入力されていきます。 これをシート2の1行目、A列~G列に最新数値を毎回反映させて、表示したいのです。 どなたか、ご存知の方よろしくお願いします^^;

  • Excelで日付を入れると自動的に曜日が入る

    方法を教えてください。 家庭訪問の日時を保護者に連絡する用紙を作ります。 Excelのシート1のA列に児童の名前を出席番号順に全員分入れます。 B列には日にちを入れます。C列には曜日を、D列には時を、E列には分を入れます。 これをシート2に飛ばし、保護者に渡すカードを作ります。 シート2に飛ばすことはできるのですが、シート1の入力をなるべく簡単にするために、B列に日にちを入れると、自動的にC列に曜日が入るようにしたいのです。 例えば、「21」と入れたら「月」、「22」と入れたら「火」・・・というふうにです。 IF関数を使うといいのかなとは思いますが、上手にできません。 どんな関数にすればいいのか、教えていただけませんか? よろしくお願いします。

  • エクセルVBAについて教えてください

    エクセル2003 シート1     A       B      C 1  3月1日 A 100     *A列はカレンダーコントロールより選択としています 2  4月1日 B 100 3  3月1日 C 200     *B列はコンボボックスより選択としています 4  3月1日 D 200 5  4月1日 E 300     *C列は直接入力としています 6  4月1日 F 300 7  3月1日 G 100 8  4月1日 H 200 9  3月1日 I 200 10  4月1日 J 100 上記シート1の表のC列を下記シート2のC列に条件集計する シート2    A       B       C 1  3月1日   A~E     500    *選択した日付ごと及びA・B・C・D・Eの集計  2  3月1日   F~J     300    *選択した日付ごと及びF・G・H・I・Jの集計     3  4月1日   A~E     400    *選択した日付ごと及びA・B・C・D・Eの集計    4  4月1日   F~J     600    *選択した日付ごと及びF・G・H・I・Jの集計  すいませんが上記コードを教えてください 困ってます よろしくお願いします      

  • エクセル残業計算書を教えてください!!

    EXCELで残業計算書を作成していますが、なにぶん素人なもので、独り孤軍奮闘しております。 どうしても、うまく組めず困り果てております。皆様のお知恵をお貸しください・・・ エクセル表で A列   B列    C列      D列         E列 12/1  月曜日  残業時間  労働時間    結果(1週間の合計D列が40時 間を超えた場合は、超えた時間 43.25h→3.25h) 12/2                (残業含む)     (40hを超えていない場合は、C列の計)をだしたいんです。  ・ 12/28(日)-12/31(水)のような場合はD列計は次の月のD列頭に移行する このように、月初めと月終わりが素直に日曜~土曜までではなく、週の途中から始まってしまったりします。 月を入力すれば、A列・B列が自動で出るようには出来たのですが、E列が上手くいきません。 よろしく御指導おねがいします。

  • EXCEL の計算式についてお教えください

    下記のようなシートに計算式入っています 条件は基本的にはC列は他の列より大きいか同じ・D列は他の列より小さいか同じ BDE列 - が入ると×になりますがC列だけ○になってしまいます 1    A     B    C    D    E 2   3月18日  4931  4939  4891  4897 3   3月20日  4938  4944  4895  4901 4   3月21日  4926  4934  4886  4891 5   3月23日  4938  -    4895  4901 G 列に =IF(AND(D2>=C2,D2>=E2,D2>=F2,E2<=F2,E2<=C2,E2<=D2),"○","×") 入れて下にコピーし計算して見ましたがうまくいきません。 どのようにすればよいのか・・・。 よろしくお願いします。

  • エクセルの関数について教えてください

    エクセル関数について教えてください。 下記に入れる関数がわからず困っています。よろしくお願いいたします。 (1)B列→A列に名前を入力したら自動でB列には順番に番号が入るようにしたいです。番号は、前の行から引き続きで入れたいです。例えば、次に名前が入った場合は8になります。 (2)D列→入社日から換算して自動に勤続年数が入るようにしたいです。また、いつ開いても自動更新できるようにしたいです。 (3)H列→G列の合計金額が(sheet2)のB列~D列の間に値する場合は、(sheet2)のA列の番号が自動で入るようにしたいです。(5列6列目は省略していますが実際には数字が入ります) ただし、(sheet2)のD8(630,000)以上の数字が入った場合は、すべて620にしたいです

  • エクセルでの計算式を教えて下さい!

    下記の表を製作しているのですが、計算式がわかりません。 教えて下さい! 宜しくお願いします。 Sheet1 B列(摘要) E列(入金) F(出金) あああ      100 いいい            200 ううう      300 Sheet2 B列(金額) D列(摘要) 100      あああ 200       いいい 300       ううう Sheet2のD摘要とSheet1のB摘要が同じであれば、Sheet1のE入金・F出金の金額がSheet2のB金額に自動リンクさせたいのです。 Sheet1のEとFに同時に数字がはいることはないです。

  • EXCELのシート間コピーについて教えてください!

    いつもお世話になります。 また、皆様のお知恵をお貸しください。 ブックにSHEET(1)とSHEET(2)があります。 SHEET(1)のD列の1行目から300行程度まで文字列が入力されております。 下記の作業をSHEET(1)のD列の文字列が終了するまでマクロ等を使って自動化したいです。 1    SHEET(2)のD列の1行目から12行目までの文字列をSHEET(2)のB1,B4,B7,B10,E1,E4,E7,E10,H1,H4,H7,H10の順にコピー 2   印刷 3   SHEET(2)のD列の13行目から24行目までの文字列をSHEET(2)のB1,B4,B7,B10,E1,E4,E7,E10,H1,H4,H7,H10の順にコピー 4   印刷 よろしくお願いします。

  • エクセルの自動計算入力がわかりません

    エクセル初心者です。以下のようなイメージで、 生徒が受ける模試あ~うがあり、受ける模試にフラグを立てたら、同時にE列に生徒ごとの合計金額が出るようにするには、E列にどのように入力すればいいですか? 模試の名前と、料金は同じシートのなかに一覧にしています。(一覧表は別シートで作れればなおいいのですが) よろしくお願いします。 A列    B列   C列    D列  E列  氏名   模試あ 模試い  模試う  合計 ○○   1      1            H列   I列 模試あ 2900 模試い 3,000 模試う 2000     

  • Excelの計算式

    同一のファイル内で↓の事をしたのですが、ご意見をいただけませんか? Sheet1; (A列) (B列) (C列) (D列) 1 fileA 10K   ● 対象外 2 fileB 20K ▲ 3 fileC 30K  ×  対象外 4 fileD 40K  ■ . . Sheet2; (A列) (B列) (C列) (D列) 1 fileA 10K   0 n/a 2 fileB 20K   1 ▲ 3 fileC 30K   0  n/a 4 fileD 40K   1   ■  . . 1. (Sheet2)D列の作成です。 Sheet1, Sheet2共に行の並びは例のように順序正しくなくランダムです。 (Sheet1)A列を検索して、同一ファイルが存在すれば、ヒットした行番号の(Sheet1)C列の記号をコピーします。 ただし、(Sheet1)D列が「対象外」のときは、「n/a」をコピーします。 セル(D, 1)の定義ですがエラーになります。 =IF(Sheet2!A1 = Sheet1!A:A, IF(Sheet1!D:D = "", Sheet2!C:C, "n/a") ) 2. (Sheet2)C列の作成です。 今後、(Sheet2)D列と同じデータ項目の列がE,F,G..と増えます。 記号が存在すればカウントして、「n/a」はカウントしません。 汎用的に最終列を検索して、合計を求める方法はございますか? セル(C, 1)の定義はどのようになりますか? 以上 宜しくお願い致します。

専門家に質問してみよう