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

エクセルにて、sheet1に、横に日付、縦に担当者の売上表があります。
sheet2で、日付を指定すると、その日付の売上上位者を表示させたいのですが、どのようにすればよいでしょうか?良い方法を何卒教えてください。INDEX? MATCH?


<sheet1>
     1/1  1/2  1/3  1/4  1/5  1/6 ・・・
佐々木   2   5   1   3   7   0 
田中    5   1   0   0   2   1
鈴木    3   2   5   2   1   0
斉藤    3   3   3   1   4   2

<sheet2>

B1セルに日付を入力すると、その日の上位3名がB2~B4に表示される。

    1/2 ←入力
1位 佐々木 ←数式により表示
2位 斉藤  ←数式により表示
3位 鈴木  ←数式により表示

※同数による順位の重複は考慮しなくてよいです。

A 回答 (3件)

こんばんは!



LARGE関数で一気に!とやりかけたのですが、
1/1のように同数がある場合、2位と3位が「鈴木」となってしまうので、別の方法にしてみました。

↓の画像のように作業用の列を2列設けてみました。
作業列1のD2セルに
=OFFSET(Sheet1!A1,1,MATCH(B$1,Sheet1!$1:$1,0)-1)

作業列2のE2セルに
=COUNTIF(D:D,">"&D2)+COUNTIF(D$2:D2,D2)

という数式を入れフィルハンドルでずぃ~~~!っと下へコピーしておきます。

B2セルに
=INDEX(Sheet1!A$2:A$10,MATCH(ROW(A1),E$2:E$10,0))

という数式を入れ下へコピーすると画像のような感じになります。
(エラー処理はしていません)

作業列が目障りであれば遠く離れた列にするか
非表示にしておいてください。m(_ _)m
「エクセル 条件に合うデータの上位をエクセ」の回答画像1
    • good
    • 0
この回答へのお礼

さっそくのご返答ありがとうございます!
OFFSET関数・・・、これも勉強しなきゃいけないですね。。。

作業列がありますが、できれば作業列がなく数式組めないものでしょうか。
というのは、エクセルフォームが決まっているもので、ちょっとスペースに余裕がないもので。

お礼日時:2017/04/20 23:34

こんにちは



横からで、失礼ではありますが・・・

>エクセルフォームが決まっているもので、
>ちょっとスペースに余裕がないもので。
これが理由なら、工夫の余地はいくらでもあると想像しますが…?
決まっているフォーマットはシート全部を使っているのでしょうか?
XAA列とか、空いてそうな気がしますが?

回答者様も予想して
>作業列が目障りであれば遠く離れた列にするか
>非表示にしておいてください。m(_ _)m
と書いてらっしゃいますが・・・

どうしてもダメな場合は、別シートを利用するという方法もあります。
別シートの存在も邪魔になるのであれば、そのシートそのものも非表示にしておけばすみそうな気がしますけど。
    • good
    • 0
この回答へのお礼

ご返信ありがとうございました。
参考にさせていただきます。

お礼日時:2017/04/22 00:26

》 同数による順位の重複は考慮しなくてよいです


これはどういう意味ですか?
極端な例を挙げると4名全員が同点の場合も3位まで?誰を落とす?
    • good
    • 0
この回答へのお礼

ご返信ありがとうございました。
参考にさせていただきます。

お礼日時:2017/04/22 00:26

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

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

Qエクセル 条件に合致するデータだけ上位3つを関数で抽出する

日付ごとに、上位3つの金額と項目を関数で表示するにがどうすればよいでしょうか
1つの範囲から金額と項目を表示するほうほうはわかったのですが、
さらに、日付で絞って上位3社を表示するにはどうすればよいでしょうか

例えば以下のように日付ごと、会社ごとに売上情報があります。

A列      B列   C列

日付     会社名   売上
2016/5/1   A社   500
2016/5/1   B社   200
2016/5/1   C社   450
2016/5/1   D社   300
2016/5/1   E社   550
2016/5/2   A社   400
2016/5/2   B社   250
2016/5/2   C社   420
2016/5/2   D社   380
2016/5/2   E社   150


上記載の表から日付ごとに、上位3社を関数で表示したいです。
例えば下のような表です。

日付 2016/5/1   ←この日付を変えた場合↓に上位3位のデータが表示される
     会社名  売上
