- 締切済み
指数の質問です
エクセルのシートに10の23乗で上付きで10^23にした値をvlookupで検索をかけて10の23乗のセルを見つけると表示される数は上付きの表示が普通の数字になって表示されています。これを解消する方法があるんでしょうか?
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
質問者は意識してないでしょうが、手ごわい問題だと思いました。 A列 B列 C列 D列 E列 1 1020 3 1023 1023 2 1021 4 1022 1022 4 1022 2 1021 1021 3 1023 1 1020 1020 上記のB列4桁の数字は後半2桁は上付きと思ってください。 上付きに設定すると言うことは数字が文字列でないと実現しません(*1)。 したがってB列は文字列の列です(数値ではない)。 A2:B5はVLOOKUPのテーブルです。 D2に=VLOOKUP(C2,$A$1:$B42,2,FALSE)と入れてD5まで式を複写する。 質問に書いておられるように、 関数は書式(上付き文字という書式)まで持ってこれない(*2)ので文字列の1023などを引いてD列にセットします。 また前もって上付き文字の書式をセルにセットできない(*3) ので、あらかじめセットしておくこともできません。 また後から、複数範囲セルを対象にして、上付き文字に書式を設定することもできません(*4)。 E列に上記4桁の数字を入れて VBAで Sub test01() For i = 2 To 7 Cells(i, "E").Activate X = Cells(i, "E").Value ActiveCell.FormulaR1C1 = "'" & X With ActiveCell.Characters(Start:=3, Length:=2).Font .Superscript = True End With ActiveCell.Select Next i End Sub を実行すると、E列は上付き文字になります。 しかし、文字列にするため ActiveCell.FormulaR1C1 = "'" & X をせざるを得ない(*5)ので、D列でこれをやると、関数式が壊れます。 1回限りでよいのならD列のVLOOKUP関数を壊しても良いかと思いますが、C列の変化に対応できません。 随分難しい点に、踏み込んでいると思うので、質問者の上付き文字を 使うアイデアはエクセルでは、無理があるということです。 (*1)(*2)(*3)(*4)(*5)については、大切な点であり、初心者には重要性が認識されていない点で、間違いがないか回答者諸賢の批判を乞う。
- mshr1962
- ベストアンサー率39% (7417/18945)
IME2002/2003なら数字の変換で上付き・下付きの数字(UNICODE文字)があるのでこれを使えば解消できます。