Excelで星座を数える・自動計算する方法【コピペで即解決】

Excel 星座を数える、自動計算する方法

生年月日から星座を自動判定して人数を数えたい——IF関数を12個もネストして挫折した方へ。コピペできる関数1つで完結します。所要5分。

  • 目的:生年月日リスト → 星座を自動表示 → 星座別の人数を集計
  • 結果イメージ:A列に生年月日、B列に星座が自動で並び、12星座の人数表が出る

 

① 結論(最短手順)

まず「動くもの」を。次の式を B2 に貼り、変換表をE・F列に置くだけです。

数式(B2に貼り付け)

=IF(A2="","",VLOOKUP(MONTH(A2)*100+DAY(A2),$E$2:$F$14,2,TRUE))

⚠️ 最初の警告(つまずく4点)

  1. A列は日付型であること(左揃え=文字列でNG/対処は④)
  2. 変換表は昇順で並べる(VLOOKUPの近似一致 TRUE は昇順が前提)
  3. 表の範囲は $で固定(コピー時のズレ防止)
  4. 空白セルの誤カウントに注意 → IF(A2="","",…) が必須の保険

空白セルは内部的に 1900/1/0 と解釈され、式が 100=「山羊座」を返してしまいます。IFラッパーでこれを防ぎます。

変換表(E2:F14)

E列に境界値、F列に星座名を入力します。

E列(境界値)F列(星座)
0山羊座
120水瓶座
219魚座
321牡羊座
420牡牛座
521双子座
622蟹座
723獅子座
823乙女座
923天秤座
1024蠍座
1123射手座
1222山羊座

Excelに直接コピペ用E2 を選んで貼り付け=下記のタブ区切りが2列に展開されます):

0	山羊座
120	水瓶座
219	魚座
321	牡羊座
420	牡牛座
521	双子座
622	蟹座
723	獅子座
823	乙女座
923	天秤座
1024	蠍座
1123	射手座
1222	山羊座

数える(人数集計)

=COUNTIF(B:B,"牡羊座")

これで完結です。理由・詳しい手順・代替式は以下に。

 

② 原因(なぜ難しいのか)

  1. 星座は「月日」だけで決まり「年」は無関係。日付シリアル値のまま比較できない。
  2. 山羊座が年をまたぐ(12/22〜翌1/19)ため、単純な大小比較が崩れる。
  3. IF12個ネストは複雑すぎてミス・メンテが困難。

→ そこで月日をMMDD数値(例:3/25→325)に変換し、境界値の表で一発判定します。年も年またぎも気にせず判定できます。

 

③ 解決方法(手順)

  1. A列に生年月日を入力(A1見出し、A2からデータ)。形式は 1990/3/25 のように日付として認識される形に。
  2. 変換表を①のとおりE2:F14に入力(タブ区切りブロックを貼ると速い)。境界値は昇順、先頭は 0→山羊座
  3. B2に結論の数式を貼り付け。
  4. B2の右下■をダブルクリック → 最終行まで自動コピー。全員の星座が一瞬で埋まる。
  5. 集計は下の2方式から選ぶ。

方式A:一瞬で集計したい人 → ピボットテーブル【おすすめ】

  1. B列(星座)を含むデータ範囲を選択
  2. 「挿入」→「ピボットテーブル」→ OK
  3. 「星座」をへドラッグ、もう一度「星座」をへドラッグ(自動で「個数」になる)

→ 星座別人数が即完成。データ追加時は右クリック→「更新」だけ。12個の関数を手入力する必要がありません。

方式B:表に残したい人 → COUNTIF

H列に星座名を12個並べ、I列に次を入れてI13までコピー:

=COUNTIF($B:$B,H2)

④ 数式の意味とエラー対処

数式の挙動

  • MONTH(A2)*100+DAY(A2) … 月×100+日でMMDD数値化(3/25→325)。
  • VLOOKUP(…,$E$2:$F$14,2,TRUE)TRUE(近似一致)は「探す値を超えない最大の境界」を拾う。325は321(牡羊座)と420の間なので牡羊座
  • IF(A2="","",…) … 空白なら空白を返し、誤カウントを防ぐ。

トラブル対処チェックリスト

