Excel (一般機能)

Excelの一般機能に関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 8.1 : Excel 2013)
丸印数字の計算式
投稿日時: 22/10/20 08:35:14
投稿者: ytuboi200

丸印数字の計算式、例えば@+A=Bというように丸印数字で計算がしたいのですが教えてください。また、書式設定で数字を丸印にするのはどうするのでしょうか。

回答
投稿日時: 22/10/20 09:12:24
投稿者: メジロ2

文字コードを使って計算できるかもしれません。
エクセルの表形式でデータ(丸数字)がどのように入力されているのか
書込んでください。

回答
投稿日時: 22/10/20 09:49:08
投稿者: Suzu

まず、フォントとしての丸数字は 50までしかありません。
 
50以上が必要であれば、Excel単体では不可です。
 
Wordを使えば、囲い文字 の機能を使い 99 までは可能
  → 「挿入」-「テキスト」の「オブジェクト」-「新規作成」「Microsoft Woed Document」
     数値を入力し、そのテキストを選択し、「ホーム」「フォント」の「囲い文字」
 
 
フォントには、文字コードが割り当てられています。
丸数字の1「@」は 【9312】で、丸数字の50「㊿」は【112991】です。
 
A1 に 9312 を入力し、
B1 に『=UNICHAR(A1)』とすると、丸数字の1「@」を表示させる事ができます。
ここで、
C1 に『=UNICODE(B1)』とすると、「9312」を表示できます。
 
つまり、
 UNICHAR は 文字コードに対応した文字を表示する関数
 UNICODE は 文字の文字コードを表示する関数
です。
 
これを使い、1〜50までの丸数字の文字コードを得る事ができます。
 
 1〜20 までの 丸数字の文字コード 9312〜9331
21〜35 までの 丸数字の文字コード 12881〜12897
36〜50 までの 丸数字の文字コード 12977〜12991
が判明します。
 
丸数字 から、文字コード に変換し
 その数値が
   9312〜9331 なら、文字コードの値から 9311 を引く
  12881〜12897 なら、文字コードの値から 12860 を引く
  12977〜12991 なら、文字コードの値から 12941 を引く
  を行う事で、丸数字の中の 数字を得る事ができますから
 
 その結果から、足し算を行い、それを、文字コードに変換後 UNICHARを使い丸文字に変換します。

回答
投稿日時: 22/10/20 10:02:39
投稿者: Suzu

UNICHAR・UNICODEを使っても良いでしょうが、
丸数字の文字コードが飛び飛びになっていて、IF関数等の条件分岐が必要になります。
 
Ex)
A1 に入れた 数値 の 丸文字を得る関数
=UNICHAR(IF(AND(A1>=1,A1<=20),A1+9311,IF(AND(A1>=21,A1<=35),A1+12860,IF(AND(A1>=36,A1<=50),A1+12941))))
 
それであれば、

	A	B
1	1	@
2	2	A
3	3	B
4	4	C
5	5	D
6	6	E
7	7	F
8	8	G
9	9	H
10	10	I
11	11	J

 
の様な対応表を作っておき、それぞれの値を変換し、計算した方が良いかもしれませんね。

回答
投稿日時: 22/10/20 11:06:38
投稿者: んなっと

A:E列を合計
  
  A  B  C  D  E  F  G
1 A D       F  7
2 @ F C H E ㉗ 27
  
F1
=IF(G1>0,IF(G1>50,G1&UNICHAR(8413),UNICHAR(G1+LOOKUP(G1,{1,21,36},{9311,12860,12941}))),"")
下方向・↓
G1
=SUM(IFERROR(UNICODE(A1:E1)-LOOKUP(UNICODE(A1:E1),{9311,12860,12941}),))
Ctrl+Shift+Enter同時押し
下方向・↓

回答
投稿日時: 22/10/20 14:07:01
投稿者: んなっと

丸数字にする書式設定は、ないと思います。
以下の方法は数字が読みにくくなるので、おすすめしません。
 
書式→ユーザー定義
[<10]0 !⃝;0!⃝  ←これをコピーして貼り付け

投稿日時: 22/10/20 20:09:31
投稿者: ytuboi200

質問をしてすぐ外出し先ほど帰宅して見ましたら
たくさんの方からご教示して頂き大変ありがとうございます。でも
どれもむつかしいものばかりで私にはハードルが高いです。少し考えさせていただきます。

回答
投稿日時: 22/10/22 22:03:22
投稿者: WinArrow
投稿者のウェブサイトに移動

別案1
  
G1:H50に変換テーブルを作成します。
G列:➀〜○50まで
H列:1〜50
  
データ
A1:A
B1:E
  
C1:=INDEX($G$1:$H510,INDEX($G$1:$H$50,MATCH(A1,$G$1:$G$50,0),2)+INDEX($G$1:$H$50,MATCH(B1,$G$1:$G$50,0),2),1)
数式を見た目簡略するために
ユーザー定義関数にする方法もあります。

回答
投稿日時: 22/10/22 22:16:34
投稿者: WinArrow
投稿者のウェブサイトに移動

追加レス
  
丸付き数字は、1〜50です。
丸0という文字は存在しません。
また、マイナスになるような場合は、どうするのか?
考えておいた方がよいでしょう。

投稿日時: 22/10/23 08:30:47
投稿者: ytuboi200

色々考えましたがどれも難しいので他の方法を考えます。皆様大変ありがとうございました。