- ベストアンサー
エクセル 数値を記号で入力する方法を教えて下さい
1.エクセルで見積書を作ろうとしています。 2.項目に対して単価が1000円、2500円、7000円、12000円と4種類とします。 3.単価欄に数値を入力するのではなく1000円=A、2500円=B、7000円=C、12000円=C としてA,B,C,Dと記号を打ち込みます。 4.数量×単価=金額のヨコ計算をする。 5.単価欄はセルに打ち込んだ数字を記号に表示するのではなく直接記号を打ち込みます。 検索の方法が悪いのかなかなか見付けられないので質問しました。 当方エクセル勉強中の為なるべくシンプルにお願い致します。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
>商品に対して既に単価が決まっている訳ではなくとりあえず見積項目を上げ、品物を見ながら値決めしていこうかなと考えております。のでいちいち数字入力ではなくこれはA、これはCにしようかなと考えながら取らぬ狸の皮算用をもくろんでおります。 そうでしたか、これは失礼致しました。 C列の単価欄にA,B,C,D等の記号が入力されるとしますと、E4セルに入力する関数は次の様なものとなります。 =IF(AND(COUNTIF($G$4:$G$7,$C4)>0,ISNUMBER($D4)),VLOOKUP($C4,$G$4:$H$7,2,FALSE)*$D4,"") >COUNTIF関数で品名が空白かそうでないか調べていると思われますが、ISBLANK関数でも同じ働きですか? いいえ、COUNTIF関数とISBLANK関数は全く異なる関数です。 ISBLANK関数は、単一のセルのみを参照し、そのセルが何のデータも関数も入力されていない、空欄のセルである場合には、TRUE(成り立っている)と判定し、何らかのデータや関数が入力されている場合にはFALSE(成り立っていない)と判定する、と言う関数です。 一方、COUNTIF関数は、 COUNTIF(セル範囲, 検索条件) と言う形式となっていて、指定されているセル範囲を参照して、その中に、検索条件を満たしているセルが何個あるのかを数える関数です。 例えば、私の前回の回答の添付画像の様にデータが入力されている場合、 =COUNTIF($A$3:$G$8,"A") と言う関数では、A3~G8のセル範囲の中には、「A」と言うデータが存在しているセルは、B7セルとG4セルの2ヶ所ですから、 =COUNTIF($A$3:$G$8,"A") の計算結果は2(個)と言う数値データとなります。 又、 =COUNTIF($H$2:$H$8,"<10000") とした場合には、H2~H8のセル範囲の中には、10000未満のデータが存在するセルは、H4、H5、H6ですから、結果は3となります。 又、 =COUNTIF(C3:E8,">"&C5) とした場合には、C3~E8のセル範囲の中には、C5セルの値である7000よりも大きな数値が存在しているセルは、C4、E4、E5、E6ですから、結果は4となります。 そして、 =IF(AND(COUNTIF($G$4:$G$7,$C4)>0,ISNUMBER($D4)),VLOOKUP($C4,$G$4:$H$7,2,FALSE)*$D4,"") と言う関数において、もし、G4~G7のセル範囲の中に、C4セルに入力されているデータと、同じデータを持つセルが存在しなかった場合には、 VLOOKUP($C4,$G$4:$H$7,2,FALSE) の部分は検索範囲内に検索するデータと同じ値を持つセルを、見つける事は出来ませんから、エラーとなります。 エラーが表示されるのは見苦しい事なので、なるべくエラーは出ない様にするのが一般的です。 そこで、COUNTIF関数を、IF関数の判定式として使用しますと、 COUNTIF($G$4:$G$7,$C4) の部分は、G4~G7のセル範囲に、C4と同じ値を持つセルの個数が判りますから、もし、結果が0よりも大きな値であれば、G4~G7のセル範囲にはC4と同じ値を持つセルが、1個以上存在する事になりますから、VLOOKUP関数の部分がエラーとなる事はありませんし、もし、結果が0であれば、G4~G7のセル範囲にはC4と同じ値を持つセルが存在しない事になりますから、IF関数を使って、VLOOKUP関数の部分の結果ではなく、""と言う値、即ち何も表示しない様にしている訳です。
その他の回答 (5)
- imogasi
- ベストアンサー率27% (4737/17069)
(1)4種類ぐらいなら、入力終了後、置換で、英字Aー>数字1000に置き換える。4種あると4回の操作必要。 (2)見積書の単価の列で、入力規則を設定する。 データー入力規則ーリストリストに 1000,2500,7000,12000の用にカンマで区切って入力する。 セルをクリックして▼をクリックして適当な単価を選ぶ (3)他の列に単価列を作りVLOOKUP関数でA-->1000のような検索を行う検索のための A 1000 B 2500 C 7000 D 12000 のような 対応表を作ることが必要。 ーー 1,2,3,4と入れて(A、Bより簡単) =CHOOSE(C2,1000,2500,7000,12000)と言う式で 1 1000 3 7000 2 2500 4 12000 のようなのも可能。 ーーー (2)ぐらいがエクセルらしい方法かな、と思う。 == >エクセル勉強中、らしいから一言 円など単位は文字などで入れてはいけないよ。セルの書式設定で行うこと。
お礼
お礼が遅くなり申し訳ありませんでした。一つの疑問にいろんな考え方があるんだなと言うことが良く分かり勉強になりました。特に入力規則のリストを使う所が気に入りました。これからも良きアドバイスを宜しくお願い致します。
- kagakusuki
- ベストアンサー率51% (2610/5101)
>3.単価欄に数値を入力するのではなく1000円=A、2500円=B、7000円=C、12000円=CとしてA,B,C,Dと記号を打ち込みます。 >5.単価欄はセルに打ち込んだ数字を記号に表示するのではなく直接記号を打ち込みます。 普通は、見積書をExcelで作成する際には、単価欄に入力されている記号を基に、金額を検索するのではなく、品名欄に入力されている品名を基に単価を検索し、検索した単価と入力されている数量を掛け合わせる事で、金額を算出します。 下に表示されている添付画像では、C列の単価欄の値は、キーボードで入力されたものではなく、関数によって、G3~H7の単価表から検索して来た値です。 下に表示されている添付画像では、G列には全ての品の品名が前もって入力されてあり、H列には全ての品に対する各単価が前もって入力されています。 又、B列にA,B,C,D等の品名が入力され、D列には数量が入力されます。 そして、C列にはB列に入力されている品名に対応する単価を自動的に表示するための関数が入力されていて、E列には金額を自動的に表示させるための関数が入力されています。 そのやり方は以下の様なものです。 まず、G4以下に全ての品の品名を入力して下さい。 次に、G列に入力した品名に対応する単価を、H列に入力して下さい。 次に、C4セルに次の関数を入力して下さい。 =IF(COUNTIF($G$4:$G$7,$B4)=0,"",VLOOKUP($B4,$G$4:$H$7,2,FALSE)) 次に、C4セルをコピーして、C5以下に貼り付けて下さい。 次に、E4セルに次の関数を入力して下さい。 =IF(AND(ISNUMBER($C4),ISNUMBER($D4)),$C4*$D4,"") 次に、E4をコピーして、E5以下に貼り付けて下さい。 これで準備は完了で、後は、B列に品名、D列に数量を入力しますと、単価と金額が自動的に表示されます。
補足
ご丁寧な回答ありがとうございます。説明文を省略したので申し訳なかったのですが商品に対して既に単価が決まっている訳ではなくとりあえず見積項目を上げ、品物を見ながら値決めしていこうかなと考えております。のでいちいち数字入力ではなくこれはA、これはCにしようかなと考えながら取らぬ狸の皮算用をもくろんでおります。 ところで補足ですがCOUNTIF関数で品名が空白かそうでないか調べていると思われますが、ISBLANK関数でも同じ働きですか?他の回答者の方もCOUNTIF関数を使われていますがCOUNTIF関数についてご教授お願い致します。
- mu2011
- ベストアンサー率38% (1910/4994)
一例です。 シンプルにするなら、ABCDと単価を表(仮にE1:F4)に定義してVLOOKUP関数になると思う。 =IF(COUNTIF($E$1:$E$4,単価セル),VLOOKUP(単価セル,$E$1:$F$4,2,FALSE)*数量セル),"") 参考.表をを使用しない方法 =IF(SUM(COUNTIF(B7,{"A","B","C","D"})),LOOKUP(B7,{"A","B","C","D"},{1000,2500,7000,12000})*数量セル,"")
お礼
回答ありがとうございました。まだまだ初心者なので( )の何重にもなって いるのはこれから勉強します。又宜しくお願い致します。
- mshr1962
- ベストアンサー率39% (7417/18945)
4の計算時にLOOKUP関数、VLOOKUP関数を使えばいいと思います。 C4に単価の記号、D4に数量,E4に結果なら E4=IF(COUNTIF("ABCD","*"&C4&"*"),LOOKUP(C4,{"A","B","C","D"},{1000,2500,7000,12000})*D4,"")
お礼
回答ありがとうございました。まだまだ初心者なのでまた宜しくお願い致します。
補足
お礼の後にすみません。 式を読み解こうとしたのですが、COUNTIFの意味が分かりません。 参考書には「範囲内で検索条件に合うセルの数を数える。」とありますが ここでは何をさせているのですか。よろしくお願いします。
- akiomyau
- ベストアンサー率43% (555/1280)
例えば、Sheet2のA1からD2に単価の文字の対応表を作ります。 A 1000 B 2500 C 7000 D 12000 これを元にSheet1のA2に数量、B2に単価の記号を入れます。 式としては、以下のようになります。 =A2*VLOOKUP(B2,Sheet2!A1:B4,"2") こんな感じでどうでしょうか。
お礼
できました。素早い回答を頂きありがとうございました。 使用する関数も少なくてシンプルで助かります。 これからも宜しくお願い致します。
お礼
早速丁寧な回答を頂きありがとうございます。ちょっと踏み込んだエクセル的な部分になるとまだまだむずかしいですがちょっとずつ読み解いてみます。今回はありがとうございました。