アレルギー対策、自宅でできる効果的な方法とは?

エクセル初心者です。
お知恵をお貸しください。
例えば「預金」というシートのA1のセルに「会費」という文字と、B1のセルに123円という金額が入っているとすると、その隣の「会費」というシートのA1のセルに同じ「会費」という文字とB1のセルに123円という同じ金額が入るような式を組みたいのです。
「あいう」というシートには「会費」の他にもいろいろと項目があります。例えばA2「備品」B2「150円」という感じです。それぞれの「会費」「備品」というシートにそれぞれ当てはめるようにするにはどうしたらいいでしょうか?
わかりづらくてすいませんが、教えてください。

質問者からの補足コメント

  • すいません9行目の「あいう」というシートではなく「預金」というシートです…

      補足日時:2017/04/14 23:45

A 回答 (2件)

まず、各シートのどこかにシート名を入力するセルを用意してください。

仮にAA1とします。
関数によって表示させる事もできるようですが、ExcelOnlineでは使えない為試せません。
参考:https://kokodane.com/kan54.htm

まず試そうと思いつくのはVLOOKUPですが、この場合"会費"や"備品"が複数回出てくる為、
そのままでは使えません。
最初に出てきた"会費"を"会費-1"、2回目に出てきた"会費"なら"会費-2"といったように、重複しないものであらわす必要があります。
=A1&"-"&COUNTIF(A$1:A1,A1)
とすれば、「A1に入っているデータ」と「そのデータがA1からその行のA列までに何個あるか」を"-"でつないだものを表示する事ができます。

可能であればA列の左に新しく列を挿入し、これを用いれば、VLOOKUPで簡単に抽出する事ができます。
=VLOOKUP(AA$1&"-"&ROW(),預金!A:C,3,FALSE)
で「そのシート名に一致するデータが、預金シートのA列に、その行番目に出てきた行」の、C列のデータを表示させる事が可能です。(列を挿入したので、元のB列のデータがC列に表示されています)
A列のデータは常にシート名に一致しているはずなので、わざわざ抽出しなくても…

しかし、おそらく様式を変えることはできない場合が多いと思われます。
その場合はMATCHを使って、何行目のデータが一致するデータであるかを取得し、
その行番号を利用して、INDIRECTにて該当データを表示させましょう。
仮にC列に"会費-1"等を表示しているとします。
=INDIRECT("預金!B"&MATCH(AA$1&"-"&ROW(),預金!A:A,FALSE))
これで上記VLOOKUPの内容と同様の事ができました。

それぞれ必要なだけコピーしてくださいね。
該当数以上に表示させようとするとエラーになります。
必要であれば、エラーとなる場合は空白とする式も可能です。
    • good
    • 0
この回答へのお礼

ありがとう

ご回答ありがとうございました!
一度試してやってみます!

お礼日時:2017/04/15 00:45

こんばんは!



「預金」シートのA列項目名が入っているシートがあるのですね。
仮に「会費」シートの場合
A1セルに
=IFERROR(INDEX(預金!A$1:A$1000,SMALL(IF(預金!$A$1:$A$1000="会費",ROW($A$1:$A$1000)),ROW(A1))),"")

配列数式ですので、Ctrl+Shift+Enterで確定!
A1セルのフィルハンドルでB1セルまでコピー → そのまま下へコピー!

※ 「備品」シートの場合は数式内の
”会費”の部分を変えるだけです。

※ 本来であれば各シートの使っていないセルに「会費」とか「備品」など表示したい項目名を入力しておき
そのセルを参照するようにすれば同じ数式で対処できます。

※ 項目ごとのシートがあるのであれば
A列は表示させる必要がないような気がします。m(_ _)m
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

QExcelで関数を使って計算したいです

Excelを使い、A列に数値、B列に◯、×のどちらかを入力します。
B列が◯だった場合のA列の数値を足し算したいのですがやり方が分かりません…
ぜひ教えていただきたいです。
よろしくお願いします。

