[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『表示形式・単位をつけたいが』(nana7)
下記のような表示形式にする方法を教えてください
A B
1 22D =IF(A1="","",A1)
B2は「22.0D台」となるようにしたい。
表示形式 〜 ユーザー定義 で
0.0"D台"
だと思うんですが。 ユーザー定義、詳しくないです。 (jun53)
ご希望がよく理解できませんので、とりあえず、 (LOOKUP) =IF(RIGHT(A1)<>"D","",TEXT(LEFT(A1,LEN(A1)-1),"0.0!"&RIGHT(A1)&"台"))
ごめんなさい。
A ・・・・・ G
1 22D =IF(A1="","",A1)
2 13
G1は計算結果が「22.0D台」となるようにしたい。 G2は 「13.0台」など
Aのデータはランダムです。 22D 13 34G などなど それで 数字と文字が混ざった答えのときも台が付くようにしたいんです。(nana7)
数字は二桁、文字は1文字限定ですが、 =IF(A1="","",TEXT(LEFT(A1,2),"0.0")&IF(LEN(A1)=2,"",RIGHT(A1,1))&"台") ではどうでしょう。 >kwがつくように・・・ というのが判りませんでした。 (kobi)
kWは間違いです。すみませ〜ん(^^ゞ(nana7)
文字が混ざる場合は、1文字だけとして考えました。(2文字・3文字…もあるんですか?) =IF(A1="","",IF(ISERROR(A1/1),TEXT(LEFT(A1,LEN(A1)-1),"0.0")&RIGHT(A1,1),TEXT(A1,"0.0"))&"台") 頭に文字が来るとアウトですが・・・ (sin)
まだ、ご希望が、理解できませんが、このようなことでは、どうでしょう?
=IF(A1="","", IF(ISNA(LOOKUP(10^16,-LEFT(A1,ROW($1:$20)))),A1, REPLACE(A1,1+LEN(LOOKUP(10^16,--LEFT(A1,ROW($1:$20)))),,".0")&"台"))
1 -123D -123.0D台 2 123 123.0台 3 123ABC 123.0ABC台 4 A0AA A0AA 5 ABC ABC (LOOKUP)
nana7さん、失礼します。 LOOKUPさん、いつも眺めながら敬服しております。 毎度毎度申し訳ありませんが、数式の解説お願いしていいですか? 特に=LOOKUP(以降 ・・・、それと ROW($1:$20) ・・・-LEFT() あと・・・全体か? 凄すぎることだけは理解した (kobi)
nana7さんのご希望がはっきりしないうちに、数式の解説というのも変なのですが、 ご要望がありますので、簡単に説明させていただきます。
=IF(A1="","", IF(ISNA(LOOKUP(10^16,-LEFT(A1,ROW($1:$20)))),A1, REPLACE(A1,1+LEN(LOOKUP(10^16,--LEFT(A1,ROW($1:$20)))),,".0")&"台"))
これは、A1に左から数値が入力していて、この数値の後に文字列などが接続している 場合は、数値の後ろに.0を加え、文字列の最後に台を付加する。 A1の左から直ぐ数値が配置していない場合には、変換せずA1をそのまま、戻す。 という意図で、試作されています。
この数式の主部は、 REPLACE(A1,1+LEN(LOOKUP(10^16,--LEFT(A1,ROW($1:$20)))),,".0")&"台"の部分です。
1.REPLACE(A1,1+LEN(数値の部分),,".0")&"台" ここは、A1の中で、1+LEN(A1の数値の部分)の桁数の位置に".0"を挿入して、 さらに後ろに"台"を付加しています。
2.数値の部分のLOOKUP(10^16,--LEFT(A1,ROW($1:$20)))は、 LEFT(A1,{1;2;3;……;18;19;20})の部分で、A1の左から1桁から20桁までの 文字列の配列を作成し、--として、数値に変換させています。
A1に-123Dの場合ですと、 ={#VALUE!;-1;-12;-123;#VALUE!;#VALUE!…以下すべて同様 ということになります。 LOOKUP(10^16,配列)としていますので、配列の#VALUE!を除く一番奥の数値が戻ります。 この場合は、-123です。
=LOOKUP()は、=SUMPRODUCTと同様、配列を扱う関数ですので、 Enterの替わりに Ctrl+Shift+Enterとする必要は、ありません。
数式の頭の=IF(A1="","",は、当該セルが空白の場合は、以下の処理に入らない、
次のIF(ISNA(LOOKUP(10^16,-LEFT(A1,ROW($1:$20)))),A1,は、A1の左から数値が配置して いない場合には、配列内に数値がないことになりますので、 LOOKUP(10^16,-LEFT(A1,ROW($1:$20)))は、#N/A!を戻し、これをチェックすることで、 主部の計算には、入らないように しています。
-LEFT(…と-が1個しかないのは、数値自体は、使用しないので 少しでも処理を軽減しようと しています。
このようなことなのですが。。 (LOOKUP)
そうでした、割り込み失礼しました。。 nana7さん、LOOKUPさん、どうもありがとうございました。 (kobi)
みなさんありがとうございます^^ 英語が複数だったり先頭が文字だったりすることはないんです。 kobiさんの最初の方法でいけそうです。他にもたくさん・・・どうもありがとうございました^^。すごい勉強になりました。(nana7)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.