
Excelの関数について教えてください。
○から始まる場合は□、●から始まる場合は■、の複数の条件の計算式が知りたいです。
A列 B列
1234
2456
1235
1523
2452
2525
2254
1358
B列に
1から始まるものはA
2から始まるものはB
が入るような計算式を作りたいです。
=IF(COUNTIF(A1,”1*”),”A”),IF(COUNTIF(A1,”2*”),”B”)
で作成していますがエラーになってしまいます。
よろしくお願いします。
A 回答 (13件中1~10件)
- 最新から表示
- 回答順に表示
No.13
- 回答日時:
No.12です。
Officeサポートでは、↓
https://support.microsoft.com/ja-jp/office/mid-% …
MID関数の第2引数(開始位置)、第3引数(文字数)は数値と書いてあるのですが、実際には「文字」でもOKのようです。
つまり、前回回答の数式
=MID("ABCDABCDA",VALUE(LEFT(A1,1)),1)
の中のVALUE関数は文字を数値にするためのものですが、文字のままでもよいということになり、
=MID("ABCDABCDA",LEFT(A1,1),1)
としても機能するようです。
また、A列の頭の数値が4種類しかない場合、前回回答で「無い場合、空白でOK」と書きましたが、これは、いままでの回答者さんの例(1~4のみの場合)を記したものです。
1~9のうち欠番の数字があるなら、その部分には、「半角スペース」または「全角スペース」を入れるのが好ましい対応だと思います。
ご参考まで。
No.12
- 回答日時:
考え方も含めて、解決方法について説明したいと思います。
まず、前提条件について確認したいと思います。前提条件は以下のとおりです。
(1)A列には9桁の数字が入力されている。
(2)A列の数字の書式は「文字列」なのか「数値」なのかは不明。
(3)A列の9桁の数字の頭の数字を判別し、B列にそれに対応する文字を表示したい。
(4)A列の9桁の数字の頭の数字の判別は4種類ある。
(5)(4)の4種類は1がA、2がBまでは決定しているがあとは不明
(6)A列の頭の数字が、例えば「1~4」のように4種類しかないのか、1~9まであり、それをルール付けして4種類に分けるのか不明。
というわけで、少なくとも不明となっている(2)(5)(6)の前提条件を決定しないといけません。
まず、(2)の問題は数値でも文字列でも対応可能な数式を考えます。
次に、「A列に9桁の数字がある」と言った場合、頭の数字は「1~9」の9種類あるとするのが常識的だと思いますので、(6)は「1~9」を4種類に分けることにします。
さらに、(5)の3以降の対応文字を決める必要があります。
例えば、別シートのA1~A9に1、2、3、・・・、8、9と数字を入れ、B1~B9にその数字に対応する文字A、B、・・・など4種類の文字を入れて対応表を作成します。(添付画像①)
仮にB1~B9が「A,B,C,D,A,B,C,D,A」になるとすれば、No.11さんが回答された数式を若干修正して、
B1には
=MID("ABCDABCDA",VALUE(LEFT(A1,1)),1)
または
=MID("ABCDABCDA",INT(VALUE(A1)/10^8),1)
という数式を記述すればよいことになります。(添付画像②)
ただし、これはあくまでも「例」なので、"ABCDABCDA"の部分は状況に応じて変更する必要があります。
もし、A列の頭の数字が「1~4」しかないのであれば、別シートの対応表はB5から下は空白でもOKです。
つまり、その場合はB1に
=MID("ABCD",VALUE(LEFT(A1,1)),1)
となるわけです。
No.11さんの使用されたFIXED関数はA列が数値だった場合でも「文字列」に変換されます。
しかし、他の回答者さんの使用例のように、そもそもLEFT関数は「数値」でも「文字列」でも有効に機能しますので、「文字化」のためにFIXED関数を使うのであれば、必ずしも必要ではないと思います。
余談ですが、別シートに対応表を作ったので、これを利用して、B1に
=VLOOKUP(VALUE(LEFT(A1,1)),別シート!$A$1:$B$9,2,0)
とするのもありかと思います。