Aベストアンサー

質問文の確認ですが,B列で○と判定された同じ行のA列の値を全て加算するという事で宜しいですか?
関数は下記の通りです.
=SUMIF(B:B,"○",A:A)

Q2週間悩んでます。EXCELの並べ替えです。

下の表を数式で右(G)のように並べ替えたいのですがご教授お願い致します。

A  B  C         G
1  0  0         1
2  0  0         2
3  1  a         a
4  0  0         3
5  1  b         4
6  0  0         b
7  0  0         5
8  0  0         6
9  1  c         7
10  0  0         8
-------------------------------- c
-------------------------------- 9
-------------------------------- 10

どうしても4の処で引っかかってしまいます。
よろしくお願いいたします。
------- はG列が左に寄ってしまうので書いてます。
無視して結構です。

Aベストアンサー

ん?…
こちらではきちんと並んだのですが…

D列は上から順に1,2,4,5,7,8,9,10,12,13と表示されてますでしょうか?

G列の
=IF(COUNTIF(AD:AD,ROW())=0,INDIRECT("AC"&MATCH(ROW()-1,AD:AD,FALSE)+1),MATCH(ROW(),AD:AD,FALSE))
は入力ミスなく一致していますね?
aが入力されているのはC3、bはC5、cはC9で、その左は1、B・C列の他の行は0、A列は行番号ですね?

とりあえず中身を分解して確認してみましょう。
表示のずれている3行目の、どの列でもいいので、次の式を入力して、それぞれに表示されるものを教えてください。

=COUNTIF(D:D,ROW())
これはD列にその行番号が含まれている数を算出しています。3は含まれていないハズですので0であれば正解です。

=MATCH(ROW()-1,D:D,FALSE)
これは1つ上の行の行番号がD列の何行目にあるかを表示させる式です。
2行目の2なのでD2で一致し、2が表示されれば正解です。

=INDIRECT("C"&MATCH(ROW()-1,D:D,FALSE)+1)
これは先ほどの2に1を加えて3とし、C3のデータを表示させるものです。
C3はaであるので、aが正解です。

=MATCH(ROW(),D:D,FALSE)
これはCOUNTIFが0でなかった場合の式です。
なので確認する必要はないと思いますが、
そのセルの行番号をD列で検索し、何行目にあるかを表示します。
3はD列にないはずなので、エラーが正解です。

ん?…
こちらではきちんと並んだのですが…

D列は上から順に1,2,4,5,7,8,9,10,12,13と表示されてますでしょうか?

G列の
=IF(COUNTIF(AD:AD,ROW())=0,INDIRECT("AC"&MATCH(ROW()-1,AD:AD,FALSE)+1),MATCH(ROW(),AD:AD,FALSE))
は入力ミスなく一致していますね?
aが入力されているのはC3、bはC5、cはC9で、その左は1、B・C列の他の行は0、A列は行番号ですね?

とりあえず中身を分解して確認してみましょう。
表示のずれている3行目の、どの列でもいいので、次の式を入力して、それぞれに表示されるものを教えて...続きを読む

Qエクセルについて質問です

仕事で仕入先からの交渉データを作成していて見やすいように
追加しようと考えていますが一部分からないところがあります。

■現状
シート1(件名一覧表)
シート2(交渉内訳)

■追加シート3(個別件名の確認用シート)

やりたいことはシート2(交渉内訳)に
C列に注文番号のコード
D列にメーカーコード
E列に仕入先名
F列にメーカーごとの定価金額
H列に担当者が交渉したメーカーごとの原価金額
K列に私が交渉したメーカーごとの原価金額
があります。
C列の注文番号を入力すれば
個別件名シートで見れるように

上記データを元に
追加シート3(個別件名の確認用シート)に
交渉内訳シートのC列、D列、E列、F列、H列、K列が
反映されるようにしたいです。

=VLOOKUP(A2,交渉内訳!B7:E2049,3,0)と
入力すると全てが同一仕入先になってしまい
各仕入先が表示されません。

