- 締切済み
エクセル関数について
エクセル関数について質問です。 セルA1、セルA3、セルA5のいずれかに入力された値をセルB1に返すことは関数で可能でしょうか? 可能であれば、IFERROR関数と組み合わせ、エラー値が返らないようしたいです。 エクセルバージョンは2007です。 ご教示ください。よろしくお願いします。
- みんなの回答 (6)
- 専門家の回答
みんなの回答
- bunjii
- ベストアンサー率43% (3589/8249)
>セルA1、セルA3、セルA5のいずれかに入力された値をセルB1に返すことは関数で可能でしょうか? 条件の確認ですが、A1、A3、A5には数値が1つのセルのみに入力で良いでしょうか? また、全てが空欄のときは0を返して良いでしょうか? =MAX(A1,A3,A5) で全てが空欄のとき0が返り、いずれかの1つに数値があればその値が返ります。 =MIN(A1,A3,A5) でも上記と同じ結果になります。 上記の式では複数のセルに数値があるとMAX関数では最大値が、MIN関数では最小値が返ります。 全てが空欄のとき空欄としたいときはIF関数で条件分岐すると良いでしょう。 IF関数の判定要素の論理式は幾つかありますので好みのものを使ってください。 COUNT(A1,A3,A5)>0 AND(A1="",A3="",A5="")*1>0 SUM(A1,A3,A5)>0
- tom04
- ベストアンサー率49% (2537/5117)
No.1です。 補足の >B1に返す値は桁区切り「#,###」のスタイルにしたいのですが というコトは必ず数値が入る!というコトですね? 前回の方法は文字列になってしまいますので、別案です。 セルの表示形式はNo.4さんが詳しく回答してくださっていますが 一番簡単なのはホームタブのアイコンにカンマ(%の右隣)にあるはずですので、 そこをクリック! これで表示形式は「桁区切りスタイル」になります。 ただ、表示されるデータを数値にしてやる必要がありますので、B1セルの数式は =IFERROR((A1&A3&A5)*1,"") または =IF(COUNT(A1,A3,A5),MAX(A1,A3,A5),"") などに変更してください。 TEXT関数を使うとすれば =IFERROR(TEXT(A1&A3&A5,"#,###")*1,"") といった感じでしょうかね!m(_ _)m
お礼
質問、更に補足へのご回答ありがとうございました。 桁区切りスタイルでは表示されなかった為の補足でした。 説明不足ですみませんでした。 教えていただいた関数を使ったところ、思っていた通りの結果になりました。勉強になりました。ありがとうございました。
- kagakusuki
- ベストアンサー率51% (2610/5101)
回答No.2です。 >B1に返す値は桁区切り「#,###」のスタイルにしたいのですが、この場合、教えていただいた数式ではなく、別の方法、TEXT関数等を使うのでしょうか? TEXT関数を使うのではなく、B1セルに対して書式設定を行う事によって、表示を桁区切りを行った形にされる事を御勧め致します。 その設定方法は以下の通りです。 B1セルを右クリック ↓ 現れた選択肢の中にある[セルの書式設定]をクリック ↓ 現れた「セルの書式設定」ダイアログボックスの中にある[表示形式]タブをクリック ↓ 「分類」欄の中にある[数値]をクリック ↓ 現れた[桁区切り( , )を使用する]と記されている箇所をクリックする事でチェックを入れる ↓ 「セルの書式設定」ダイアログボックスの[OK]ボタンをクリック 因みに、表示を「#,###」ではなく「\#,###」のスタイルにされる場合には、次の様な設定方法となります。 B1セルを右クリック ↓ 現れた選択肢の中にある[セルの書式設定]をクリック ↓ 現れた「セルの書式設定」ダイアログボックスの中にある[表示形式]タブをクリック ↓ 「分類」欄の中にある[通貨]をクリック ↓ 現れた「記号」欄をクリック ↓ 現れた選択肢の中にある「\」をクリック ↓ 「セルの書式設定」ダイアログボックスの[OK]ボタンをクリック 以上です。
お礼
補足へのご回答ありがとうございました。 セルの書式設定では表示ができなかった為の補足でした。 説明不足ですみませんでした。 教えていただきありがとうございました。
- gyouda1114
- ベストアンサー率37% (499/1320)
>セルA1、セルA3、セルA5のいずれかに入力された値 >をB1に返す。 何れか1セルに入力されたときだけ、その数値を返すなら B1に =IF(COUNT(A1,A3,A5)=1,SUM(A1,A3,A5),"") IFERROR関数を使う必要はありません。
お礼
ご回答ありがとうございました。 IFERROR関数は必要なかったのですね。 勉強になりました。 教えていただきありがとうございました。
- kagakusuki
- ベストアンサー率51% (2610/5101)
A1セル、A3セル、A5セルの中に値が入力されているセルが複数ある場合には、どの値を表示させれば良いのでしょうか? 例えば、行番号が若いセルに入力されている値が優先して表示される様にする場合には、次の様な関数となります。 =IF(A1&A3&A5="","",CHOOSE(MAX((A1<>"")*3,(A3<>"")*2,(A5<>"")*1),A5,A3,A1)) 逆に、行番号が大きなセルに入力されている値が優先して表示される様にする場合には、次の様な関数となります。 =IF(A1&A3&A5="","",CHOOSE(MAX((A1<>"")*1,(A3<>"")*2,(A5<>"")*3),A1,A3,A5))
お礼
ご回答ありがとうございました。 >A1セル、A3セル、A5セルの中に値が入力されているセルが複数ある場合には、どの値を表示させれば良いのでしょうか? 値が入るセルは3つのうちのいずれか一つです。 教えていただきありがとうございました。
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! >セルA1、セルA3、セルA5のいずれかに・・・ 必ず3セルの中の1セルのみの入力だとすると =A1&A3&A5 だけでOKだと思います。m(_ _)m
補足
早速のご回答ありがとうございます。 質問に補足をする前のご回答でしたので、この場で補足させてください。 B1に返す値は桁区切り「#,###」のスタイルにしたいのですが、この場合、教えていただいた数式ではなく、別の方法、TEXT関数等を使うのでしょうか?
お礼
ご回答ありがとうございました。 >条件の確認ですが、A1、A3、A5には数値が1つのセルのみに入力で良いでしょうか? はい、数値が入力されるのは3つのセルのうち、一つのみです。 >また、全てが空欄のときは0を返して良いでしょうか? 空欄の場合は空欄のままにしたいです。 説明不足ですみませんでした。 いろいろと教えていただき勉強になりました。 ありがとうございました。