- ベストアンサー
Excelについて教えて下さい
Excelで以下のことを実現したいのですが、なんの関数を当てればよいのかわかりません。 エクセルファイルは以下の様な設定になっています。 B4:E4では、プルダウンで「○、空白」を選べるようになっています。4行目では、B:Eに一つだけ丸が入り、他は空白のままになります。選ばれた場合、F4にB2:E2の数字を返すというものになります。添付画像では、D4に丸がついたので、F4にD2の数字「3」が返されています。これが現実的に可能なのかどうかもわからないのですが、あてる関数を教えていただければと思います。よろしくお願いします。
- blue-world7171
- お礼率69% (65/93)
- Excel(エクセル)
- 回答数7
- ありがとう数6
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
F4セルに以下の様な関数を入力されると良いと思います。 =IF(COUNTIF($B4:$E4,"○"),INDEX($B$2:$E$2,MATCH("○",$B4:$E4,0)),"") 或いは =IFERROR(INDEX($B$2:$E$2,MATCH("○",$B4:$E4,0)),"")
その他の回答 (6)
- keithin
- ベストアンサー率66% (5278/7940)
F4に =IF(COUNTIF(B4:E4,"○")=1,SUMIF(B4:E4,"○",B$2:E$2),"") とした方が間違いが無くて良いでしょう。
お礼
ありがとうございました。2つの式を使ったことがなかったものでまだまだ勉強不足だと実感しました。ありがとうございました。
- Nouble
- ベストアンサー率18% (330/1783)
まぁ、こんな事も できます ね =IF(B4=○.B2."") &IF(C4=○.C2."") &IF(D4=○.D2."") &IF(E4=○.E2."") 因みに 作業セルも 演算能力を 当然消耗します セル範囲が 多くなれば 其の負荷も 当然増大し 演算性能を 悪化させます 配列数式 等の 一括演算式 のみが 演算負荷を 高め 作業セル 此を用いれは 作業負荷を 高めない と、いうのは 恣意的嘘です どちらが早いか は、 アルゴリズム次第 です
お礼
1つずつのやり方でしょうか?様々な対応のしかたがあるんですね。ありがとうございました。
- kagakusuki
- ベストアンサー率51% (2610/5101)
SUMPRODUCT関数を使用した回答やMAX関数を使用した回答もある様ですが、ここまでの回答にあるSUMPRODUCT関数を使用した方法や、MAX関数を使用した方法は、B2:E2に入力されている値が数値(及び日時)の場合にしか使用出来ませんので、その点だけは注意して下さい。 尚、SUMPRODUCT関数や配列数式を使った方法の場合、指定されたセル範囲に含まれている列の数だけ、似た様な処理をパソコンの内部で繰り返し行う様な処理の仕方をしているため、列の数があまり多くなり過ぎますと、パソコンが行わねばならない処理の回数が多くなり過ぎるために、パソコンの負担となって処理が重くなってしまうので、通常であればSUMPRODUCT関数や配列数式を使わずに済ませる様にした方が無難だとされています。 ですが、御質問の件の場合はB列~E列の僅か4列のみしか列数がありませんので、SUMPRODUCT関数や配列数式を使用しても、処理の重さが問題になるほど重くなる事は御座いません。 尤も、B2:E2に入力されている値が数値(及び日時)の場合にしか使用出来なくとも構わないという事であれば、なにもSUMPRODUCT関数やMAX関数の様な処理が重くなりがちな関数を持ち出すまでもなく、SUMIF関数を使った方が、処理を重くする事無く同様の結果を得る事が出来ます。 =IF(COUNTIF($B4:$E4,"○"),SUMIF($B4:$E4,"○",$B$2:$E$2),"")
お礼
とても詳しく教えていただきありがとうございました。SUMIFの応用の仕方をもっと勉強しようと思います。ありがとうございました。
- bunjii
- ベストアンサー率43% (3589/8248)
>4行目では、B:Eに一つだけ丸が入り、他は空白のままになります。 B4:E4で全てのが空白と言うことが無ければIF関数の条件分岐は不要になります。 検索条件を整備すればエラー防止を組み込む必要も無くなります。 それでは本来の目的である取り出すべき値のセルの位置(アドレス)を見つけるにはどうするかを探ります。 行については2行目にあることが既に知れていますので、列位置を求めれば良いことになります。 B4:E4の範囲のどれかに"○"があることが明白なので、その列番号を取得する方法は幾つかあります。 MATCH関数で4行目の"○"位置を算出する。 =MATCH("○",B4:E4,0) → D4 → 3 配列内の論理から算出する。 =MAX(INDEX((B4:E4="○")*COLUMN(B:E),0)) → MAX({0,0,4,0}) → 4 =SUMPRODUCT(MAX((B4:E4="○")*COLUMN(B:E))) → SUMPRODUCT(MAX({0,0,4,0})) → SUMPRODUCT(4) → 4 {=MAX((B4:E4="○")*COLUMN(B:E))} → MAX({0,0,4,0}) → 4 上記のように幾つかの方法がありますが戻り値を正しく使うとINDEX関数またはOFFSET関数で目的の値を抽出できます。 算出したセルの列番号は計算方法によって値が異なりますのでINDEX関数またはOFFSET関数の範囲と列番号の指定の仕方で調整が必要です。 =OFFSET(起点のセル,行の隔たり,列の隔たり) 行の隔たりは起点の行が一致していれば0です。 =OFFSET(A2,0,3) → D2 → 3 =INDEX(範囲,行番号,列番号) 行番号の範囲が1行のみであれば一致しているので1とします。 =INDEX(A2:E2,1,4) → INDEX({0,1,2,3,4},1,4) → 3 関数の組み合わせは自由ですが戻り値と目的の値があるセル位置に乖離があるときは加減算で調整します。 目的を達成するには幾つかの関数を組み合わせて使いますので数式の組み立て方を学習してください。
お礼
非常に詳しく教えていただきましてありがとうございました。まだまだ勉強不足を痛感いたしました。ありがとうございました。
- msMike
- ベストアンサー率20% (363/1775)
=SUMPRODUCT((B4:E4="○")*(B2:E2))
- shintaro-2
- ベストアンサー率36% (2266/6244)
match関数で○の場所を特定し、 そこから2行上にオフセットした場所を指定するということでしょう http://pc.nikkeibp.co.jp/pc21/tech/excel36/26/
お礼
ご回答有難うございました。ご教授のサイトでもっと勉強しようと思います。
関連するQ&A
- 【エクセル】 「3,465」を「 」「3」「4」「6」「5」と表示させたい。
「エクセル2003の関数式について」 いつもお世話になっております。 以下の件についてご教示いただきたく質問いたします。 セルA1に「3,465」という数値が入力されています。 その数字を分解して、 セルF1に「5」E1に「6」D1に「4」C1に「3」B1に「空白」と表示させるには、どのような数式を1の行に入れるのでしょうか。 よろしくご指導のほどお願いいたします。
- ベストアンサー
- オフィス系ソフト
- エクセルの関数式について教えてください。お願いします。
エクセルの関数式について教えてください。お願いします。 A B C D E F G H I J 1 9 6 1 3 4 7 8 2 5 10 2 6 4 9 3 8 7 1 5 10 2 3 1 3 -2 0 2 0 -4 1 1 -2 たとえばこのような表があります。 1の行にはランダムに1から10までの数字が入ります。 2の行にもランダムに1から10までの数字が入ります。 B1に6が入っています、A2にも同じ数字の6が入っています、 6はB1からA2に1つ上がっているので1 A1には9が入っています、C2にも9が入っています。 9はA1からC2に2つ下がっているので-2 D1には3が入っています、D2にも3が入っています。 3はD1からD2動いていないので0 といった具合に、1の行に入った数字が2の行の同じ数字を感知して その数字がどれだけ上がったのか、下がったのかを 3の行に表したいのですが、どのような関数を使ったらよいのでしょうか? 教えてください。お願いします。
- ベストアンサー
- オフィス系ソフト
- エクセルで空白セルを寄せたい
エクセル2002使用です VBAは使わずに関数だけで空白セルがあるセルを詰めて表示したいのですが・・・ A|B|C|D|E|F|G 1 あ い う え お か き 2 ○ ○ ○ ○ の表を A|B|C|D|E|F|G 1 あ う え か 2 ○ ○ ○ ○ のように表を書き換えたいのです。 1行目には必ず文字が入力されています。 2行目には入力されているセルと空白セルが不定期に入力されています。 2行目のセルが空白ならば、1行目のセルも削除して左へ詰めて 表を転記したいのです。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- エクセルの関数について
エクセルの関数について お世話になります。 エクセルの関数について質問をさせて頂きます。 チェック用の数式として、下記のような場合、 D2とH行に同じ数字があった場合はA2に○を この場合、 =IF(ISNA(MATCH(D2,H:H,0)),"","○") このような数式を使っております。 この数式を少しアレンジして、 D2とH行に同じ数字があった場合はA2に○を、 D2とI行に同じ数字があった場合はA2に×を、 このような数式を作りたいと考えております。 また、 I2とD列に同じ数字があった場合、J2に空白、 同じ数字が無かった場合に×が入る数式として、 [J2]=IF(ISNA(MATCH(I2,D:D,0)),"×","") このようなものを使っています。 こちらも少しアレンジをして、 I2もしくはH2とD列に同じ数字があった場合、J2に空白、 同じ数字が無かった場合に×が入る。 このような数式を作りたいと考えております。 こちらの2点、中々良い数式ができずに悩んでおります。 どなたか、エクセルの関数に詳しい方、良いアドバイスを 頂けると嬉しいです。 どうぞよろしくお願い致します。
- ベストアンサー
- オフィス系ソフト
- エクセル関数式について教えてください。お願いします。
エクセル関数式について教えてください。お願いします。 A B C D E F G H I J 1 5 7 1 4 3 9 8 6 2 10 2 6 7 4 9 3 5 1 2 10 8 3 7 0 1 2 0 -5 -4 1 1 -3 たとえば、このような表があります。 1の行にはランダムに数字が入ります。必ずD1に4が入るわけではありません、毎回変わります。 2の行にもランダムに数字が入りますが、1の行と同じだけ数字が入ります。でも毎回変わります。 そこで、1の行の数字が、2の行の数字を感知して、3の行にどれだけ上がって、どれだけ下がっているかを表したいのですが、関数式はありますでしょうか? 最高9、最低-9になります。1の行と2の行の数字が上下一緒なら0が入るようにしたいです。 教えてください、お願いいたします。
- ベストアンサー
- オフィス系ソフト
- エクセルの関数
エクセルの関数についてですが。 1行目には見出しがあります 2行目から100行目までデータが入っています A列は店名B列は氏名 C列には、目標の数字 D列には成績 E列に関数を入れたいのです。D列の数字が5000を超えると☆、さらにC列よりD列が大きかったら ○ (目標を達成したら○が入るということです) さらに、C列よりD列が小さい場合は、D列の数字をそのまま入る)。。。目標を達成した場合は ○ 達成していない場合は そのままの数字を入れるということです どんな関数をいれたらいいか教えてください
- ベストアンサー
- Windows XP
- エクセル2003及び2010の関数の使い方
エクセルで月ごとの予定表を作成しています。 B列 2行目に今年の数字2014、月はE列1行目予定の表は、B列3行目に日、C列3行目に曜日、D列3行目、E列3行目、F列3行目の3列のセルを結合して予定を記入しています。 B列4行目より関数を下記の通り作成しています。 今年の年は、B2に記入しています。 =DATEVALUE(B2&”/”&E1&”/1”)によりE1に月の数字1とか2を入力すると自動的に C4に曜日が出力されるようにしましたが、これで良いのでしょうか。 またD E Fの結合したところに定期の水曜日なら休館日とか月曜日なら10時からとか出力するにはどの関数を作成すればよいのか、エクセル2003と2010それぞれ、教えて下さい。 宜しくお願いします。
- ベストアンサー
- Excel(エクセル)
- エクセルの関数の計算式について教えてください。お願いします。
エクセルの関数の計算式について教えてください。お願いします。 A B C D E F G H I J 1 8 6 3 2 5 10 9 4 1 7 2 16 19 13 3 4 1 3 7 2 8 6 10 9 5 4 5 20 19 18 17 16 15 14 13 12 11 上のようなエクセルの表があります。1の行にランダムに数字が入ります。たとえばG1に9が必ず入るわけではありません。毎回違います。 4の行も同じようにランダムで数字が入ります。 そこで1の行に入った数字が4の行の同じ数字を感知してその下の5の行の数字が2の行に来るようにしたいのですが。どうにかなりませんでしょうか。 一応例をかきましたが、1の行の8があります、4の行にも8があります、4の行8の下に16のがあります、その16が、1の行の8の下に来るようにしたいのです。 このような関数式ありましたら教えてください。お願いします
- ベストアンサー
- オフィス系ソフト
- エクセル2007で%の平均値を求めたいのですが、うまくできません。
エクセル2007で%の平均値を求めたいのですが、うまくできません。 AVERAGEやIFをいろいろ組み合わせてみたのですが、どうしても分からないので教えてください。 A B C D E F G H 1 目標 6.44% 4.50% 3.77% 5.15% 2.66% 2.79% 式を入れたいセル 2 実績 5.07% 6.00% 4.85% A2~G2の平均値 A1~G1は、=(F3/G6)みたいな数式が入っていて、%で表示されています。 B2~G2は、最初は空欄で毎月B、C、D、E、Fと一つずつ%が入っていきます。 上記で、H1のセルに、下記の様な結果を表示できる式を入れたいのですが、何かいい方法はないでしょうか? ・B2~G2が空白の時はB1~G1の平均値 ・B2にだけ数字が入っていてC2~G2が空白の時はB1の数字 ・B2~C2に数字が入っていてD2~G2が空白の時はB1~C1の平均値 ・B2~D2に数字が入っていてE2~G2が空白の時はB1~D1の平均値 ・B2~E2に数字が入っていてF2~G2が空白の時はB1~E1の平均値 ・B2~F2に数字が入っていてG2だけが空白の時はB1~F1の平均値 ・B2~G2全てに数字が入っている時はB1~G1の平均値 どうかよろしくお願いします。
- ベストアンサー
- オフィス系ソフト
お礼
ありがとうございました。=IF(COUNT。。。で無事につくり上げることが出来ました。助かりました!ありがとうございました。