なかなか文章で説明が難しく詳細もコンプライアンス上なかなか
表示出来ませんので答えにくいかも

Aベストアンサー

=VLOOKUP(A2,交渉内訳!B7:E2049,3,0)で、
A列には検索したい日付が入っているなら、
VLOOKUPの中身としては、交渉内訳シートのB列でその日付を検索し、3番目=D列のデータを表示。
(D列=メーカーのコード)

>全てが同一仕入先になってしまい各仕入先が表示されません。
上記式で表示されるのはメーカーのコードであり、仕入先名ではないですよ?
メーカー=仕入先なのでしたら、同一日に複数の案件があり、全ての日に全てのメーカーのデータがあるとか?

>正:B列に注文番号のコード
B列の中からA2(日付)を検索しているのに、B列には注文番号が入っているのですか?
それでしたら、一致するものがない為、近似として扱われたデータが表示されているのかもしれません。
完全一致で検索するとして、VLOOKUPの最後の0(TRUE扱い)を1(個人的には1よりFALSEと書く方が見た時わかりやすいので推奨)にしてみてください。
VLOOKUPの場合、近似よりも完全一致で検索する場合の方が多いと思いますし、それだと検索範囲を昇順に並べ替える必要もなくなります。

>注文番号を入力すれば個別件名シートで見れるように
7~2049行にデータがあるとして、
=VLOOKUP($AA2,交渉内訳!$B$7:$K$2049,2,FALSE)
AA2は検索したい注文番号の入力されたセルの事です。該当するセルに変更してください。
B列の1~6行目に注文番号と重複するデータが確実にないのであれば、
=VLOOKUP($AA2,交渉内訳!$B:$K,2,FALSE)
とした方が良いです。(データが増えても範囲を変更せずに済むので。

とりあえず、これはB列を1列目として2列目=C列のデータを表示させる式です。
C列は結局何が入っているのかわかりませんが、とりあえずC列、D列、E列、F列、H列、K列を表示させる式を書きますね。

C列:=VLOOKUP($AA2,交渉内訳!$B:$K,2,FALSE)
D列:=VLOOKUP($AA2,交渉内訳!$B:$K,3,FALSE)
E列:=VLOOKUP($AA2,交渉内訳!$B:$K,4,FALSE)
F列:=VLOOKUP($AA2,交渉内訳!$B:$K,5,FALSE)
H列:=VLOOKUP($AA2,交渉内訳!$B:$K,7,FALSE)
K列:=VLOOKUP($AA2,交渉内訳!$B:$K,10,FALSE)
となります。
元の表とシートの様式を同じにしていれば、
B列に注文番号のコードを入力するとして、
C2=VLOOKUP($B2,交渉内訳!$B:$K,COLUMN()-1,FALSE)
これをコピーするだけで済みます。
G,I,J列が不要であれば非表示にすればいいのです。1列1列何列目を抽出するかを数える必要はなくなります。

文章だけで間違いも含め可能な限り読み砕いたつもりです。参考まで

=VLOOKUP(A2,交渉内訳!B7:E2049,3,0)で、
A列には検索したい日付が入っているなら、
VLOOKUPの中身としては、交渉内訳シートのB列でその日付を検索し、3番目=D列のデータを表示。
(D列=メーカーのコード)

>全てが同一仕入先になってしまい各仕入先が表示されません。
上記式で表示されるのはメーカーのコードであり、仕入先名ではないですよ?
メーカー=仕入先なのでしたら、同一日に複数の案件があり、全ての日に全てのメーカーのデータがあるとか?

>正:B列に注文番号のコード
B列の中からA2(日付)を検索...続きを読む

Qエクセル関数

エクセル Sheet1のa列の値が、Sheet2のb列にある場合、Sheet2のc列の値をSheet1のd列に入力する方法教えて下さい

Aベストアンサー

こんにちは!

データは1行目からあるとします。

D1セルに
=IFERROR(VLOOKUP(A1,Sheet2!B:C,2,0),"")
または
=IFERROR(INDEX(Sheet2!C:C,MATCH(A1,Sheet2!B:B,0)),"")という数式を入れ
フィルハンドルで下へコピーしてみてください。m(_ _)m

Qエクセル 関数について

エクセルの関数について教えてください。
不明な点が3点あります。

①・・・ シート1→a1=田中 a2=鈴木 a3=高橋 b1=月火土 b2=木金 b3=水土
上記の表があって、シート2のa列に、『シート1のa列に(土)と入っている人の名前を抽出する』関数が知りたいです。
②・・・ a1=2017 a2=4と入力しているシートのb3c3d3e3...と横方向に『その月の土曜日だけを抽出する』関数が知りたいです。

③・・・ 同じくa1=2017 a2=4と入力しているシートのa3a4a5...と縦方向に『その月の日付を抽出する(4月は30日までで31日は空白となるような)』関数が知りたいです。

宜しくお願い致します。

Aベストアンサー

こんにちは!


Sheet2のA1セルに
=IFERROR(INDEX(Sheet1!A$1:A$10,SMALL(IF(ISNUMBER(FIND("土",Sheet1!B$1:B$10)),ROW(A$1:A$10)),ROW(A1))),"")

配列数式ですので、Ctrl+Shift+Enterで確定! → フィルハンドルで下へコピー!


どこか使っていないセル(仮にC1セルとします)に
=DATE(A1,A2,0)-WEEKDAY(DATE(A1,A2,0)-6,2)
という数式を入れておきます。(前月の最終土曜日のシリアル値を表示)
B3セルに
=IF(MONTH($C1+7*COLUMN(A1))=$A2,$C1+7*COLUMN(A1),"")
という数式を入れ5週分のF3セルまでフィル&コピー!


A3セルに
=IF(MONTH(DATE(A$1,A$2,ROW(A1)))=A$2,DATE(A$1,A$2,ROW(A1)),"")
という数式を入れ下へ31日分フィル&コピー!

※ 配列数式は①だけです。
※ ②・③に関してはセルの表示形式は好みの日付にしておいてください。m(_ _)m

こんにちは!


Sheet2のA1セルに
=IFERROR(INDEX(Sheet1!A$1:A$10,SMALL(IF(ISNUMBER(FIND("土",Sheet1!B$1:B$10)),ROW(A$1:A$10)),ROW(A1))),"")

配列数式ですので、Ctrl+Shift+Enterで確定! → フィルハンドルで下へコピー!


どこか使っていないセル(仮にC1セルとします)に
=DATE(A1,A2,0)-WEEKDAY(DATE(A1,A2,0)-6,2)
という数式を入れておきます。(前月の最終土曜日のシリアル値を表示)
B3セルに
=IF(MONTH($C1+7*COLUMN(A1))=$A2,$C1+7*COLUMN(A1),"")
という数式を入れ5週分のF3セルまでフィ...続きを読む

Q複数条件(前方一致含む)の合計の出し方について

再びお世話になります。
シート1の対象年月と商品が一致した売上をシート2で集計したいのですが、上手く集計が取れなかったのでご教示ください。

【表】シート1のA1からC5にデータが入力されているとして。
   (CSVで出力の為、すべて文字列状態)
  A列      B列      C列
1 日付      商品     売上金額
2 20150401   卵      100
3 20150409   卵      110
4 20150502   パン     200
5 20160102   野菜     50
6 20160110   野菜     80


シート2で集計します。
【作業日が2017/04/16として、前年度の前月と同月の売上を集計します】
・A1=作業日当日日付、B1=前年前月とC1=前年同月はDATE関数でA1を元に年月を出しています。
・D列はシート1のA列を、E列でTEXT関数で日付表示にしてからD列でDATE関数でこの表記に変えていますので、5000行程続いています。(TEXT関数だと形式が一致しないようだったので…)

  A列      B列      C列     D列(日付作業列)
1 (作業日日付)  2015/03/16 2015/04/16 2015/04/01  
2 卵.............................................................2015/04/09
3 パン..........................................................2015/05/02
4 野菜

このような状態で、
B2には、B1とD列の前7文字が一致(年月が一致) かつ A2とシート1のB列の表示が一致(商品が一致)したものの売上合計を表示。
いきなり全体の式を組むのは私には無理なので、少しずつ計算していこうとしたのですが、
B2に「=SUMIF(D:D,LEFT($B$1,7)&"*",シート1!C:C)」と入れてみたものの計算が反映せず行き詰ってしまいまいた…。
皆さまのお知恵をお借りしたく、宜しくお願いいたします。

再びお世話になります。
シート1の対象年月と商品が一致した売上をシート2で集計したいのですが、上手く集計が取れなかったのでご教示ください。

【表】シート1のA1からC5にデータが入力されているとして。
   (CSVで出力の為、すべて文字列状態)
  A列      B列      C列
1 日付      商品     売上金額
2 20150401   卵      100
3 20150409   卵      110
4 20150502   パン     200
5 20160102   野菜     50
...続きを読む

Aベストアンサー

まず、やりたい事を順番にまとめて、それに応じた適切な作業列を設けましょう。

やりたい事について
①作業日の日付(シート2!A1)から前年前月(シート2!B1)と前年同月(シート2!C1)を表示させる。
②シート2のB列・C列に「シート1のA列の月が、シート2の1行目に表示した月と一致するシート1のデータから、シート1のB列がシート2のA列と一致するデータの、シート1のC列に表示された金額を合計したもの」を表示させる。

作業列例について
①については特に作業列は必要ありませんが、検索したいのは年月の分かる6桁の数字なので、
シート2!B2=TEXT(DATE(YEAR(A1)-1,MONTH(A1)-1,1),"yyyymm")
シート2!C2=TEXT(DATE(YEAR(A1)-1,MONTH(A1),1),"yyyymm")
としましょう。
日にちは関係ないので、年月をA1とから算出し、日は1日にしています。
質問者の例の状態では、B2=201503、C2=201504、とそれぞれ表示されるはずです。

②についてですが、
合計を計算するためには、シート1のC列を文字列ではなく数値で表示させる必要があります。
よってシート1のD列を作業列とし、
シート1!D2=C2*1
これをデータの数だけ↓にコピーしましょう。
*1とすることで、C2が数値として利用できるデータが文字列として入っている場合、数値として扱って計算結果を表示してくれます。
*1なので、値としては同じですね。+0としてもかまいません。

これで準備は整いました。
シート2のD列で表示させたデータは特に必要ないというわけですね(汗
あとは結果を表示させるだけです。
シート2!B2=SUMIFS(Sheet1!$D:$D,Sheet1!$A:$A,B$1&"*",Sheet1!$B:$B,$A2)
これを表の分だけ(例の場合C4まで)コピーしましょう。

あくまでシート1のデータが全て文字列として入力されていた場合です。
結果が合わない場合は、おそらく文字列として入力されていると思い込んでいるだけ、
といった可能性もあります。(CSVについては良く知りませんので)

まず、やりたい事を順番にまとめて、それに応じた適切な作業列を設けましょう。

やりたい事について
①作業日の日付(シート2!A1)から前年前月(シート2!B1)と前年同月(シート2!C1)を表示させる。
②シート2のB列・C列に「シート1のA列の月が、シート2の1行目に表示した月と一致するシート1のデータから、シート1のB列がシート2のA列と一致するデータの、シート1のC列に表示された金額を合計したもの」を表示させる。

作業列例について
①については特に作業列は必要ありませんが、検索したいのは年月の分かる6...続きを読む

QExcel セルの値 セル番号として呼び出し

Excelでセルに出力されている数をセルの番号として仕様し計算することは可能でしょうか?
たとえば「A1」に『4』、「B4」に『5』と打ち込んだ場合に「C1」で【「B4」の『5』】「A1」で打ち込んだ『4』を使って呼び出すことができますか?
説明ご下手で申し訳ないのですが理解していただける方お願いします。

Aベストアンサー

No.3・6です。

投稿後もう一度補足を読み返して・・・

要するにA3セル以降のデータを二つずつ表示したい!というコトですよね?
そうであれば

C3セルに
=IF(COUNTA(A$3:A$1000)*2<ROW(A1),"",INDEX(A$3:A$1000,INT(ROW(A2)/2)))
または
=IF(COUNTA(A$3:A$1000)*2<ROW(A1),"",OFFSET(A$3,INT((ROW(A1)-1)/2),,1))

という数式を入れフィルハンドルで下へコピーしてみてください。m(_ _)m

Qこの式の意味を教えてください。 また、FALSEの前の2は何を指してますか? =VLOOKUP(B2

この式の意味を教えてください。
また、FALSEの前の2は何を指してますか?

=VLOOKUP(B2076,'2015'!$C$2:$E$3201,2,FALSE)

B2076が2015シートのC2からE3201に何でしょう。FALSEの前の2は何ですか?

Aベストアンサー

[Excelヘルプ]の説明は次のとおり。
戻り値を含む範囲内の列番号。たとえば、B2:D11 を範囲として指定した場合、B を最初の列、C を 2 番目というように数えます。

Qエクセルの日にちの揃え

以下のように月と年を揃えることは可能でしょうか
現在は、書式設定→表示形式 分類(日付)→種類(2001年3月14日)
で2017/4/5と入力しています。

(現状)
2017年4月5日
2017年5月25日
2017年6月26日
2017年7月25日
2017年8月25日
2017年9月25日
2017年10月25日
2017年11月7日
2017年12月25日

(要望↓)
2017年 4月 5日
2017年 5月25日
2017年 6月26日
2017年 7月25日
2017年 8月25日
2017年 9月25日
2017年10月25日
2017年11月 7日
2017年12月25日
よろしくお願いいたします。

Aベストアンサー

こんばんは!

VBAでの一例です。
日付(シリアル値)はA列に入っているとします。

Sub Sample1()
Dim i As Long
For i = 1 To Cells(Rows.Count, "A").End(xlUp).Row
With Cells(i, "A")
If IsDate(.Value) Then
.Font.Name = "MSゴシック"
If Month(.Value) < 10 Then
If Day(.Value) < 10 Then
.NumberFormatLocal = "yyyy年 m月 d日"
Else
.NumberFormatLocal = "yyyy年 m月d日"
End If
Else
If Day(.Value) < 10 Then
.NumberFormatLocal = "yyyy年m月 d日"
Else
.NumberFormatLocal = "yyyy年m月d日"
End If
End If
End If
End With
Next i
End Sub

こんな感じではどうでしょうか?m(_ _)m

こんばんは!

VBAでの一例です。
日付(シリアル値)はA列に入っているとします。

Sub Sample1()
Dim i As Long
For i = 1 To Cells(Rows.Count, "A").End(xlUp).Row
With Cells(i, "A")
If IsDate(.Value) Then
.Font.Name = "MSゴシック"
If Month(.Value) < 10 Then
If Day(.Value) < 10 Then
.NumberFormatLocal = "yyyy年 m月 d日"
Else
.NumberFo...続きを読む

QEXCELの罫線について

EXCELにて罫線を引いているのですが、セル毎に横罫線が切れた罫線を引く方法をご存じの方が居られましたら、方法をご教授下さい。(応用で縦にも対応できればよりありがたいです)
私個人の好みだと思うのですが、こういった引き方をしたい場合があるので。

よろしくお願いいたします。

Aベストアンサー

範囲選択して、[セルの書式設定]→[罫線]タブで横罫線を細い実線に
して色を青などの判りやすい色にしておきます。
縦罫線を指定するときに白色の一番太い実線にします。

これで、縦罫線の白色で横線が切れたように見せることができます。


人気Q&Aランキング

おすすめ情報