[[20091101153009]] 『おなじ列に、多様な数値を表示』(やま) >>BOT

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『おなじ列に、多様な数値を表示』(やま)

 下記 A列のような表示をしたいのですが。(1行づつ , . を手入力したものです)

 小数点以下が、まちまち。0.123 とか 123.56789
 整数のコンマ , も 1234,7.5023 など 11桁以内です。
 ユーザー定義、などで上手く表示できるでしょうか? よろしくご教示ください。 

     A                 B                  C              D
 1	2009/11/1		Excel  質問用
 2 12,345,678,901	12345678901	12,345,678,901 	12345678901
 3 123,456.89	123456.89	                123,457    	123456.89              
 4 0.123456	0.123456	                      0    	0.123456
 5			
 6 A列が、希望する表示	B列が入力状態	→ 桁区切りスタイルで , を選択 
 7	
 8		C列のようになる	書式=数値
 9			
10		D列のようになる	書式=文字列     			
Excel2007
WindowsXP			


 過去ログです。
[[20070905065651]]『小数点と桁区切り』(初心者:ひろ)

 上記中でも書いてありますが
  ・入力するセルと、表示するセルを分けて、関数を使いその様な表示を作る
  ・マクロを使い、入力されたデータを判断しそれぞれ書式を設定する
 等に成ると思います。

 例えば、数式なら
 =IF(B2="","",TEXT(INT(B2),"#,##0")&MID(B2,FIND(".",B2&"."),11))
 ≪注≫データは文字列になります。

 マクロがご希望の場合は、他の方のコメントをお待ち下さい。

 (HANA)

 (HANA)さん:
 ありがとうございます。無事できました。種々の関数を駆使していくのですね。
 今頃気が付きましたが、例えば C4に対して計算式を入れれば、結果は正しく返されている。
 C4の表示は[0]でも、0.123456と認識されている。  (やま)


 表示されているデータ(人が見て、そうであると思うデータ)と
 実際にエクセルが認識しているデータでは、違う事が良くあると思います。

 例えば、A1セルに =1/3 と言う式を入れて計算をさせると 0.333333・・・・ と続きますが
 A1セルの表示形式を小数点以下2位までに設定し、セルに[0.33]と表示させます。
 A2セルに =A1*3 とすると「1」に成ります。
 A3セルに =0.33*3 とすると「0.99」にしかなりません。

 つまり、A1セルには[0.33]が入ってるように見えるけど
 実際は「0.333333・・・・」が入っている事になります。

 C4セルに「0.123456」と入っているなら
 例え表示が[0]だったとしても
 矢張り、入っている値は「0.123456」です。

 これは
 「セルに表示されている値を電卓で足し算した結果と
  SUMで合計した結果が異なる」
 「2009/11/2 の 年部分が取り出したく =LEFT(A1,4)とするのに
  変な値になって、2009が得られない」
 等の状況の原因に成る場合も有りますので
 目に見える物に惑わされないように
 注意をして於かれるのが良いと思います。

 (HANA)

 (HANA)さん:
 ご丁寧に ありがとうございました。所で 前の質問にもお答えを頂きましたが
 計算した数値を、「回答表」に入力させる件。その延長戦?と ここの質問とで
 再度 お願いします。 下記表で、上段の番号 11と12の 入力結果です。
 下段の、文字列表示のように、「入力」しても、上段の用に、数値を返してしまう。
 このような数値は、20問題中に数問なんですが、何か良い方法が有りますでしょうか?
 「判定」は ◎に評価していますが、生徒が入力した数値と違う、となり困っています。

   F        G       H       I        N              O        P
