- ベストアンサー
エクセルで数字を半角カタカナに変換
エクセルで数字を半角カタカナ 1→ア、2→イ、3→ウ、4→エ、5→オ 6→カ、7→キ、8→ク、9→ケ、0→コ、 ト → おなじ数字が続く時 に置き換えたいのですが、巧くいきません。 マクロが出来ないので、関数を組み合わせたりしましたが、全然ダメです。 例) 12500 → アイオ(最後にゼロが続く時はゼロを無視) 120500 → アイコオ 22800 → イトク 220800 → イトコク 800600 → クコトカ こんな感じですが、なかなか巧くいきません。お教え下さい。
- question11
- お礼率22% (6/27)
- オフィス系ソフト
- 回答数6
- ありがとう数3
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
ユーザー定義関数を作りました。 Alt + F11で表示されるダイアログで「挿入」「標準モジュール」で追加した場所に 下記コードをコピーしてお試しください。 ※使用法は=NKANA(セル座標または数値) Function NKANA(NM As Long) As String Dim NMX As Integer, NMS, NMR As String '1次置き換え For I = 1 To Len(Format(NM, "0")) NMS = NMS & Mid("コアイウエオカキクケ", Mid(NM, I, 1) + 1, 1) Next I '00終了文字削除 NMX = 0 For I = Len(NMS) To 1 Step -1 If Mid(NMS, I, 1) = "コ" And NMX = 0 Then NMR = "" Else NMR = NMR & Mid(NMS, I, 1) NMX = 1 End If Next I '連続文字対応 NMR = NMR & " " For I = 1 To Len(NMR) - 1 If Mid(NMR, I, 1) = Mid(NMR, I + 1, 1) Then NMZ = "ト" & NMZ Else NMZ = Mid(NMR, I, 1) & NMZ End If Next I '文字セット NKANA = NMZ End Function
その他の回答 (5)
- maron--5
- ベストアンサー率36% (321/877)
◆ANo.5のmaron--5です ◆B1の式がまちっがっていましたので訂正します B1=C1&D1&E1&F1&G1&H1&I1
- maron--5
- ベストアンサー率36% (321/877)
◆関数による方法です A B C D E F 1 12500 アイオ ア イ オ 2 120500 アイコオ ア イ コ オ 3 22800 イトク イ ト ク 4 220800 イトコク イ ト コ ク 5 800600 クコトカ ク コ ト カ C1=IF(A1="","",MID("コアイウエオカキクケ",MID($A1/IF(RIGHT($A1,2)="00",100,1),COLUMN(A1),1)+1,1)) ★下にコピー D1=IF(COLUMN(B1)>LEN($A1)-(RIGHT($A1,2)="00")*2,"",IF(MID($A1,COLUMN(A1),1)=MID($A1,COLUMN(B1),1),"ト",MID("コアイウエオカキクケ",MID($A1/IF(RIGHT($A1,2)="00",100,1),COLUMN(B1),1)+1,1))) ★右と下にコピー B1=D1&E1&F1&G1&H1&I1&J1 ★下にコピー
- Wendy02
- ベストアンサー率57% (3570/6232)
こんばんは。 =ConvertKataKana(A1) とします。 設定方法は、他の方が述べている通り、標準モジュールに設定します。 なんというか、どれほど、質問の日本語を忠実に再現するかっていうような内容ですね。(^^; >最後にゼロが続く時はゼロを無視 つまり、0 が続かないので、 120 -> アイコ になります。 なお、本来、配列の添え字は、1からすればよいと思う方もいるかもしれませんが、VBAでは、同じですが、別の言語ですと、1からはありませんので、あえて、0 からにしてあります。その分、ややこしいですね。 なお、当たり前ですが、サブルーチン関数にしても良いと思います。 '標準モジュール '--------------------------------------------------------------- Function ConvertKataKana(ByVal InFig As Variant) As String Dim Figs As Variant Dim Kanas As Variant Dim buf As Variant Dim strFig As String Dim strFigBuf As String Dim ar As Variant Dim i As Integer Dim j As Integer Dim outBuf As String Dim outChr As String 'この二つ(Figs,Kanas)の代入値には、コンマの間にはスペースを入れない Figs = Split("1,2,3,4,5,6,7,8,9,0", ",") Kanas = Split("ア,イ,ウ,エ,オ,カ,キ,ク,ケ,コ", ",") If TypeName(InFig) = "Range" Then InFig = InFig.Cells(1).Value If IsNumeric(InFig) And InFig <> Empty Then buf = InFig If buf Like "*00" Then While Right$(buf, 1) = "0" buf = Mid$(buf, 1, Len(buf) - 1) Wend End If Else Exit Function End If buf = CStr(buf) For i = 1 To Len(buf) strFig = Mid$(buf, i, 1) If strFigBuf = "" Then ar = Filter(Figs, strFig) If CInt(ar(0)) = 0 Then j = 9 Else j = CInt(ar(0)) - 1 outBuf = Kanas(j) ElseIf strFigBuf = strFig Then outBuf = "ト" Else ar = Filter(Figs, strFig) If CInt(ar(0)) = 0 Then j = 9 Else j = CInt(ar(0)) - 1 outBuf = Kanas(j) End If outChr = outChr & outBuf strFigBuf = strFig '前の文字を確保 Next ConvertKataKana = StrConv(outChr, vbNarrow) End Function
- Cupper
- ベストアンサー率32% (2123/6444)
置換えを行う順番を工夫してみましょう。 1.同じ数字が続く場合を先に処理します。 2.次に数字を文字に置換え。 3.最後に文字列の最後にゼロが続いた場合(文字列の最後に”コト”)これを空白に置き換える。 1,2は普通に置換えです 3はオートフィルタを設定して、オプションから「”コト”で終わる」を選択。 文字の入力されている範囲を選択 → 編集 → ジャンプ → セル選択 → 可視セル → OK これで文字の最後に”コト”があるセルだけが選択されるので、置換えで”コト”を空白に置き換える。 マクロやVBAが分からないのであれば、面倒ですがこの方法を試してください。
12500______アイオコ 22800______トクコ 220800____トコクコ 800600____クココカコ このような複雑な変換はやっぱしVBAの出番かと思いますよ! 次の手順でたれば、さして難しいことではないです。 1、[Sheet1]タグを右クリックして[コードの表示(V)]をクリック。 2、メニューの[挿入(I)]-[標準モジュール]をクリック。 3、以下のコードをコピペ。 これで、B1=SujiXfer(A1) と式を設定すれば目的を達成します。 Public Function SujiXfer(ByVal Suji As String) As String Suji = Suji & "*" Suji = Replace(Suji, "00*", "0*") Suji = Replace(Suji, "00*", "0*") Suji = Replace(Suji, "0*", "0") Suji = Replace(Suji, "11", "ト") Suji = Replace(Suji, "22", "ト") Suji = Replace(Suji, "33", "ト") Suji = Replace(Suji, "44", "ト") Suji = Replace(Suji, "55", "ト") Suji = Replace(Suji, "66", "ト") Suji = Replace(Suji, "77", "ト") Suji = Replace(Suji, "88", "ト") Suji = Replace(Suji, "99", "ト") Suji = Replace(Suji, "00", "ト") Suji = Replace(Suji, "1", "ア") Suji = Replace(Suji, "2", "イ") Suji = Replace(Suji, "3", "ウ") Suji = Replace(Suji, "4", "エ") Suji = Replace(Suji, "5", "オ") Suji = Replace(Suji, "6", "カ") Suji = Replace(Suji, "7", "キ") Suji = Replace(Suji, "8", "ク") Suji = Replace(Suji, "9", "ケ") SujiXfer = Replace(Suji, "0", "コ") End Function なお、当方、Excelを操作したことがない門外漢です。 結果は保証しますが、外しているかも知れません。
関連するQ&A
- 3次関数y=x^3-2ax^2+a^2x (a>0)の0≦x≦1におけ
3次関数y=x^3-2ax^2+a^2x (a>0)の0≦x≦1における最大値を求めたい。 まず、yはx=(ア)のときに極大値(イ)をとり、x=(ウ)のとき極小値(エ)をとり、さらに(ア)以外にy=(イ)となるようなxの値はx=(オ)である。 そこで、求める最大値をaの関数と考えてM(a)で表すと次のようになる。 a≧(カ)のとき M(a)=(キ) (カ)>a≧(ク)のとき M(a)=(ケ) (ク)>a>0のとき M(a)=(コ) という問題なんですが、(ア)~(オ)までは分かったんですが、 場合わけする部分がどうすれば解答にたどり着くか分かりません。 分かる方解説よろしくお願いします。 解答 (ア)a/3(イ)(4a^3)/27(ウ)a(エ)0(オ)4a/3 (カ)3(キ)a^2-2a+1(ク)3/4(ケ)(4a^3)/27(コ)a^2-2a+1
- ベストアンサー
- 数学・算数
- エクセル セルデーターの統合
エクセルのセル(行)にあるデーターを統合したいのですが・・・。 列も行もかなりあり、共通のデーターは何個かあります。下の例では、ア01とイ01です。 その他は、ア02とイ02という具合にセットになってます。 どちらかの行(ここでは1と3)にデーターをまとめる。 【例】 ***A列|B列|C列|D列|E列|F列| 1|ア01|イ01|ウ*|空白|エ*|空白| 2|ア01|イ01|空白|カ*|空白|キ*| 3|ア02|イ02|ク*|空白|ケ*|空白| 4|ア02|イ02|空白|コ*|空白|ナ*| 【完了後】 ***A列|B列|C列|D列|E列|F列| 1|ア01|イ01|ウ*|カ*|エ*|キ*| 3|ア02|イ02|ク*|コ*|ケ*|ナ*| このような、データーの簡単な結合方法は、ありませんか?
- ベストアンサー
- オフィス系ソフト
- たんぱく質の代謝の問題について
炭水化物はブドウ糖などの「ア」になり吸収され「イ」に運ばれ「ウ」として蓄えられる。一部のブドウ糖は血液中に入り「エ」などの組織に運ばれ、肝臓と同様にウに合成され、蓄えられる。このウはエを動かすときの「オ」供給に使われる。 ウは「カ」においてビルビン酸となり。その後「キ」を経て酸化され「ク」と水に分解される。 エで消費されたブドウ糖は「ケ」によって全身に補給される。血糖値が低下すると肝臓に蓄えられていた「ウ」が分解されて「コ」になり血液中に放出される。 の空欄を埋めろという問題です。 ア: イ:肝臓 ウ:グリコーゲン エ: オ: カ: キ: ク: ケ: コ: とまだ分らないところが沢山あります。 ビルビン酸が何なのかも分りません。 よろしくお願いします。
- ベストアンサー
- 生物学
- 数学IIの問題を教えてください
数学IIの問題を教えてください f(θ)=4sinθ+2cos2θ g(θ)=3-2/√3cosθを考える (1) g(π/6)=【イ】 (2)f(θ)=【ウ】【ヱ】sin^2θ+【オ】sinθ+【カ】 =【ウ】【ヱ】(sinθ-【キ】/【ク】)^2+【ケ】 と変形でき 0≦θ<2πにおいてf(θ)が最大になる時のθは θ=π/【コ】、【サ】/【シ】π カタカナに入る数字を教えてください
- 締切済み
- 数学・算数
- 三角関数が分かりません(;o;)
明日 数学で当たるのですが 数学が嫌いなので ぜんぜん わかりません (;o;) そこで よかったら 途中の式も入れて カタカナの部分を求めるのを お願いします! △ABCにおいて、∠B=Θ、∠C=π/2、AB=2sinΘ とする。 このとき l=sinアΘ-cosイΘ+ウ =√エsin (オΘ-π/カ.)+ウ よって、Θが 0<Θ<π/2の範囲で変化するとき Lは Θ=キπ/ クのとき、 最大値ケ+√コをとる 明日までにお願いします!
- 締切済み
- 数学・算数
- 半角カタカナの変換で困ってます
word2007を使っているのですが 半角カタカナに変換したときだけ文字の間隔が開いてしまいます 東京 → ト ウ キ ョ ウ といったことになってしまいます。 間隔を詰める場合はどうしたらいいのでしょうか教えてください
- 締切済み
- オフィス系ソフト
- この問題の回答お願いします。
数学のマークです。 四面体OABCにおいて、AO⊥BO、AO⊥CO、BO⊥CO、∠ABO=45° ∠CAO=60°、OB=2であるとき OA=ア CO=イ√ウ であり、四面体OABCの体積は エ√(オ)/カ △ABCの面積は キ√ク 頂点Oから△ABCに下ろした垂線の長さは ケ√(コサ)/シである。 ア= イ√ウ= エ√(オ)/カ= キ√(ク)= ケ√(コサ)/シ= という問題がよくわかりません。 どうか回答お願いします。
- 締切済み
- 数学・算数
お礼
いやあー、色々なやり方があるのですね。皆様のお陰で考えている事が解決出来ました。 maron--5さんの回答欄をお借りして皆様にお礼申し上げます。有難う御座いました。