症状原因対処
#N/A が出るA列が文字列/TRUE抜け=DATEVALUE(A2) で日付化。式末尾が ,2,TRUE) か確認
全員同じ星座MMDD式の誤り/表が昇順でない別セルで =MONTH(A2)*100+DAY(A2) を検算。表を昇順に
空白が山羊座になるIFラッパー未使用結論の IF(A2="","",…) 付き式に差し替え
COUNTIFが0星座名の表記ゆれ・空白判定結果をコピーして集計表に貼る/=TRIM(B2) で空白除去
エラーを隠したい=IFERROR(元の式,"") で丸ごと保護

日付文字列対策(補助列)

A列が文字列のときは、補助列で日付に変換してから判定すると安全です。

=IFERROR(DATEVALUE(A2),"")

または列を選び「データ」→「区切り位置」→完了で一括変換も可能。


⑤ 代替式の比較

方法長所短所
VLOOKUP(近似)シンプル・互換性高い表が昇順必須
XLOOKUP可読性高い・列指定が直感的旧Excel非対応(365 / 2021〜)
INDEX+MATCH柔軟・堅牢(列の左右自由)書き方がやや複雑

使い分け一行ルール:最新Excelなら XLOOKUP、古い環境も配るなら VLOOKUP、表のレイアウトが自由なら INDEX+MATCH

XLOOKUP(Microsoft 365向け)

=IFERROR(XLOOKUP(MONTH(A2)*100+DAY(A2),$E$2:$E$14,$F$2:$F$14,,-1),"")

-1 =「完全一致または次に小さい値」。VLOOKUPの TRUE と同じ動作。

INDEX+MATCH(互換性◎)

=IF(A2="","",INDEX($F$2:$F$14,MATCH(MONTH(A2)*100+DAY(A2),$E$2:$E$14,1)))

MATCHの 1 =昇順データから「探す値以下の最大」を返す。

MMDDを直感的に作る別法

「なぜ×100?」が分かりにくい人向け。日付を「0325」の4桁文字にしてから数値325へ戻す考え方です。

=VALUE(TEXT(A2,"mmdd"))

VLOOKUPの第1引数を丸ごとこれに差し替えてもOK(※この式も空白時は100を返すのでIFラッパーは必要)。


⑥ 関連トラブル・補足

  • 境界日が流派で1日ずれる場合:変換表の境界値(例 321322)を書き換えるだけで全件に反映。
  • うるう年:月日判定なので 2/29 生まれも問題なし(魚座)。
  • すぐ試したい:下のサンプルCSVをコピー → メモ帳に貼り .csv 保存 → Excelで開き、B2に結論の式を貼って動作確認。

最小サンプルCSV(空白セルの検証用に1行空欄を含む)

氏名,生年月日
佐藤一郎,1990/3/25
鈴木花子,1985/12/22
高橋健,2001/1/5
加藤さくら,

最終行は生年月日が空欄。IF(A2="","",…) 付きの式なら、この行は「山羊座」にならず空白のまま返ります。

excel-seiza-sample-utf8bom

 

実装チェックリスト(最終確認)

  • A列が日付型(右揃え)になっている
  • 変換表E2:F14が昇順、先頭は 0→山羊座
  • 数式の範囲が $固定
  • 数式に IF(A2="","",…) が入っている(空白対策)
  • COUNTIFの星座名が判定結果と完全一致TRIMで空白除去)

これで、生年月日からの星座自動計算と人数集計が、データが増えても貼り付け+「更新」だけで回り続けます。

※星座の境界日は採用する流派により1日前後する場合があります。掲載基準に合わせて変換表の境界値を調整してください。

著者
古見遊 正

流通業で働きながら、2004年からWindowsを使い続けている80年代生まれのサラリーマン。ExcelとPowerPointを極め、仕事の効率化を追求中。苦手だったWordも克服中!Excelを使いこなせるだけで周囲から『神扱い』されるけれど、そのせいで『システムに詳しい人』だと勘違いされがち。でも、それが新しい知識を得るきっかけになった。そんな経験を活かして、Excel・PowerPoint・Word・Windowsの時短ワザ&仕事術を発信中!

古見遊 正をフォローする
Excel関数

コメント

タイトルとURLをコピーしました