<?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/%e6%90%8d%e7%9b%8a%e5%88%86%e6%9e%90/feed/" rel="self" type="application/rss+xml" />
	<link>https://mashukabu.com</link>
	<description></description>
	<lastBuildDate>Thu, 04 Jun 2026 14:38:05 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.2</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>スプレッドシートのSIGN関数で正負判定｜損益分類・矢印表示・ABS関数との組み合わせまで</title>
		<link>https://mashukabu.com/spreadsheet-sign-function/</link>
					<comments>https://mashukabu.com/spreadsheet-sign-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sat, 21 Mar 2026 11:30:32 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[ABS関数]]></category>
		<category><![CDATA[ARRAYFORMULA]]></category>
		<category><![CDATA[CHOOSE関数]]></category>
		<category><![CDATA[IF関数]]></category>
		<category><![CDATA[SIGN関数]]></category>
		<category><![CDATA[スプレッドシート]]></category>
		<category><![CDATA[損益分析]]></category>
		<category><![CDATA[数学関数]]></category>
		<category><![CDATA[正負判定]]></category>
		<category><![CDATA[符号判定]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4763</guid>

					<description><![CDATA[スプレッドシートのSIGN関数で数値の符号（正・負・ゼロ）を判定する方法を徹底解説。基本構文から損益の自動分類・前月比の矢印表示・ABS関数を組み合わせた符号保持の丸め処理・ARRAYFORMULAによる一括判定まで、実務でそのまま使える6パターンを早見表とサンプル付きで紹介します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">売上の増減や在庫の過不足を一覧表で管理していると、「この数値はプラスなのかマイナスなのか」をパッと見分けたい場面ってありますよね。たとえば月次の損益表で黒字・赤字を自動分類したいときや、前月比に「▲」「▼」の矢印を付けたいときです。</p>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-if-function/">IF関数</a>で条件分岐を書く方法もありますが、正・負・ゼロの3パターンを判定するにはIFのネストが必要です。式が長くなって、後から見たときに読みづらいですよね。</p>



<p class="wp-block-paragraph">そんなときに便利なのが <strong>SIGN関数</strong> です。数値を1つ渡すだけで、正なら「1」、負なら「-1」、ゼロなら「0」を返してくれます。1, -1, 0 という数値が返るのがポイントで、<a href="https://mashukabu.com/spreadsheet-choose-function/">CHOOSE関数</a>や<a href="https://mashukabu.com/spreadsheet-abs-function/">ABS関数</a>と組み合わせると、IF関数では書きにくい処理がスッキリ書けます。</p>



<p class="wp-block-paragraph">この記事ではSIGN関数の基本構文から、損益の自動分類・前月比の矢印表示・ABS関数を組み合わせた符号保持の丸め処理・<a href="https://mashukabu.com/spreadsheet-arrayformula-function/">ARRAYFORMULA</a>による一括判定まで、実務でそのまま使える6パターンを早見表付きで紹介します。エラー対処やExcelとの違いも整理しますよ。</p>




  <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">スプレッドシートのSIGN関数とは？符号判定の基本</a><ol><li><a href="#toc2" tabindex="0">SIGN関数で何ができる？</a></li></ol></li><li><a href="#toc3" tabindex="0">SIGN関数の構文と引数</a><ol><li><a href="#toc4" tabindex="0">基本構文</a></li><li><a href="#toc5" tabindex="0">引数の説明</a></li><li><a href="#toc6" tabindex="0">戻り値の早見表</a></li></ol></li><li><a href="#toc7" tabindex="0">SIGN関数の基本的な使い方</a><ol><li><a href="#toc8" tabindex="0">数値を直接渡す</a></li><li><a href="#toc9" tabindex="0">セル参照を使う</a></li><li><a href="#toc10" tabindex="0">数式の結果に対して使う</a></li><li><a href="#toc11" tabindex="0">基本パターンの早見表</a></li></ol></li><li><a href="#toc12" tabindex="0">実務でのSIGN関数活用パターン6選</a><ol><li><a href="#toc13" tabindex="0">パターン1: 損益を「黒字／赤字／収支ゼロ」に自動分類する</a></li><li><a href="#toc14" tabindex="0">パターン2: 前月比の増減方向を矢印で表示する（CHOOSEとの組み合わせ）</a></li><li><a href="#toc15" tabindex="0">パターン3: 前月比に増減ラベルを付ける（CHOOSEとの組み合わせ・文字版）</a></li><li><a href="#toc16" tabindex="0">パターン4: 符号別に件数や合計を集計する（SUMPRODUCTとの組み合わせ）</a></li><li><a href="#toc17" tabindex="0">パターン5: 符号を保持したまま端数を丸める（ABSとの組み合わせ）</a></li><li><a href="#toc18" tabindex="0">パターン6: ARRAYFORMULAで列全体を一括判定する</a></li></ol></li><li><a href="#toc19" tabindex="0">SIGN関数とABS関数は「方向」と「大きさ」のペア</a><ol><li><a href="#toc20" tabindex="0">符号を保持したまま上限を設定する</a></li><li><a href="#toc21" tabindex="0">符号を反転させる（マイナス符号を付ける）</a></li></ol></li><li><a href="#toc22" tabindex="0">SIGN関数のよくあるエラーと対処法</a><ol><li><a href="#toc23" tabindex="0">文字列が混在しているとき（#VALUE!対策）</a></li><li><a href="#toc24" tabindex="0">空白セルと「本当の0」を区別したいとき</a></li></ol></li><li><a href="#toc25" tabindex="0">SIGN関数と似た関数の使い分け</a><ol><li><a href="#toc26" tabindex="0">SIGN関数とIF関数の使い分け</a></li><li><a href="#toc27" tabindex="0">SIGN関数とABS関数の使い分け</a></li></ol></li><li><a href="#toc28" tabindex="0">SIGN関数のよくある質問（FAQ）</a></li><li><a href="#toc29" tabindex="0">ExcelのSIGN関数との違い</a></li><li><a href="#toc30" tabindex="0">まとめ：SIGN関数で符号判定をスッキリ書こう</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">スプレッドシートのSIGN関数とは？符号判定の基本</span></h2>



<p class="wp-block-paragraph">SIGN関数（読み方: サイン関数）は、<strong>数値の符号（正・負・ゼロ）を判定する関数</strong>です。名前は英語の「sign（符号・記号）」がそのまま由来になっています。</p>



<p class="wp-block-paragraph">引数に数値を1つ渡すと、次の3つのいずれかが返ります。</p>



<ul class="wp-block-list"><li>正の数 → <strong>1</strong></li><li>負の数 → <strong>-1</strong></li><li>ゼロ → <strong>0</strong></li></ul>



<p class="wp-block-paragraph">数値の「大きさ」ではなく「方向」だけを取り出す関数、と覚えるとイメージしやすいです。たとえば <code>=SIGN(1000)</code> も <code>=SIGN(0.001)</code> もどちらも結果は「1」で、値の大小は関係ありません。</p>



<h3 class="wp-block-heading"><span id="toc2">SIGN関数で何ができる？</span></h3>



<p class="wp-block-paragraph">SIGN関数が活躍するのは、おもに次のような場面です。</p>



<ul class="wp-block-list"><li>月次の損益を「黒字」「赤字」「収支ゼロ」に自動分類したいとき</li><li>前月比に「▲」「▼」の矢印記号を付けて視覚化したいとき</li><li>売上の増減方向だけを集計（プラスの件数・マイナスの件数）したいとき</li><li><a href="https://mashukabu.com/spreadsheet-abs-function/">ABS関数</a>と組み合わせて「大きさだけ丸めて、符号は元のまま」という処理をしたいとき</li><li><a href="https://mashukabu.com/spreadsheet-if-function/">IF関数</a>のネストを書きたくないとき</li></ul>



<p class="wp-block-paragraph">NOTE: SIGN関数はGoogleスプレッドシートの全バージョンで使えます。Excelとの互換性も完全なので、ファイルのやり取りで結果がずれる心配はありません。Excel版の詳しい解説は <a href="https://mashukabu.com/excel-function-howto-use-sign/">ExcelのSIGN関数の使い方</a> もあわせてご覧ください。</p>



<h2 class="wp-block-heading"><span id="toc3">SIGN関数の構文と引数</span></h2>



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



<pre class="wp-block-code"><code>=SIGN(値)</code></pre>



<p class="wp-block-paragraph">カッコの中に「符号を判定したい数値」を1つ入れるだけです。引数は1つだけなのでとてもシンプルですね。</p>



<h3 class="wp-block-heading"><span id="toc5">引数の説明</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></tbody></table></figure>



<p class="wp-block-paragraph">結果は必ず「1」「-1」「0」のいずれかになります。それ以外の値は返りません。</p>



<h3 class="wp-block-heading"><span id="toc6">戻り値の早見表</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>戻り値</th><th>意味</th></tr></thead><tbody><tr><td>正の整数（例: 100）</td><td>1</td><td>正の数</td></tr><tr><td>正の小数（例: 0.001）</td><td>1</td><td>正の数</td></tr><tr><td>負の整数（例: -50）</td><td>-1</td><td>負の数</td></tr><tr><td>負の小数（例: -0.5）</td><td>-1</td><td>負の数</td></tr><tr><td>ゼロ（0）</td><td>0</td><td>ゼロ</td></tr><tr><td>空白セル</td><td>0</td><td>空白は数値の0として扱われる</td></tr><tr><td>文字列（例: &#8220;abc&#8221;）</td><td>#VALUE!</td><td>エラー</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">「正の数はすべて1、負の数はすべて-1」というのが基本ルールです。値の大小は結果に影響しません。</p>



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



<h3 class="wp-block-heading"><span id="toc8">数値を直接渡す</span></h3>



<p class="wp-block-paragraph">リテラル（数値そのもの）を渡すパターンです。動作確認や入門用に使います。</p>



<pre class="wp-block-code"><code>=SIGN(10)      → 1
=SIGN(-10)     → -1
=SIGN(0)       → 0
=SIGN(3.14)    → 1
=SIGN(-0.001)  → -1</code></pre>



<p class="wp-block-paragraph">正の数はすべて「1」、負の数はすべて「-1」、ゼロは「0」が返るのがわかりますね。</p>



<h3 class="wp-block-heading"><span id="toc9">セル参照を使う</span></h3>



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/03/spreadsheet-sumif-function_01_data_sample-table.png" alt="01 data sample table" /></figure>



<p class="wp-block-paragraph">実務ではセル参照を使うケースがほとんどです。A2セルに数値が入っているとします。</p>



<pre class="wp-block-code"><code>=SIGN(A2)</code></pre>



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/06/02_formula_sign-basic.png" alt="02 formula sign basic" /></figure>



<p class="wp-block-paragraph">セル参照にしておけば、A2の値が変わっても自動で判定結果が更新されます。一覧表でフィルダウン（下方向にコピー）すれば、列全体に対して符号判定ができますよ。</p>



<h3 class="wp-block-heading"><span id="toc10">数式の結果に対して使う</span></h3>



<p class="wp-block-paragraph">引数には数式を直接書くこともできます。たとえば「B2とC2の差の符号」を判定するパターンです。</p>



<pre class="wp-block-code"><code>=SIGN(B2-C2)</code></pre>



<p class="wp-block-paragraph">B2が「80」、C2が「100」なら、B2-C2は「-20」になります。SIGN関数で「-1」が返ります。前月比や差分の方向判定でよく使うパターンです。</p>



<h3 class="wp-block-heading"><span id="toc11">基本パターンの早見表</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>数式</th><th>結果</th><th>意味</th></tr></thead><tbody><tr><td><code>=SIGN(100)</code></td><td>1</td><td>正の数</td></tr><tr><td><code>=SIGN(-50)</code></td><td>-1</td><td>負の数</td></tr><tr><td><code>=SIGN(0)</code></td><td>0</td><td>ゼロ</td></tr><tr><td><code>=SIGN(A2)</code></td><td>1, -1, 0 のいずれか</td><td>セル参照</td></tr><tr><td><code>=SIGN(B2-C2)</code></td><td>1, -1, 0 のいずれか</td><td>差分の符号</td></tr><tr><td><code>=SIGN(SUM(A2:A10))</code></td><td>1, -1, 0 のいずれか</td><td>合計の符号</td></tr></tbody></table></figure>



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/06/03_result_sign-basic.png" alt="03 result sign basic" /></figure>



<h2 class="wp-block-heading"><span id="toc12">実務でのSIGN関数活用パターン6選</span></h2>



<p class="wp-block-paragraph">ここからは、実務でよく使うSIGN関数の活用パターンを紹介します。「ラベル表示」「矢印表示」「条件付き集計」「符号保持の数値加工」など、IF関数だけでは書きにくい処理がSIGN関数を使うとスッキリ書けますよ。</p>



<h3 class="wp-block-heading"><span id="toc13">パターン1: 損益を「黒字／赤字／収支ゼロ」に自動分類する</span></h3>



<p class="wp-block-paragraph">月ごとの損益額を3パターンのラベルに自動分類するパターンです。B2セルに損益額が入っているとします。</p>



<pre class="wp-block-code"><code>=IF(SIGN(B2)=1, &quot;黒字&quot;, IF(SIGN(B2)=-1, &quot;赤字&quot;, &quot;収支ゼロ&quot;))</code></pre>



<p class="wp-block-paragraph">SIGN関数の結果（1, -1, 0）を<a href="https://mashukabu.com/spreadsheet-if-function/">IF関数</a>で判定して、ラベルを付けています。</p>



<p class="wp-block-paragraph">TIP: IF関数だけで書くと <code>=IF(B2>0, "黒字", IF(B2<0, "赤字", "収支ゼロ"))</code> です。この場合はIF関数のほうがシンプルですね。SIGN関数の真価は、次に紹介するCHOOSE関数やABS関数との組み合わせ、数値計算に符号を活用する場面で発揮されます。</p>



<h3 class="wp-block-heading"><span id="toc14">パターン2: 前月比の増減方向を矢印で表示する（CHOOSEとの組み合わせ）</span></h3>



<p class="wp-block-paragraph">売上の前月比をもとに「▲（増加）」「−（変動なし）」「▼（減少）」の矢印を表示するパターンです。ダッシュボードや報告資料でよく使います。</p>



<pre class="wp-block-code"><code>=CHOOSE(SIGN(C2-B2)+2, &quot;▼&quot;, &quot;−&quot;, &quot;▲&quot;)</code></pre>



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/06/04_result_sign-choose-arrow.png" alt="04 result sign choose arrow" /></figure>



<p class="wp-block-paragraph">仕組みはこうです。</p>



<ol class="wp-block-list"><li><code>C2-B2</code> で前月比を計算</li><li><code>SIGN(...)</code> で -1, 0, 1 のいずれかに変換</li><li><code>+2</code> を足して 1, 2, 3 に変換</li><li><a href="https://mashukabu.com/spreadsheet-choose-function/">CHOOSE関数</a>で1番目="▼"、2番目="−"、3番目="▲"を取り出す</li></ol>



<p class="wp-block-paragraph">CHOOSE関数は引数の番号（1から始まる整数）に対応する値を返す関数です。SIGN関数で必ず -1, 0, 1 が返ることを利用して、3パターンの分岐を1行でスッキリ書けます。IF関数のネストよりも読みやすいのがポイントです。</p>



<h3 class="wp-block-heading"><span id="toc15">パターン3: 前月比に増減ラベルを付ける（CHOOSEとの組み合わせ・文字版）</span></h3>



<p class="wp-block-paragraph">矢印ではなく、文字でラベルを付けたい場合も同じパターンが使えます。</p>



<pre class="wp-block-code"><code>=CHOOSE(SIGN(C2-B2)+2, &quot;減少&quot;, &quot;変動なし&quot;, &quot;増加&quot;)</code></pre>



<p class="wp-block-paragraph">CHOOSE関数の引数を文字ラベルに差し替えるだけです。社内資料では文字ラベル、ダッシュボードでは矢印、と使い分けると見やすくなります。</p>



<h3 class="wp-block-heading"><span id="toc16">パターン4: 符号別に件数や合計を集計する（SUMPRODUCTとの組み合わせ）</span></h3>



<p class="wp-block-paragraph">データの中から「プラスの値だけ」「マイナスの値だけ」を集計したいケースです。B2:B10に金額が入っているとします。</p>



<p class="wp-block-paragraph">正の値だけ合計するパターン:</p>



<pre class="wp-block-code"><code>=SUMPRODUCT((SIGN(B2:B10)=1)*B2:B10)</code></pre>



<p class="wp-block-paragraph">負の値だけ合計するパターン:</p>



<pre class="wp-block-code"><code>=SUMPRODUCT((SIGN(B2:B10)=-1)*B2:B10)</code></pre>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-sumproduct-function/">SUMPRODUCT関数</a>で「SIGNの結果が1（または-1）の行だけ」を条件にして掛け合わせ、合計しています。SUMIFよりも柔軟に条件を書けるので、複合条件の集計でも使えるパターンです。</p>



<p class="wp-block-paragraph">件数だけ知りたい場合は、掛け算する値を1にします。</p>



<pre class="wp-block-code"><code>=SUMPRODUCT((SIGN(B2:B10)=1)*1)   → プラスの件数
=SUMPRODUCT((SIGN(B2:B10)=-1)*1)  → マイナスの件数</code></pre>



<h3 class="wp-block-heading"><span id="toc17">パターン5: 符号を保持したまま端数を丸める（ABSとの組み合わせ）</span></h3>



<p class="wp-block-paragraph">金額の端数を丸めつつ、プラス・マイナスの符号はそのまま残したいパターンです。A2に金額が入っているとします。</p>



<pre class="wp-block-code"><code>=SIGN(A2) * ROUNDDOWN(ABS(A2), -2)</code></pre>



<p class="wp-block-paragraph">A2が「-1,234」の場合の動きを追ってみましょう。</p>



<ol class="wp-block-list"><li><code>ABS(A2)</code> で絶対値「1,234」に変換</li><li><a href="https://mashukabu.com/spreadsheet-rounddown-function/">ROUNDDOWN関数</a>で百の位で切り捨てて「1,200」</li><li><code>SIGN(A2)</code> の「-1」を掛けて「-1,200」</li></ol>



<p class="wp-block-paragraph">A2が「1,234」の場合も同じ式で「1,200」になります。符号に関係なく同じ丸め処理が適用されるのがポイントです。普通に <code>=ROUNDDOWN(A2, -2)</code> と書くと、負の数の場合に「ゼロ方向」と「マイナス方向」のどちらに丸めるかで結果がずれることがあります。SIGN×ABSの組み合わせなら、必ず「絶対値が小さくなる方向」に丸まります。</p>



<h3 class="wp-block-heading"><span id="toc18">パターン6: ARRAYFORMULAで列全体を一括判定する</span></h3>



<p class="wp-block-paragraph">スプレッドシート特有の機能、<a href="https://mashukabu.com/spreadsheet-arrayformula-function/">ARRAYFORMULA</a>と組み合わせると、1つの数式で列全体を一括判定できます。</p>



<pre class="wp-block-code"><code>=ARRAYFORMULA(SIGN(B2:B100))</code></pre>



<p class="wp-block-paragraph">この1行で、B2からB100までの符号判定を一気に行えます。フィルダウンする必要がなく、データ行が増減しても自動追従するのがメリットです。</p>



<p class="wp-block-paragraph">矢印表示と組み合わせるなら次のように書きます。</p>



<pre class="wp-block-code"><code>=ARRAYFORMULA(IF(B2:B100=&quot;&quot;, &quot;&quot;, CHOOSE(SIGN(B2:B100)+2, &quot;▼&quot;, &quot;−&quot;, &quot;▲&quot;)))</code></pre>



<p class="wp-block-paragraph"><code>IF(B2:B100="", "", ...)</code> で空白行は空白のまま残し、データがある行だけ矢印を表示しています。これでフォーム回答や追加データにも自動対応するダッシュボードが作れますよ。</p>



<h2 class="wp-block-heading"><span id="toc19">SIGN関数とABS関数は「方向」と「大きさ」のペア</span></h2>



<p class="wp-block-paragraph">SIGN関数とABS関数は、数値を扱う上で対になる関数です。役割を整理しておくと、組み合わせ技が理解しやすくなります。</p>



<ul class="wp-block-list"><li><strong>SIGN関数</strong>: 数値の「方向」（符号）を取り出す → 1, -1, 0</li><li><strong><a href="https://mashukabu.com/spreadsheet-abs-function/">ABS関数</a></strong>: 数値の「大きさ」（絶対値）を取り出す → 常に0以上</li></ul>



<p class="wp-block-paragraph">この2つを掛け合わせると、元の数値を復元できます。</p>



<pre class="wp-block-code"><code>=ABS(-15) * SIGN(-15)   → 15 × (-1) = -15
=ABS(15)  * SIGN(15)    → 15 × 1    = 15
=ABS(0)   * SIGN(0)     → 0  × 0    = 0</code></pre>



<p class="wp-block-paragraph">つまり <code>ABS(x) × SIGN(x) = x</code> という関係が常に成り立ちます。この性質を使うと「大きさだけを加工して、符号は元のまま」という処理がきれいに書けます。</p>



<h3 class="wp-block-heading"><span id="toc20">符号を保持したまま上限を設定する</span></h3>



<p class="wp-block-paragraph">値の絶対値に上限を設けつつ、符号はそのまま残したいパターンです。</p>



<pre class="wp-block-code"><code>=SIGN(A2) * MIN(ABS(A2), 1000)</code></pre>



<p class="wp-block-paragraph">A2が「-1,500」なら、動きはこうです。</p>



<ol class="wp-block-list"><li><code>ABS(A2)</code> で絶対値「1,500」</li><li><a href="https://mashukabu.com/spreadsheet-min-function/">MIN関数</a>で上限1,000に制限して「1,000」</li><li><code>SIGN(A2)</code> の「-1」を掛けて「-1,000」</li></ol>



<p class="wp-block-paragraph">A2が「1,500」なら「1,000」、A2が「-500」なら「-500」（上限を超えていないのでそのまま）になります。ポイント還元の上限処理や、損益のキャップ計算で使えるパターンです。</p>



<h3 class="wp-block-heading"><span id="toc21">符号を反転させる（マイナス符号を付ける）</span></h3>



<p class="wp-block-paragraph">たとえば「常に負の値として扱いたい」場合は、SIGN関数を使わずに <code>-ABS(A2)</code> と書くのが簡単です。逆に「常に正の値として扱いたい」なら <code>ABS(A2)</code> だけでOKです。SIGN関数を使うのは、あくまで「元の符号を保持したい」場合ですね。</p>



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



<p class="wp-block-paragraph">SIGN関数は引数1つのシンプルな関数ですが、エラーが出ることもあります。原因と対処法を整理しておきます。</p>



<figure class="wp-block-table"><table><thead><tr><th>エラー・現象</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td>#VALUE!</td><td>引数に文字列が入っている</td><td>セル参照先が数値かどうか確認する。<a href="https://mashukabu.com/spreadsheet-isnumber-function/">ISNUMBER関数</a>で事前チェック</td></tr><tr><td>#ERROR!</td><td>構文ミス（カッコ忘れ、引数なし等）</td><td>数式の入力内容を見直す</td></tr><tr><td>#N/A</td><td>引数がエラー値（VLOOKUP等のエラー結果）</td><td>元のエラーを先に解決する</td></tr><tr><td>常に0が返る</td><td>空白セルを参照している</td><td>空白セルは0として扱われるため正常動作。未入力と区別したい場合は下記参照</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc23">文字列が混在しているとき（#VALUE!対策）</span></h3>



<p class="wp-block-paragraph">SIGN関数に文字列を渡すと#VALUE!エラーになります。</p>



<pre class="wp-block-code"><code>=SIGN(&quot;abc&quot;)   → #VALUE!
=SIGN(&quot;100&quot;)   → 1（文字列でも数値に変換できれば動く）</code></pre>



<p class="wp-block-paragraph">「100」のように数値として解釈できる文字列はエラーになりません。一方で「abc」のような純粋な文字列はエラーです。セル参照先に文字列が混じる可能性があるときは、<a href="https://mashukabu.com/spreadsheet-isnumber-function/">ISNUMBER関数</a>で事前にチェックすると安全です。</p>



<pre class="wp-block-code"><code>=IF(ISNUMBER(A1), SIGN(A1), &quot;数値を入力してください&quot;)</code></pre>



<p class="wp-block-paragraph">IFERROR関数で囲んでエラーを隠す方法もありますが、原因の特定が遅れるのでおすすめしません。事前チェックのほうが安全ですよ。</p>



<h3 class="wp-block-heading"><span id="toc24">空白セルと「本当の0」を区別したいとき</span></h3>



<p class="wp-block-paragraph">SIGN関数に空白セルを渡すと「0」が返ります。これは空白セルが数値の「0」として扱われるためで、エラーではありません。</p>



<p class="wp-block-paragraph">ただし「データが未入力なのか、本当にゼロなのか」を区別したいケースもあります。その場合はIF関数で事前に空白判定を入れます。</p>



<pre class="wp-block-code"><code>=IF(A1=&quot;&quot;, &quot;未入力&quot;, SIGN(A1))</code></pre>



<p class="wp-block-paragraph">これで未入力のセルには「未入力」、数値が入っているセルには SIGN関数の結果（1, -1, 0）が返ります。</p>



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



<p class="wp-block-paragraph">符号判定や条件分岐に使える関数は他にもあります。SIGN関数とどう使い分けるか整理しておきます。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>動作</th><th>引数</th><th>戻り値</th><th>SIGN関数との違い</th></tr></thead><tbody><tr><td><strong>SIGN</strong></td><td><strong>符号を判定する</strong></td><td><strong>1つ</strong></td><td><strong>1, 0, -1 のいずれか</strong></td><td><strong>本記事の主役</strong></td></tr><tr><td><a href="https://mashukabu.com/spreadsheet-abs-function/">ABS</a></td><td>絶対値を返す</td><td>1つ</td><td>常に0以上の数値</td><td>「大きさ」を取り出す。SIGNの対になる関数</td></tr><tr><td><a href="https://mashukabu.com/spreadsheet-if-function/">IF</a></td><td>条件で分岐する</td><td>3つ</td><td>条件に応じた値</td><td>ラベル表示はIFが読みやすい</td></tr><tr><td><a href="https://mashukabu.com/spreadsheet-choose-function/">CHOOSE</a></td><td>番号で値を選ぶ</td><td>2つ以上</td><td>選ばれた値</td><td>SIGN+2と組み合わせて3パターン分岐</td></tr><tr><td><a href="https://mashukabu.com/spreadsheet-isnumber-function/">ISNUMBER</a></td><td>数値かを判定</td><td>1つ</td><td>TRUE/FALSE</td><td>符号ではなく型をチェック</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc26">SIGN関数とIF関数の使い分け</span></h3>



<p class="wp-block-paragraph">SIGN関数の結果は、IF関数で書くと次のようになります。</p>



<pre class="wp-block-code"><code>=IF(A1&gt;0, 1, IF(A1&lt;0, -1, 0))</code></pre>



<p class="wp-block-paragraph">この式は <code>=SIGN(A1)</code> と完全に同じ結果です。</p>



<p class="wp-block-paragraph">ラベル（「黒字」「赤字」等）を表示したい場合は <strong>IF関数</strong> が読みやすいです。符号の数値（1, -1, 0）をそのまま計算に使いたい、または <strong>CHOOSE関数</strong> と組み合わせて3パターン分岐したい場合は <strong>SIGN関数</strong> がシンプルですよ。</p>



<h3 class="wp-block-heading"><span id="toc27">SIGN関数とABS関数の使い分け</span></h3>



<p class="wp-block-paragraph">ABS関数は「大きさ」、SIGN関数は「方向」を取り出します。</p>



<pre class="wp-block-code"><code>=ABS(-5)   → 5（大きさ）
=SIGN(-5)  → -1（方向）</code></pre>



<p class="wp-block-paragraph">「大きさだけ知りたい」ならABS関数、「方向だけ知りたい」ならSIGN関数です。両方組み合わせれば元の値を復元できる、というのが2つの関数の関係です。</p>



<h2 class="wp-block-heading"><span id="toc28">SIGN関数のよくある質問（FAQ）</span></h2>



<p class="wp-block-paragraph"><strong>Q1. SIGN関数とIF関数、どちらを使えばいい？</strong></p>



<p class="wp-block-paragraph">A. ラベル（「黒字」「赤字」など）を表示したい場合は<a href="https://mashukabu.com/spreadsheet-if-function/">IF関数</a>が読みやすいです。符号の数値（1, -1, 0）を計算に使いたい、または<a href="https://mashukabu.com/spreadsheet-choose-function/">CHOOSE関数</a>で3パターン分岐したい場合はSIGN関数が向いています。</p>



<p class="wp-block-paragraph"><strong>Q2. SIGN関数で空白セルを渡すと何が返る？</strong></p>



<p class="wp-block-paragraph">A. 「0」が返ります。空白セルは数値の0として扱われるためです。未入力と0を区別したい場合は <code>=IF(A1="", "未入力", SIGN(A1))</code> のように事前確認を入れます。</p>



<p class="wp-block-paragraph"><strong>Q3. ABS関数とSIGN関数をかけると元の値に戻る？</strong></p>



<p class="wp-block-paragraph">A. はい、<code>=ABS(A1) * SIGN(A1)</code> は元の値と同じになります。<code>ABS(x) × SIGN(x) = x</code> という関係が常に成り立ちます。この性質を利用して「大きさだけ加工して符号はそのまま」という処理が書けます。</p>



<p class="wp-block-paragraph"><strong>Q4. SIGN関数の結果を矢印（▲▼）に変換するベストな書き方は？</strong></p>



<p class="wp-block-paragraph">A. <code>=CHOOSE(SIGN(A1)+2, "▼", "−", "▲")</code> が一番スッキリ書けます。SIGN関数の結果(-1, 0, 1)に2を足すと(1, 2, 3)になるので、<a href="https://mashukabu.com/spreadsheet-choose-function/">CHOOSE関数</a>の引数番号にちょうど対応します。</p>



<p class="wp-block-paragraph"><strong>Q5. SIGN関数を列全体に一気に適用したい</strong></p>



<p class="wp-block-paragraph">A. <a href="https://mashukabu.com/spreadsheet-arrayformula-function/">ARRAYFORMULA</a>を使います。<code>=ARRAYFORMULA(SIGN(B2:B100))</code> と書けば、フィルダウン不要で範囲全体を一括判定できます。</p>



<p class="wp-block-paragraph"><strong>Q6. 文字列が混じった列でもSIGN関数を使いたい</strong></p>



<p class="wp-block-paragraph">A. <a href="https://mashukabu.com/spreadsheet-isnumber-function/">ISNUMBER関数</a>で事前チェックします。<code>=IF(ISNUMBER(A1), SIGN(A1), "")</code> のように書けば、文字列のセルではエラーを返さず空白を表示できます。</p>



<h2 class="wp-block-heading"><span id="toc29">ExcelのSIGN関数との違い</span></h2>



<p class="wp-block-paragraph">SIGN関数はExcelとGoogleスプレッドシートで<strong>完全に同じ動作</strong>です。引数名の表記が若干違うだけで、機能差はありません。</p>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>Excel</th><th>Googleスプレッドシート</th></tr></thead><tbody><tr><td>構文</td><td><code>=SIGN(数値)</code></td><td><code>=SIGN(値)</code></td></tr><tr><td>動作</td><td>符号を判定する</td><td>符号を判定する</td></tr><tr><td>正の数</td><td>1</td><td>1</td></tr><tr><td>負の数</td><td>-1</td><td>-1</td></tr><tr><td>ゼロ</td><td>0</td><td>0</td></tr><tr><td>空白セル</td><td>0</td><td>0</td></tr><tr><td>文字列</td><td>#VALUE!</td><td>#VALUE!</td></tr><tr><td>ARRAYFORMULA対応</td><td>不要（スピル対応）</td><td>必要（ARRAYFORMULA）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">ファイルを共有しても判定結果がずれることはありません。ARRAYFORMULAの扱いだけ違うので、Excelから移行した場合は「列全体への適用は ARRAYFORMULA で囲む」というポイントを押さえておくと安心です。</p>



<p class="wp-block-paragraph">Excel版の詳しい解説は <a href="https://mashukabu.com/excel-function-howto-use-sign/">ExcelのSIGN関数の使い方</a> をご覧ください。</p>



<h2 class="wp-block-heading"><span id="toc30">まとめ：SIGN関数で符号判定をスッキリ書こう</span></h2>



<p class="wp-block-paragraph">SIGN関数は、数値の符号（正・負・ゼロ）を判定する1引数のシンプルな関数です。ポイントを整理します。</p>



<ul class="wp-block-list"><li>構文は <code>=SIGN(値)</code>。正なら<strong>1</strong>、負なら<strong>-1</strong>、ゼロなら<strong>0</strong>を返す</li><li>ラベル表示は<a href="https://mashukabu.com/spreadsheet-if-function/">IF関数</a>、3パターン分岐は <strong>SIGN+<a href="https://mashukabu.com/spreadsheet-choose-function/">CHOOSE</a></strong> がスッキリ</li><li>前月比の矢印表示は <code>=CHOOSE(SIGN(C2-B2)+2, "▼", "−", "▲")</code> が定番</li><li>符号別の集計は <strong>SIGN+<a href="https://mashukabu.com/spreadsheet-sumproduct-function/">SUMPRODUCT</a></strong> で柔軟に書ける</li><li><a href="https://mashukabu.com/spreadsheet-abs-function/">ABS関数</a>とは「方向と大きさ」のペア。<code>ABS(x) × SIGN(x) = x</code> で元の値を復元できる</li><li>「符号を保持したまま丸める／上限を設ける」処理は <strong>SIGN×ABS</strong> の組み合わせが定石</li><li>列全体への適用は<a href="https://mashukabu.com/spreadsheet-arrayformula-function/">ARRAYFORMULA</a>で1行化できる</li></ul>



<p class="wp-block-paragraph">まずは <code>=SIGN(A2)</code> でセルの符号を判定するところから試して、慣れてきたらCHOOSE関数やABS関数との組み合わせに挑戦してみてください。IF関数のネストを書く前に「SIGNで書けないか？」と発想を切り替えるだけで、数式の見通しがグッと良くなりますよ。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-sign-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
