• ベストアンサー

エクセル2000で、A列の3桁のデーターで1桁の値が

エクセル2000で、A列の3桁のデータがあり、一の位が、1又は2の場合、B列に一の位が1ならば"A"、B列に一の位が2ならば"B"としたいのですが、IF関数RIGHT関数を組み合わせてみましたがうまくいきません。この暑さで頭が冷や汗かいてます。よきアドバイスお願いします。

  • BA-BA
  • お礼率45% (20/44)

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

RIGHT関数は文字列を対象としますから、A列のデータが数値の場合には意図した通りにはいかないと思います。 で、対処法ですが、 =INT(数値-10*INT(数値/10)) で数値の1の位を取り出して、IF文の条件に用いるのが宜しいかと。 実際には、 =IF(INT(A1-10*INT(A1/10))=1,"A",IF(INT(A1-10*INT(A1/10))=2,"B","")) をB1セルに入力すれば、  A1の1の位が1:A  A1の1の位が2:B  それ以外:空白文字列 となるハズです。 (少なくともExcel97ではOKでした)

BA-BA
質問者

お礼

ばっちりです。金種別の両替表を以前作成したときにINTを使った覚えがあったのですが,こういう場合に使うんですね。ありがとうございます

その他の回答 (2)

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.3

こんな方法もあります(参考に)。3桁の数値で1の位が1か2のみなら、   =CHAR(64+MOD(A1,10)) でもでます。ASCIIコードを計算しています。 数値ということで1の位が1~9,0を全て別文字に置き換えるなら、Ifはネストが7つまでなので使用できませんね。 comvさんのCHOOSEがわかり易いですね。 上の式を1~9,0まで対応にして(無理やり!)   0はスペース(ASCIIコード=32)にすると =CHAR(64+MOD(A1,10)-(MOD(A1,10)=0)*32)   0はJにするなら、=CHAR(65+MOD(A1-1,10)) ・・・やはりCHOOSEがいいですね。 蛇足ですが、セルに入力した数字は数値と文字の両方の性質を持っています。 A1に12、B1に34を入力して、C1に=A1+B1 とすれば、C1=46。 C2に=A1&B1とすればC2=1234 と表示されます。 たとえば、8桁数値、20010722(C3に入力)が年月日だとすれば、 年=LEFT(C3,4)または=MID(C3,1,4)、月=MID(C3,5,2)、日=MID(C3,7,2)または=RIGHT(C3,2) 当然この年、月、日は文字としても数値としても使えます。

BA-BA
質問者

お礼

とっても詳しいので助かります

  • comv
  • ベストアンサー率52% (322/612)
回答No.2

こんにちは! 様々な方法がありますが数例 1.BA-BAさんが思いついた方法  =IF(RIGHT(A1,1)="1","A",IF(RIGHT(A1,1)="2","B","")) 一位の数値を文字として取り出したので文字として("1")判断する必要があります。 2.数値としての判断  =IF(COUNT(A1),IF(MOD(A1,10)=1,"A",IF(MOD(A1,10)=2,"B","")),"") 3.一位の位0~9までの表示をそれぞれ表示させる  したの場合、0は空白 あとはA~I  =IF(COUNT(A7),CHOOSE(MOD(A7,10)+1,"","A","B","C","D","E","F","F","H","I"),"") こんなかんじでしょうか!

BA-BA
質問者

お礼

そうなんです。RIGHT関数を使うと文字にに変えなければいけないので困ってました。 ありがとう