No.11
- 回答日時:
A列入っているのが数値でも文字列でも:
=MID("ABCD",VALUE(LEFT(FIXED(A1,0,1),1)),1)
もしB列に表示したいコードが2文字以上の場合もありうるのなら、
=INDEX({"A","B","C","D"},VALUE(LEFT(FIXED(A1,0,1),1)),1)
の方が応用が利く。
No.10
- 回答日時:
桁数に関係なく始まるのが数値で、"1","2","3","4"のどれかなら、
以下のものでも対応できます。
=CHOOSE(LEFT(A1,1),"A","B","C","D")
No.7
- 回答日時:
間違えた。
=IF(INT(A1/100000000)=1,"A",IF(INT(A1/100000000)=2,"B"…
みたいな感じで。
LEFT関数使うなら戻り値は文字列になるので
LEFT(A1,1)="1"
と言う感じにしないとダメだと思いますよ。
No.6
- 回答日時:
こんにちは
ご提示の式は、括弧の対応関係がおかしいので意図した通りには働きません。
でも、直してたとしても結果は得られない可能性が高そうに思います。
想像するところA列の値は「数値」になっていませんか?
ご提示のCOUNTIFで識別できるのは、対象が文字列の場合なので、「
式を修正し、A列の値を文字列として入力し直す」ことをすればうまく動作すると考えられます。
とは言え、目的は最初の一桁目が1か2かを判定したいのでしょうから、素直に
=IF(LEFT(A1,1)="1","A",IF(LEFT(A1,1)="2","B",""))
とでもしておけば宜しいのではないのでしょうか。
No.4
- 回答日時:
LEFT(A1,1)=1
LEFT(A1,1)=2
で判定してみてください。
具体的には、
B1=IF(LEFT(A1,1)=1,"A",IF(LEFT(A1,1)=2,"B","X"))
貴殿の式は、途中で切れており、IF文をなしてはいません。
=IF(),IiF() …×
正しくは、以下の構文になります。
=IF( , ,IF())
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【マクロ】実行時エラー '424':...
-
エクセルのVBAで集計をしたい
-
【マクロ】数式を入力したい。...
-
【マクロ】【配列】3つのシー...
-
【マクロ】元データと同じお客...
-
【マクロ】【相談】Excelブック...
-
他のシートの検索
-
【画像あり】オートフィルター...
-
Office2021のエクセルで米国株...
-
vba テキストボックスとリフト...
-
【マクロ】左のブックと右のブ...
-
エクセルシートの見出しの文字...
-
【関数】3つのセルの中で最新...
-
【マクロ】excelファイルを開く...
-
LibreOffice Clalc(またはエク...
-
エクセルの複雑なシフト表から...
-
空白のはずがSUBTOTAL関数でカ...
-
【関数】=EXACT(a1,b1) a1とb1...
-
【マクロ】【画像あり】❶ブック...
-
5単位で繰り上げしたい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【マクロ】元データと同じお客...
-
エクセルの関数について
-
【画像あり】オートフィルター...
-
エクセルのVBAで集計をしたい
-
エクセルのリストについて
-
【マクロ】数式を入力したい。...
-
【マクロ】【相談】Excelブック...
-
Office2021のエクセルで米国株...
-
【マクロ】実行時エラー '424':...
-
他のシートの検索
-
エクセルの複雑なシフト表から...
-
【マクロ】【配列】3つのシー...
-
vba テキストボックスとリフト...
-
【マクロ】左のブックと右のブ...
-
【マクロ】変数に入れるコード...
-
エクセルシートの見出しの文字...
-
【マクロ】別ファイルへマクロ...
-
【関数】同じ関数なのに、エラ...
-
Amazonでマイクロソフトオフィ...
-
ページが変なふうに切れる
おすすめ情報
補足します。説明不足で申し訳ありません。
実際に作成したい数字は9桁です。
分岐は4つあります。