<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>固定長データ &#8211; biz-tactics</title>
	<atom:link href="https://mashukabu.com/tag/%e5%9b%ba%e5%ae%9a%e9%95%b7%e3%83%87%e3%83%bc%e3%82%bf/feed/" rel="self" type="application/rss+xml" />
	<link>https://mashukabu.com</link>
	<description></description>
	<lastBuildDate>Thu, 19 Mar 2026 15:14:15 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://mashukabu.com/wp-content/uploads/2022/04/cropped-site-icon-32x32.png</url>
	<title>固定長データ &#8211; biz-tactics</title>
	<link>https://mashukabu.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>ExcelのMIDB関数の使い方｜バイト数で文字列の途中を取り出す方法</title>
		<link>https://mashukabu.com/excel-function-howto-use-midb/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-midb/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Tue, 03 Jan 2023 09:00:00 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[Excel初心者]]></category>
		<category><![CDATA[MIDB関数]]></category>
		<category><![CDATA[MID関数]]></category>
		<category><![CDATA[データ整形]]></category>
		<category><![CDATA[バイト数]]></category>
		<category><![CDATA[固定長データ]]></category>
		<category><![CDATA[文字列操作]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=3237</guid>

					<description><![CDATA[ExcelのMIDB関数でバイト数を指定して文字列の途中を取り出す方法を解説。固定長データの処理やシステム連携での実務例を紹介し、MID関数・LEFTB・RIGHTB・LENB関数との違いも比較表で整理しています。]]></description>
										<content:encoded><![CDATA[
<p>「システムから出力したデータを、バイト数で区切って取り出したい」と思ったことはありませんか？ 全角と半角が混在するデータを正確に分割するのは、手作業だとかなり大変ですよね。</p>



<p>位置を間違えると文字化けしたり、余分な文字が混じったりして、思うようにいきません。</p>



<p>そんなときに活躍するのがMIDB関数です。この記事では基本の書き方から固定長データの処理パターンまで、まとめて紹介します。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>MIDB関数はExcel 2007以降のすべてのバージョンで使用できます。</p></blockquote>



<p>この記事は次のような人におすすめ</p>



<ul class="wp-block-list"><li>バイト数を指定して文字列の途中を取り出したい</li><li>固定長データの分割やシステム連携データの処理をしたい</li><li><a href="https://mashukabu.com/excel-function-howto-use-mid/">MID関数</a>との違いを知りたい</li></ul>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-1" checked><label class="toc-title" for="toc-checkbox-1">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">MIDB関数とは？</a></li><li><a href="#toc2" tabindex="0">MIDB関数の書き方（構文と引数）</a><ol><li><a href="#toc3" tabindex="0">基本構文</a></li><li><a href="#toc4" tabindex="0">引数の説明</a></li></ol></li><li><a href="#toc5" tabindex="0">MIDB関数の基本的な使い方</a><ol><li><a href="#toc6" tabindex="0">半角文字だけの文字列から取り出す</a></li><li><a href="#toc7" tabindex="0">全角文字を含む文字列から取り出す</a></li><li><a href="#toc8" tabindex="0">MID関数と結果を比較する</a></li></ol></li><li><a href="#toc9" tabindex="0">MIDB関数の実務活用パターン</a><ol><li><a href="#toc10" tabindex="0">パターン1: 固定長データから項目を分割する</a></li><li><a href="#toc11" tabindex="0">パターン2: 半角カナ混在データから特定フィールドを取り出す</a></li><li><a href="#toc12" tabindex="0">パターン3: LENB関数と組み合わせて途中から末尾まで取り出す</a></li><li><a href="#toc13" tabindex="0">パターン4: TRIM関数と組み合わせてスペースを除去する</a></li><li><a href="#toc14" tabindex="0">パターン5: VALUE関数と組み合わせて数値に変換する</a></li></ol></li><li><a href="#toc15" tabindex="0">よくあるエラーと対処法</a></li><li><a href="#toc16" tabindex="0">似た関数との違い・使い分け</a><ol><li><a href="#toc17" tabindex="0">MIDB関数とMID関数の違い</a></li><li><a href="#toc18" tabindex="0">バイト系関数ファミリーの使い分け</a></li><li><a href="#toc19" tabindex="0">文字列操作関数との組み合わせ</a></li></ol></li><li><a href="#toc20" tabindex="0">まとめ</a><ol><li><a href="#toc21" tabindex="0">この記事で紹介した関数・関連記事</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">MIDB関数とは？</span></h2>



<p>MIDB関数は、文字列の指定した位置から指定した<strong>バイト数</strong>分の文字を取り出す関数です。</p>



<p>読み方は「ミッド・ビー関数」です。MID関数の「B」はByte（バイト）を意味しています。文字列の中間部分をバイト単位で取り出すイメージです。</p>



<p><a href="https://mashukabu.com/excel-function-howto-use-mid/">MID関数</a>が<strong>文字数</strong>で数えるのに対して、MIDB関数は<strong>バイト数</strong>で数えるのが最大の違いです。全角文字は2バイト、半角文字は1バイトとしてカウントされます。</p>



<p>たとえばセルに「ABC商品」と入っている場合を考えます。4バイト目から4バイトを取り出すと「C商」が得られます。半角の「C」が1バイト、全角の「商」が2バイトです。4バイト指定なので「商」の次のバイトまで含まれます（後述する端数処理を参照）。</p>



<p>固定長データの処理やシステム連携データの分割など、バイト単位でデータを扱う場面で力を発揮します。</p>



<h2 class="wp-block-heading"><span id="toc2">MIDB関数の書き方（構文と引数）</span></h2>



<h3 class="wp-block-heading"><span id="toc3">基本構文</span></h3>



<pre class="wp-block-code"><code>=MIDB(文字列, 開始位置, バイト数)</code></pre>



<h3 class="wp-block-heading"><span id="toc4">引数の説明</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/省略可</th><th>説明</th></tr></thead><tbody><tr><td>文字列</td><td>必須</td><td>取り出し元の文字列またはセル参照</td></tr><tr><td>開始位置</td><td>必須</td><td>取り出しを始めるバイト位置（先頭が1）</td></tr><tr><td>バイト数</td><td>必須</td><td>取り出すバイト数</td></tr></tbody></table></figure>



<p>3つの引数はすべて必須です。省略するとエラーになります。</p>



<p><strong>開始位置のカウント方法</strong></p>



<p>開始位置はバイト単位で指定します。先頭の文字が「1」です。全角文字は2バイト分を占めるため、たとえば「東京都」の「京」の開始位置は3バイト目です。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>開始位置が文字列の総バイト数を超えると、空文字（&#8221;&#8221;）が返ります。エラーにはなりません。</p></blockquote>



<p><strong>バイト数のポイント</strong></p>



<p>バイト数に指定した値が残りのバイト数より多い場合、末尾までの文字がそのまま返ります。エラーにはなりません。</p>



<p><strong>全角文字の途中（端数）を指定した場合</strong></p>



<p>全角文字は2バイトです。開始位置やバイト数が全角文字の途中にあたる場合、Excelは自動的にその文字全体を含めるように調整します。たとえば「東京都」に対して2バイト目から取り出すと、「東」の2バイト目からになりますが、結果は「東」全体が含まれます。</p>



<h2 class="wp-block-heading"><span id="toc5">MIDB関数の基本的な使い方</span></h2>



<h3 class="wp-block-heading"><span id="toc6">半角文字だけの文字列から取り出す</span></h3>



<pre class="wp-block-code"><code>=MIDB(&quot;ABCDE&quot;, 2, 3)</code></pre>



<p>結果: <strong>BCD</strong></p>



<p>半角文字だけの場合は、MID関数と同じ結果になります。1文字=1バイトなので指定方法も同じです。</p>



<h3 class="wp-block-heading"><span id="toc7">全角文字を含む文字列から取り出す</span></h3>



<p>A1セルに「ABC商品コード」が入っている場合を考えます。</p>



<pre class="wp-block-code"><code>=MIDB(A1, 4, 4)</code></pre>



<p>結果: <strong>商品</strong></p>



<p>4バイト目は全角「商」の先頭です。4バイト分なので、全角2文字（4バイト）の「商品」が得られます。</p>



<h3 class="wp-block-heading"><span id="toc8">MID関数と結果を比較する</span></h3>



<p>「ましゅかぶろぐ」から「ぶろぐ」を取り出す場合を比べます。</p>



<pre class="wp-block-code"><code>=MID(&quot;ましゅかぶろぐ&quot;, 5, 3)</code></pre>



<pre class="wp-block-code"><code>=MIDB(&quot;ましゅかぶろぐ&quot;, 9, 6)</code></pre>



<p>どちらも結果は「ぶろぐ」です。MID関数は5文字目から3文字、MIDB関数は9バイト目から6バイトを指定しています。全角文字だけの文字列では、MIDB関数の開始位置とバイト数はMID関数の2倍になります。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>全角と半角が混在しないデータなら<a href="https://mashukabu.com/excel-function-howto-use-mid/">MID関数</a>のほうがシンプルです。MIDB関数は「バイト数で区切る必要がある場面」に限定して使うのがおすすめです。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc9">MIDB関数の実務活用パターン</span></h2>



<h3 class="wp-block-heading"><span id="toc10">パターン1: 固定長データから項目を分割する</span></h3>



<p>基幹システムから出力された固定長テキストデータを分割する場面です。1行が「社員番号(半角6バイト)+氏名(全角10バイト)+部署(全角8バイト)」の構造になっているとします。</p>



<p>A列にデータ「A12345田中太郎　　営業一部　」が入っている場合を考えます。</p>



<p>社員番号を取り出します。</p>



<pre class="wp-block-code"><code>=MIDB(A2, 1, 6)</code></pre>



<p>結果: <strong>A12345</strong></p>



<p>氏名を取り出します。</p>



<pre class="wp-block-code"><code>=MIDB(A2, 7, 10)</code></pre>



<p>結果: <strong>田中太郎　　</strong>（末尾にスペースが含まれる場合は<a href="https://mashukabu.com/excel-function-howto-use-trim/">TRIM関数</a>で除去）</p>



<p>部署を取り出します。</p>



<pre class="wp-block-code"><code>=MIDB(A2, 17, 8)</code></pre>



<p>結果: <strong>営業一部　</strong></p>



<p>このように、固定長データの仕様書にあるバイト位置をそのまま引数に指定できます。</p>



<h3 class="wp-block-heading"><span id="toc11">パターン2: 半角カナ混在データから特定フィールドを取り出す</span></h3>



<p>銀行振込データなどで半角カタカナが使われているケースです。A列に「ﾀﾅｶ ﾀﾛｳ  0012345」のようなデータがあるとします。口座名義が半角カナ12バイト、口座番号が半角7バイトの構造です。</p>



<p>口座番号を取り出します。</p>



<pre class="wp-block-code"><code>=MIDB(A2, 13, 7)</code></pre>



<p>結果: <strong>0012345</strong></p>



<p>半角カタカナは1バイトとしてカウントされるため、バイト位置の計算が直感的です。</p>



<h3 class="wp-block-heading"><span id="toc12">パターン3: LENB関数と組み合わせて途中から末尾まで取り出す</span></h3>



<p>固定長データの先頭部分（ヘッダー）を除いて、残り全部を取り出したい場合です。A列にデータが入っているとします。</p>



<p>先頭10バイトを飛ばして残りを取り出します。</p>



<pre class="wp-block-code"><code>=MIDB(A2, 11, LENB(A2))</code></pre>



<p>LENB関数で全体のバイト数を指定すると、11バイト目から末尾までを取り出せます。バイト数が実際の残りより多くてもエラーにはなりません。</p>



<h3 class="wp-block-heading"><span id="toc13">パターン4: TRIM関数と組み合わせてスペースを除去する</span></h3>



<p>固定長データでは項目の末尾に空白が詰められていることが多いです。取り出した後に<a href="https://mashukabu.com/excel-function-howto-use-trim/">TRIM関数</a>で整形します。</p>



<pre class="wp-block-code"><code>=TRIM(MIDB(A2, 7, 10))</code></pre>



<p>MIDB関数で取り出した結果の前後のスペースを除去できます。固定長データの処理では、MIDB + TRIMの組み合わせが定番です。</p>



<h3 class="wp-block-heading"><span id="toc14">パターン5: VALUE関数と組み合わせて数値に変換する</span></h3>



<p>固定長データから取り出した数字を計算に使いたい場合です。MIDB関数の結果は文字列なので、<a href="https://mashukabu.com/excel-function-howto-use-value/">VALUE関数</a>で数値に変換します。</p>



<pre class="wp-block-code"><code>=VALUE(MIDB(A2, 20, 8))</code></pre>



<p>金額フィールド（20バイト目から8バイト）を数値として取り出せます。</p>



<h2 class="wp-block-heading"><span id="toc15">よくあるエラーと対処法</span></h2>



<figure class="wp-block-table"><table><thead><tr><th>症状</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td>#VALUE!</td><td>開始位置に0以下の値を指定した</td><td>開始位置は1以上を指定する</td></tr><tr><td>#VALUE!</td><td>バイト数にマイナスの値を指定した</td><td>バイト数は0以上を指定する</td></tr><tr><td>空文字が返る</td><td>開始位置が文字列の総バイト数を超えている</td><td>開始位置を確認する。LENB関数で総バイト数をチェック</td></tr><tr><td>文字化けのような結果</td><td>全角文字の途中のバイトを指定した</td><td>全角文字は2バイト単位で指定する。開始位置・バイト数を偶数で調整</td></tr><tr><td>数値にならない</td><td>MIDB関数の結果は常に文字列</td><td><a href="https://mashukabu.com/excel-function-howto-use-value/">VALUE関数</a>で数値に変換する: <code>=VALUE(MIDB(A2,20,8))</code></td></tr><tr><td>#VALUE!</td><td>引数が不足している</td><td>3つの引数（文字列、開始位置、バイト数）をすべて指定しているか確認</td></tr></tbody></table></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>MIDB関数の結果は常に<strong>文字列</strong>です。数字を取り出した場合でも文字列として返ります。合計や比較に使うときは <code>=VALUE(MIDB(...))</code> で数値に変換してください。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc16">似た関数との違い・使い分け</span></h2>



<h3 class="wp-block-heading"><span id="toc17">MIDB関数とMID関数の違い</span></h3>



<p>MIDB関数は<strong>バイト数</strong>でカウントし、<a href="https://mashukabu.com/excel-function-howto-use-mid/">MID関数</a>は<strong>文字数</strong>でカウントします。</p>



<figure class="wp-block-table"><table><thead><tr><th>入力値</th><th>MID関数（文字数）</th><th>MIDB関数（バイト数）</th></tr></thead><tbody><tr><td>全角文字「あ」</td><td>1文字</td><td>2バイト</td></tr><tr><td>半角文字「A」</td><td>1文字</td><td>1バイト</td></tr><tr><td>半角カタカナ「ア」</td><td>1文字</td><td>1バイト</td></tr><tr><td>全角スペース「　」</td><td>1文字</td><td>2バイト</td></tr><tr><td>半角スペース「 」</td><td>1文字</td><td>1バイト</td></tr></tbody></table></figure>



<p>同じデータから同じ部分を取り出す場合でも、指定する数値が変わります。</p>



<pre class="wp-block-code"><code>=MID(&quot;ABC商品&quot;, 4, 2)</code></pre>



<p>結果: <strong>商品</strong>（4文字目から2文字）</p>



<pre class="wp-block-code"><code>=MIDB(&quot;ABC商品&quot;, 4, 4)</code></pre>



<p>結果: <strong>商品</strong>（4バイト目から4バイト）</p>



<p>通常はMID関数を使えば十分です。MIDB関数は以下の場面に限定して使うのがおすすめです。</p>



<ul class="wp-block-list"><li>固定長データの仕様書にバイト数で桁数が定義されている</li><li>システム連携で半角・全角混在データをバイト単位で分割する</li><li>銀行振込データなど半角カナ混在のデータを処理する</li></ul>



<h3 class="wp-block-heading"><span id="toc18">バイト系関数ファミリーの使い分け</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>文字数版</th><th>バイト数版</th><th>用途</th></tr></thead><tbody><tr><td>先頭から取り出す</td><td>LEFT</td><td>LEFTB</td><td>先頭Nバイトを取り出す</td></tr><tr><td>末尾から取り出す</td><td>RIGHT</td><td>RIGHTB</td><td>末尾Nバイトを取り出す</td></tr><tr><td>途中から取り出す</td><td><a href="https://mashukabu.com/excel-function-howto-use-mid/">MID</a></td><td>MIDB</td><td>任意の位置からバイト数で取り出す</td></tr><tr><td>文字列の長さ</td><td><a href="https://mashukabu.com/excel-function-howto-use-len/">LEN</a></td><td>LENB</td><td>バイト数での文字列長を取得する</td></tr></tbody></table></figure>



<p>迷ったときは、仕様書に「バイト」と書いてあればB付き関数、「文字」と書いてあればB無し関数を使うと覚えておけばOKです。</p>



<h3 class="wp-block-heading"><span id="toc19">文字列操作関数との組み合わせ</span></h3>



<p>MIDB関数は他の文字列関数と組み合わせることで活用の幅が広がります。</p>



<figure class="wp-block-table"><table><thead><tr><th>組み合わせ</th><th>用途</th><th>例</th></tr></thead><tbody><tr><td>MIDB + LENB</td><td>途中から末尾まで取り出す</td><td>バイト数にLENB(A2)を指定</td></tr><tr><td>MIDB + <a href="https://mashukabu.com/excel-function-howto-use-trim/">TRIM</a></td><td>固定長データの末尾スペース除去</td><td>=TRIM(MIDB(A2,7,10))</td></tr><tr><td>MIDB + <a href="https://mashukabu.com/excel-function-howto-use-value/">VALUE</a></td><td>取り出した数字を数値に変換</td><td>=VALUE(MIDB(A2,20,8))</td></tr><tr><td>MIDB + <a href="https://mashukabu.com/excel-function-howto-use-substitute/">SUBSTITUTE</a></td><td>不要な文字を除去してから処理</td><td>パディング文字の除去</td></tr></tbody></table></figure>



<p>文字列の「バイト数を測る」のがLENB関数、「途中をバイト単位で取り出す」のがMIDB関数です。固定長データの処理ではこの2つをセットで使うのが基本パターンです。</p>



<h2 class="wp-block-heading"><span id="toc20">まとめ</span></h2>



<p>MIDB関数は文字列の途中からバイト数を指定して文字を取り出す関数です。</p>



<ul class="wp-block-list"><li>構文は <code>=MIDB(文字列, 開始位置, バイト数)</code> の3つの必須引数</li><li>全角文字は2バイト、半角文字は1バイトとしてカウント</li><li>固定長データの仕様書にあるバイト位置をそのまま引数に指定できる</li><li>結果は常に文字列。数値として使うときはVALUE関数で変換</li><li>全角・半角が混在しないデータなら<a href="https://mashukabu.com/excel-function-howto-use-mid/">MID関数</a>のほうがシンプル</li></ul>



<p>固定長データの分割やシステム連携データの処理で、ぜひ活用してみてください。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc21">この記事で紹介した関数・関連記事</span></h3>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-function-howto-use-mid/">MID関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-len/">LEN関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-substitute/">SUBSTITUTE関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-trim/">TRIM関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-value/">VALUE関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-asc/">ASC関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-concat/">CONCAT関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-text/">TEXT関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-if/">IF関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-iferror/">IFERROR関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function/">Excel関数の基本</a></li><li><a href="https://mashukabu.com/excel-function-list-by-function/">Excel関数一覧</a></li><li><a href="https://mashukabu.com/excel-error-value-list/">Excelエラー値一覧</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-midb/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