関連するQ&A

  • エクセルで文字列の5桁目が9なら0に変更

    エクセル初心者です。 インターネットで調べてみたのですが、同様の質問にヒットしませんでしたので、教えてください。 A列に8桁の会員番号が文字列で表示されています。 この8桁のうち右側の5桁を関数(RIGHT(a8,5))でB列に抽出しています。 抽出された5桁の数字ですが、最上位桁が9の場合、0に変えたいのです。 A        B 01004567    04567  02015678    15678 03098765    98765 → 9を0に入替して「08765」と表示 このような対応が出来る関数を調べたのですが分かりませんでした。 ご教示のほど、よろしくお願いします。

  • エクセルの関数で桁を揃えたい

    エクセルで       A            B 1  12345  200000012345 2  212345  200000212345 3 1234567  200001234567 上のように A列の文字列を B列のように 頭を20にして 以下0を入れて10桁に 合計12桁にしたいのですが  関数でできるでしょうか? お願いいたします

  • EXCELで 一桁の数値を二桁に

    教えてください。 エクセルで、入っているデータを編集しているのですが A列には、一桁の数値が B列には、1桁から2桁の数値が C列には、1桁から2桁の数値が D列には、文字データが入っています。 D列のデータに対する対応表を作るために このA~C列のデータを CONCATENATE関数を使って合体させたいのですが、 (合体させると、数値がダブらない為) B列とC列に入っている1桁の数値を 2桁に変換したいのですが、 何かよい方法はありませんでしょうか? 手打ちで変換するには、かなり多いデータなのです。 どなたか、助けてください。

  • Excelで文字列が含まれている値から最小値を取り出す

    こんにちは。Excelの関数での質問です。 Excelで以下のようなデータがあった場合   A列   B列   C列 (1) 1    2    AB10001 (2) 1    2    CD10003 (3) 1    2    CD10002 (4) 1    2    AB10004 (5) 3    4    ZZ99999 (6) 3    4    ZZ00000 A列、B列の値が同じ行で、C列の左2桁が等しい値の中から最小を 取り出したいです。 このデータの場合、A列「1」、B列「2」のレコードでは C列の「AB10001」、「CD10002」が取り出したいです。 A列「3」、B列「4」のレコードでは C列の「ZZ00000」が取り出したいです。 以上、よろしくお願いいたします。

  • A列の数値データの桁数に応じて、B列に異なる値を記入する方法

    初心者です。エクセル2000 で入力します。すみませんが、教えてください。  A列のデータが4桁ならB列に 01 を記入、A列のデータが6桁なら 60 を記入、A列のデータが7桁なら 06 を記入したいのです。      A列       B列 1行  4001  →→ 01 2行  270006 →→ 60 3行  6300021 →→ 06  4行  4101   →→ 01 5行  271001 →→ 60 6行  6200032 →→ 06

  • Excel2000のセル内の文字列の数字の先の2桁を取り出す方法について

    年のいった初心者です。 以前の質問に対する回答有難うございます。また、教えてください。  エクセル2000です。セル内に数字の文字列で、4桁、6桁、8桁のものが有ります。4桁のものには"01"を、6桁のものには"60"を、表示し、8桁のものには数種類あり、8桁の場合は、各文字列で上位の2桁を表示したいのです。 =IF(LEN(A1)=4,"01",IF(LEN(A1)=6,"60",IF(LEN(A1)=8,?????? 4桁、6桁については以前に教えていただいた、関数等でいけたのですが、8桁のときが分かりません。困っています。お願いします。     A列    B列 1 7532 →→ 01 2 280573 →→ 60 3 34964821 →→ 34 4 06839775 →→ 06 5 67500023 →→ 67

  • エクセルで、6桁の数値から、大きな位の数値から4桁を取り除き、残る数値を表したい。

    初心者です。 エクセルのセルに6桁と7桁の数値が 不規則に並んでA列に入っています。 6桁でも7桁の数値でも、大きな位の数値から4桁を取り除き、 1の位と10の位の2桁の数値、7桁では、3桁の数値に B列に入れたいのですが、数式を使って出きることですか? 例)846529 の場合には 29、 2576846 の場合には846.が欲しい。 よろしくお願いします。

  • エクセル重複データのある列同士の2列を比較したい

    エクセルに詳しい方、教えて頂きたいです。 文で説明すると、難しいので例と一緒に説明させてください。 例えば、下のようなデータがあるとします。 A列 B列 山田さん 栃木県 山田さん 栃木県 山田さん 大阪府 山田さん 栃木県 鈴木さん 三重県 鈴木さん 三重県 大野さん 千葉県 大野さん 東京都 大野さん 東京都 A列はA列で重複したデータがあり、B列はB列で重複したデーターがある場合。 A列 B列 C列 山田さん 栃木県 大阪府 鈴木さん 三重県 大野さん 千葉県 東京都 上ような結果にできる方法はないでしょうか。 例えば住所録をデータで何年分かためており、整理したいが、現在の住所は一つのはずなのに間違えて住所入力したか引越ししたかで複数住所がある。現在はどちらが正しいのか確認するために、その確認資料を作成したい。(同じ名前の人で別人の人はいないとする。) 相違があるかどうかを調べるだけならと、 C列にif関数をいれて見ましたが、ベストな結果ではないと思います。 ちなみに入れた関数は、元のデータのC列目に IF(A1=A2,IF(B1=B2," ","相違あり")," ") 上のIF関数をいれて、下にデータの分だけコピペしました。 エクセルを触るのは久々で、思いつく方法をしてみました。 ですので関数でできるのか、マクロでできるのか、またはエクセルの機能を使用してできるのか、またその方法を教えて頂きたいです。 そんな表にしなくても、こういうのでいいんじゃないの?等の提案でも構いません。 よろしくお願いいたします。

  • エクセルでA列のデーターを30分毎に別の列にコピー

    測定機器のカウンターからRS232C経由でエクセルにA1、B1から順番にA1 B1,A2 B2、A3 B3とその時刻とデーターを書き込んでいくソフトがあります。A列の最後まで行くとそこで終了です。 この1分毎のデーターをリアルタイムでたとえばD列とE列にその時刻とデーターの30分間分をVBAを使ってコピーしたいのです。30分終了したら全部消去してまた新たに30分間分をコピーする。この繰り返しです。目的はこのD列とE列のデーターでリアルタイムのグラフにして観測したいと思っています。こんなことがVBAを使って出来るのでしょうか。また、実はこのデーターは15桁ありその中の9桁目から5桁目までの5桁だけコピーしたいのです。私には敷居が高すぎてとても解決できません。どうかよろしくお願いします。この記録されるエクセルにはVBAとかの記録は特に無いようです。

  • 文字列の途中の空白を除く、また、A列の桁数に応じてB列に異なる値を記入する方法

     初心者です。エクセル2000を使います。年は若くないです。  次のことで困っています。データが多いため、ひとつひとつを手で訂正できないのです。 1.セル内の文字列に含まれる空白(スペース)を除く方法   例えば、 東 いろは→→東いろは   空白を置換して除こうとしましたがうまくいきませんでした 2.A列の数字の桁数に応じて、B列に異なる数字を入れる方法。以前に教えていただいた方法+α が必要なのです。   A列の数字が 4桁 なら B列に 01を入力   A列の数字が 6桁 なら B列に 60を入力   A列の数字が 7桁 なら B列に 06を入力   A列の数字が 8桁 なら B列にA列の数字の上位2桁を入力 したいのです。前回次のような数式を教えてえていただきました。  =IF(LEN(A1)=4,"01",IF(LEN(A1)=6,"60",IF(LEN(A1)=7,"06",""))) 8桁のときの数式の組み立て(条件判断、表示の仕方)が分からず、困っています。教えて下さい。

専門家に質問してみよう