1位   E社   550
2位   A社   500
3位   C社   450

抽出条件がつくとわからなくなってしまったのでどうぞアドバイスをお願いいたします。

日付ごとに、上位3つの金額と項目を関数で表示するにがどうすればよいでしょうか
1つの範囲から金額と項目を表示するほうほうはわかったのですが、
さらに、日付で絞って上位3社を表示するにはどうすればよいでしょうか

例えば以下のように日付ごと、会社ごとに売上情報があります。

A列      B列   C列

日付     会社名   売上
2016/5/1   A社   500
2016/5/1   B社   200
2016/5/1   C社   450
2016/5/1   D社   300
2016/5/1   E社   5...続きを読む

Aベストアンサー

こんにちは!

元データはSheet1にあり、Sheet2に表示させるとします。
一例です。

↓の画像でSheet2のB4セルに
=IFERROR(INDEX(Sheet1!B$1:B$1000,MATCH(LARGE(IF(Sheet1!$A$1:$A$1000=$B$1,Sheet1!$C$1:$C$1000),ROW(A1)),Sheet1!$C$1:$C$1000,0)),"")
配列数式になりますので、Ctrl+Shift+Enterで確定!

この画面からコピー&ペーストする場合は
上記数式をドラッグ&コピー → B4セルを選択 → 数式バー内に貼り付け → そのまま(編集可能なまま)
Ctrl+Shiftキーを押しながらEnterキーで確定!
最後にB4セルのフィルハンドルで列・行方向にコピーすると
画像のような感じになります。

※ 同順位(売り上げが全く同じ)の場合は考慮していません。
万一同順位がある場合は別の方法を考える必要があります。m(_ _)m

QExcelのセルの書式設定で質問です。

いつもExcelで悩んだ時にお世話になっています。
今回はセルの書式設定で助けていただきたいです。
前回ご教授いただき、1商品の価格に対して60万行あるデータベースから該当するJANコードを抜きだし一つのセルに改行して納めることができました。
それで作成されたものが添付画像のようなもので、セル内で改行して価格と13桁のJANコード(1価格に1~20くらい)があります。
このようなセルが何千とあります。
すると桁区切りに設定していた価格の,がなくなりました。
設定し直しても変わりません。
ググってユーザー定義から Ctrl+J でセル内の各行に定義を設定するという方法を知りました。
手探りで1行目の価格に#,##を、残りのJANコード行に標準/Gを設定してみましたが出来ません。
試しにJANコード部を#############にしてみましたが桁区切り点は付きません。
今は一つ一つクリックして手動で付けています。
どのようなユーザー定義を設定すれば可能でしょうか?
またJANコード数は価格(商品)によって違います。
最大数のユーザー定義を設定して貼り付ければすべてのセルに設定できるでしょうか?
例えば20行分の書式設定をしたものを1行しかコードがないセルに貼り付けても問題ないでしょうか?
ご教授お願いします。

いつもExcelで悩んだ時にお世話になっています。
今回はセルの書式設定で助けていただきたいです。
前回ご教授いただき、1商品の価格に対して60万行あるデータベースから該当するJANコードを抜きだし一つのセルに改行して納めることができました。
それで作成されたものが添付画像のようなもので、セル内で改行して価格と13桁のJANコード(1価格に1~20くらい)があります。
このようなセルが何千とあります。
すると桁区切りに設定していた価格の,がなくなりました。
設定し直しても変わりません。
ググっ...続きを読む

Aベストアンサー

前回の質問を見ていないので,どの様にして1つのセルに改行して数値(属性としては文字)を入れたか分かりませんが,おそらく書式設定ではなく,データを入れる部分を直さないといけないと思います.多分,
=A1&CHAR(10)&A2
みたいな関数で折り返し表示しているのだと思いますが,これを以下の関数にするとカンマが付きます.
=TEXT(A1,"#,###")&CHAR(10)&TEXT(A2,"#,###")

Qランダムに表示される空白を選択しない関数

お客様が購入された物だけが、表示される表があります。
E25は豆、E26は水、E27は草、E28は花と決まっています。

______E____F____G____H____I____
25____豆_____________購入商品は、
26___________________豆
27____草_____________草
28____花_____________花 
29___________________です。