1 	Excel 質問用	1	回		2009/11/3	
2	解答 入力用			こちらは、非表示にしておきます		
3	ここには、回数を選択して、計算した数値を	正答の一覧4 表です	
5	入力する欄です。			回数→	1	2
6  番号	入力欄	判定		番号↓		
7  11	123456789	 ◎		11	123456789      22226077350
8  12	225908732	 ◎		12	225908732	      0.041
9  13	0.036	 ◎		13	0.036	      44533663584
10 14				14	5593154315     31742497.78
11 15				15
12
13	書式=文字列で表示しています					
14 11	123456789.012					
15 12	225908732.02					
16 13	0.036					
17 14	5593154315					


 済みませんが、どう言った事か良く分かりません。

 G7セルに「123456789.012」と表示させたいなら
 回答入力欄も、文字列にしておけば良いのでは・・・?
 O7セルの値と確認をするなら、こちらも
 文字列にしておく必要が有ると思いますが。

 ただ
 >「判定」は ◎に評価していますが
 というのは、
  「.012」があっても無くても 正解にする
 と言う事ですか?
 それとも・・・・・・?

 そもそも
  G7セルは「123456789.012」と入力して「123456789」と表示されているのですよね?
  H7セルにはどの様な式を入れているのでしょう?
  O7セルにはどの様なデータが入っているのでしょう?
 この辺りも含め、もう少し詳しく教えて下さい。

 (HANA) 

 (HANA)さん:
 引き続きありがとうございます。
 初めの件は、ご指摘のように、入力セル・呼び出すセル双方を「文字列」にして OKですね。
 123456789.012 これでなければ、判定は×です。従ってご教示の「文字列」で表示可能となりました
 堅い頭の中に、「文字列は計算できない」が、ありました。桁数が14桁の合計などを出す時
 SUM関数がきかない。呼び出した数値は文字列であれ、正しく返して判定の◎×をするのですね。
 次の件 上記が解決していますが、念のため記述します。
 H7セルには 先に、ご教示いただいたものです。
=IF(G7"","",IF(INDEX($O$7:$P$11,MATCH(F7,$N$7:$N$11,0),MATCH($H$1,$O$4:$P$4,0))=G7,"◎","×"))
 O7セルには、 123456789.012 です。 この列も「文字列」にすればいいのですね。
 (やま)

 済みません、ちょっと違う想像をしていたので。。。

 >入力セル・呼び出すセル双方を「文字列」にして OKですね。
 はい、その様にしてやってみて頂ければと思います。

 >呼び出した数値は文字列であれ、正しく返して判定の◎×をするのですね。
 同じイメージが上手く伝わるかどうか分かりませんが
 少し書いてみます。

 例えば、A1セルに(表示形式:標準)123 と入力すると
 この 123 は数値です。SUM(A1) とすると 123 と計算されます。
              ~~
 A2セルの表示形式を文字列にして 123 と入力すると
 この 113 は数字です。既に書いて居られる様に SUM(A2)では計算出来ません。
              ~~
 では、A3セルに=INDEX(A1:A2,1)で返される物は 数値でしょうか。数字でしょうか。
 A4セルに=INDEX(A1:A2,2)もついでに計算させておいて
 B3,B4セルにでも =TYPE(A3) で戻り値を確認してみて下さい。
  戻り値が 1 の場合は数値
  戻り値が 2 の場合はテキスト(数字)
 です。

 同じ「123」でも =数値=数字 では、FALSE に成ります。
 =数値=数値 や、=数字=数字 なら、TRUE です。

 ひとつ
  解答が割と簡単に確認出来る(見ることが出来る)状態に在るのではないか
 と言う点が気になります。
 どうせ、完全に見えない様にする のは難しいと思うので
「テストは本人の為にある。後は各人の判断に任せる」
 で 良いのかもしれませんが。

 (HANA)


 (HANA)さん:
 なるほど Excelは奥が深いですね! 数値と数字 戻り値の利用 勉強になりました。

 ご心配を頂いている点ですが、画面に表示してある箇所は、「回答入力と回数しか」
 入力出来ないように、他のセルには、ロックといいますかシート保護して、パスワー
 ドも必要な状態にしています。 何度も 素早いご教示を頂きまして感謝しています。
 有り難うございました。 (やま)
 

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.