______E____F____G____H____I____
25____豆_____________購入商品は、
26__________________豆
27__________________花
28____花_____________です。
29_____________________

H26以下に、購入した物だけ、行を詰めて表示して、最後に「です。」と
表示させたいです。

INDEX関数や、TRIM関数、いろいろ調べて試しましたが、
私にはできませんでした。
すごく長くなってもいいので、マクロではなく、関数でできないでしょうか?

ご教授よろしくお願いします。

お客様が購入された物だけが、表示される表があります。
E25は豆、E26は水、E27は草、E28は花と決まっています。

______E____F____G____H____I____
25____豆_____________購入商品は、
26___________________豆
27____草_____________草
28____花_____________花 
29___________________です。

______E____F____G____H____I____
25____豆_____________購入商品は、
26__________________豆
27__________________花
28____花_____________です。
29_____________________

H26以下に、購入...続きを読む

Aベストアンサー

こんにちは!

H25セルにはあらかじめ「購入商品は、」と入っているとします。
H26セルに
=IF(COUNTA(E$25:E$100)+1<ROW(A1),"",IF(COUNTA(E$25:E$100)>=ROW(A1),INDEX(E$25:E$100,SMALL(IF(E$25:E$100<>"",ROW(E$25:E$100)-24),ROW(A1))),"です。"))

配列数式ですので、Ctrl+Shift+Enterで確定!
H26セルのフィルハンドルで下へコピーしてみてください。m(_ _)m

Qエクセル 新たな名前を入れたら別のセルに自動で表示される方法

例えば
A B C D H
猫 犬 象 鳥 猫2
犬 猫 鳥 鳥 犬4
象 犬 犬   象2
        鳥3

上の表のD4に亀と入れると、鳥の下に亀と表示され、亀の数も計算されるように作りたいです。
今のところ、カウント数は、猫の場合は =COUNTIF(A1:D90,"猫") というような数式を使っています。
宜しくお願いいたします。

Aベストアンサー

何度もごめんなさい。

No.2の数式でH4セルの数式が間違っていました。
=IFERROR(INDEX(B:F,INT(SMALL(Sheet2!A:E,ROW(A1))/1000),MOD(SMALL(Sheet2!A:E,ROW(A1)),1000)),"")

にしてください。
どうも失礼しました。m(_ _)m

Qエクセル関数を教えてください

エクセル関数を教えてください

このような↓

別ページにある、△△(具体的には氏名が入る)と書いてあるセルを探して基準にし、そこを基準にして指定した数値分(具体的には右に2、下に2)移動したところにあるセルの数値を返す。

です!
オートフィルでコピーし、シート名と△△の氏名だけを書き換えればOK!みたいなのを狙ってます。
年度末の集計表のため、困ってます。
よろしくお願いします!

Aベストアンサー

こんにちは

例えば、シート2(別ページ)のA列に名前のリストが並んでいるとします。

個別に探したい名前が(シート1の)A1セルにあるとして、
 = MATCH(A1,Sheet2!$A:$A,0)
のようにすると、その名前がリストの何番目に存在するかの数値が返されます。

これを利用して、右に2列、下に2行移動したセルの値なら
 = OFFSET(Sheet2!$A$1,MATCH(A1,Sheet2!$A:$A,0)+1,2)
とすることで、値が取得可能です。

※ 実際のリストの形式やセル範囲など、及び、個別の氏名のセル位置などが不明ですので、適切に修正してください。
※ 上記はエラー処理(リスト内に一致するものが無い場合等)は行っていませんので、必要な場合は付け加えてください。

Qデータ抽出を教えてください。

お店の売上管理表を作成しているのですが、どうしてもうまくいかず教授いただきたいです。

売上データシート(EXCEL)の、商品IDと手数料項目が一致した列の金額を別シートに取り出したいです。

具体的に

売上データシートフォーマット
  A列   B列     C列
 商品ID   項目     金額
  1   手数料1    100
  1   手数料2    150
   2   手数料1    100
  3    手数料1    100
  3    手数料2    130
  4    手数料3    200
  5    手数料1    110

抽出結果
  A列   B列     C列   D列
 商品ID  手数料1  手数料2 手数料3
  1    100    150   
  2    100
  3    100    130
  4               200
  5    110

抽出結果A列には商品IDか入っているものとします。


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

お店の売上管理表を作成しているのですが、どうしてもうまくいかず教授いただきたいです。

売上データシート(EXCEL)の、商品IDと手数料項目が一致した列の金額を別シートに取り出したいです。

具体的に

売上データシートフォーマット
  A列   B列     C列
 商品ID   項目     金額
  1   手数料1    100
  1   手数料2    150
   2   手数料1    100
  3    手数料1    100
  3    手数料2    130
  4    手数料3    ...続きを読む

Aベストアンサー

抽出結果シートにおいて、
1.セル B2 に次の[条件付き書式]を設定
 ̄ ̄ ̄ルール→ 0値を含むセルのフォント色を白に書式設定
 ̄ ̄ ̄[セルの値] [次の値に等しい] [=0]

2.次式を入力したセル B2 を右方および下方にズズーッとオートフィル
 ̄ ̄ =SUMPRODUCT((売上データ!$A$2:$A$8=$A2)*(売上データ!$B$2:$B$8=B$1)*(売上データ!$C$2:$C$8))

Qエクセル初心者です。 説明が難しいので画像にて説明します。

エクセル初心者です。

説明が難しいので画像にて説明します。

Aベストアンサー

こんにちは!

無理やり関数でやってみました。
↓の画像のように元データはSheet1にあり、Sheet2に表示するとします。
1列は50ずつの表示としています。

Sheet2のA1セルに
=IF(A2="","",Sheet1!$A1)

B1セルに
=IF(A2="","",Sheet1!$B1)

という数式を入れておきます。

A2セルに
=IF(COUNTA(Sheet1!$A:$A)-1<(INT(COLUMN(B1)/2)-1)*50+ROW(A2),"",INDEX(Sheet1!$A:$B,(INT(COLUMN(B1)/2)-1)*50+ROW(A2),IF(MOD(COLUMN(),2)=0,2,1)))
という数式を入れ隣りのB2セルまでフィル&コピー → そのまま下へ50行分(51行目まで)フィル&コピー!

A1~B51を範囲指定 → B列の右側境で上下左右の小さな矢印になるところにマウスポインタを移動 → Ctrlキーを押しながら
右隣りへ2列分ドラッグ → 同じ操作を順に繰り返してください。

これで画像のような感じになります。m(_ _)m

こんにちは!

無理やり関数でやってみました。
↓の画像のように元データはSheet1にあり、Sheet2に表示するとします。
1列は50ずつの表示としています。

Sheet2のA1セルに
=IF(A2="","",Sheet1!$A1)

B1セルに
=IF(A2="","",Sheet1!$B1)

という数式を入れておきます。

A2セルに
=IF(COUNTA(Sheet1!$A:$A)-1<(INT(COLUMN(B1)/2)-1)*50+ROW(A2),"",INDEX(Sheet1!$A:$B,(INT(COLUMN(B1)/2)-1)*50+ROW(A2),IF(MOD(COLUMN(),2)=0,2,1)))
という数式を入れ隣りのB2セルまでフィル&コピー → そのまま下へ50行分(51...続きを読む

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...続きを読む

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エクセル Sheet名を自動入力出来るように

初心者なので詳しく教えてもらえると助かります。
Sheet1のセルC18~C34まで任意の文字を打ち込みます。
これをSheet2にSheet1のC18の文字を、Sheet3にSheet1のC19の文字を、、、、
と言う感じでC34までの文字をSheet18まで自動入力するにはどうしたらいいですか?

式をコピペして何処へ貼り付けたらいいのか教えてもらえるとありがたいです。

Aベストアンサー

No.3です。

>エラーは出ないのですが、文字を打ち込んでも何も変わらないのですが、ほかに何か原因があるのでしょうか?

ん?
ご自身でマクロを実行する必要があります。

念のために
① Alt+F11キー → メニュー → 挿入 → 標準モジュール → VBE画面のカーソルが点滅しているところに
前回のコードをコピー&ペーストしてください。
( Sub Sample1() ~ End Sub まで )

② Excel画面に戻り(VBE画面を閉じて)マクロを実行してください。
Alt+F8キー → マクロ → マクロ実行です。

これで何とかならないでしょうか?m(_ _)m


人気Q&Aランキング

おすすめ情報