﻿Googleスプレッドシート関数マスターブック


掲載リスト




リスト1-1
=SUM(B2:B4)


リスト1-2
=100+200+300+400+500


リスト1-3
="Hello"


リスト1-4
="Hello"&","&"World"


リスト1-5
=SUM(100,200,300)


リスト1-6
=AVERAGE(100,200,300)


リスト1-7
=A1+A2+A3


リスト1-8
='シート2'!A1


リスト1-9        B5の式
=SUM(B2:B4)


リスト1-10        C5の式
=SUM(C2:C4)


リスト1-11
=B2*C2
=B3*C3
=B4*C4


リスト1-12
=SUM(D2:D4)


リスト3-1
=A1 + B1


リスト4-1        B1セル
=TEXT(A1, "0000")


リスト4-2        B2セル
=TEXT(A1, "yyyy年mm月dd日")


リスト4-3
=TEXT(A1*1.1, "¥#,###円")


リスト4-4        C1セル
=CONCATENATE(A1, B1)


リスト4-5        C1セル
=CONCATENATE(A1:B1)


リスト4-6        B1セル
=LEFT(A1, 2)


リスト4-7        B1セル
=LEFT(A1, 4)


リスト4-8        B1セル
=RIGHT(A1, 4)


リスト4-9        B1セル
=MID(A1, 2, 3)


リスト4-10        B1セル
=MID(A1, 5, 4)


リスト4-11        D1
=JOIN(", ", A1:C1)


リスト4-12        D1
=JOIN("/", A1:C1)


リスト4-13        B1セル
=SPLIT(A1, ",")


リスト4-14        B1セル
=SPLIT(A1, "-")


リスト4-16        B1セル
=TRIM(A1)


リスト4-17        B1
=UPPER(A1)


リスト4-18        C1
=LOWER(A1)


リスト4-19        B1セル
=SUBSTITUTE(A1, "ねこ", "犬")


リスト4-20        C1～C2
=EXACT(A1, B1)
=EXACT(A2, B2)


リスト4-21        B1
=FIND("ち", A1)


リスト4-22        B2
=FIND("ねこ", A1, 2)


リスト4-23        B1
=MID(A1, FIND("「", A1), FIND("」", A1)-FIND("「", A1)+1)


リスト4-24        B1
=REPLACE(A1, 4, 2, "となさ")


リスト4-25        B1
=REPLACE(A1, 5, 4, "/05/")


リスト4-26        B1
=REGEXEXTRACT(A1, "\d{3}-\d{4}-\d{4}")


リスト4-27        B1
=REGEXEXTRACT(A1, "[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}")


リスト4-28        B1~B2
=REGEXMATCH(A1, "\d{3}-\d{4}-\d{4}")
=REGEXMATCH(A2, "\d{3}-\d{4}-\d{4}")


リスト4-29        B1
=REGEXREPLACE(A1, "\d{4}", "(西暦略)")


リスト4-30        B1
=REGEXREPLACE(A1, "(\d{4})/(\d{2})/(\d{2})", "$1年$2月$3日")


リスト5-1
=TODAY()


リスト5-2
=NOW()


リスト5-3
=((HOUR(A21)*60 + MINUTE(A21)) - (HOUR(A20)*60 + MINUTE(A20)))


リスト5-4
=DATE(YEAR(A40), MONTH(A40) + 1, DAY(A40))


リスト5-5
=DATEDIF(A55, A56, "D")


リスト5-6
=DATEDIF(A55, A56, "M")


リスト5-7
=DATEDIF(A55, A56, "Y")


リスト5-8
=IF(A75<A76, A76-A75, A75-A76)


リスト6-1
=SUM(A1:A5)
=SUM(5, 10, 15)。

リスト6-2
=AVERAGE(A1:A10)
=AVERAGE(10, 20, 30)

リスト6-3
=MAX(A1:A10)
=MAX(5, 12, 8)

リスト6-4
=MIN(A1:A5)。
=MIN(3, 7, 1)

リスト6-5
=COUNT(A1:A5)
=COUNT(5, "", 10)


リスト6-6
=COUNTA(A1:A5)
=COUNTA("a", "", "b")

リスト6-7
=MEDIAN(A1:A5)
=MEDIAN(1, 3, 5) 

リスト6-8
=MODE(A1:A10)
=MODE(2, 2, 3)

リスト6-9
=STDEV(A1:A10)
=STDEV(10, 15, 20)

リスト6-10
=VAR(A1:A10)
=VAR(10, 15, 20)

リスト6-11
=QUARTILE(A1:A10, 3)
=QUARTILE({10, 20, 30, 40}, 1)


リスト6-12
=PERCENTILE(A1:A10, 0.9)
=PERCENTILE({10, 20, 30, 40}, 0.2)

リスト6-13
=RANK(A1,$A$1:$A$10)


リスト6-14
=LARGE($A$1:$A$10, 1)
=LARGE($A$1:$A$10, 2)
=LARGE($A$1:$A$10, 3)


リスト6-15
=SMALL(A1:A10, 3)
=SMALL(B1:B20, 1)

リスト6-16
=CORREL(A1:A10, B1:B10)
=CORREL(C1:C10, D1:D10)

リスト6-17
=TRIMMEAN(A1:A10, 0.2)
=TRIMMEAN(B1:B20, 0.1)

リスト6-18
=SLOPE(A1:A10, B1:B10)
=SLOPE(C1:C5, D1:D5)

リスト6-19
=INTERCEPT(A1:A10, B1:B10)
=INTERCEPT(C1:C5, D1:D5)

リスト6-20
=FORECAST(11, $A$1:$A$10, $B$1:$B$10)
=FORECAST(12, $A$1:$A$10, $B$1:$B$10)
=FORECAST(13, $A$1:$A$10, $B$1:$B$10)


リスト6-21
=FREQUENCY(A1:A10, B1:B5)
=FREQUENCY(C1:C10,{25, 50, 75})

リスト6-22
=PMT(A2/12, A3*12, A1)


リスト6-23
=RATE(A3*12, A2*-1, A1)*12


リスト6-24
=NPER(A2/12, A3*-1, A1)/12


リスト6-25
=CUMIPMT(A2/12, A3*12, A1, 1, 12, 0)
=CUMIPMT(A2/12, A3*12, A1, A3*12-12, A3*12, 0)


リスト6-26
=CUMPRINC(A2/12, A3*12, A1, 1, 12, 0)
=CUMPRINC(A2/12, A3*12, A1, A3*12-12, A3*12, 0)


リスト6-27
=FV(A2/12, A3*12, A1*-1, 0)


リスト6-28
=A1*A3*12


リスト6-29
=PV(A2, A3, 0, A1*-1, 0)


リスト7-1        C1セル
=IF(B1>=60, "合格", "不合格")


リスト7-2        D1セル
=IF(B1>=C1, "ボーナス支給", "なし")


リスト7-3        C1セル
=IF(B1>=200000, "大成功", IF(B1>=100000, "成功", "要努力"))


リスト7-4        C1セル
=IFS(B1>=90, "A", B1>=80, "B", B1>=70, "C", B1>=60, "D", TRUE, "F")


リスト7-5        C1セル
=IFS(B1>=50, "十分", B1>=10, "補充検討", TRUE, "緊急補充")


リスト7-6        B1セル
=SWITCH(QUOTIENT(A1, 3), 0, "冬", 1, "春", 2, "夏", 3, "秋", 4, "冬", "不明")


リスト7-7        B1セル
=SWITCH(A1, "A001", "食品", "B001", "飲料", "C001", "雑貨", "その他")


リスト7-8        C1セル
=IF(AND(A1>=60, B1>=60), "合格", "不合格")


リスト7-9        C1セル
=IF(AND(A1>=1000000, B1>=0.2), "優良", "要改善")


リスト7-10        C1セル
=IF(OR(A1>=80, B1>=80), "特典あり", "なし")


リスト7-11        C1セル
=IF(OR(A1>0, B1>0), "発送可能", "在庫切れ")


リスト7-12        B1セル
=IF(NOT(ISERROR(A1)), "正常", "エラー")


リスト7-13        B1セル
=IF(ISNUMBER(A1), "数値", "非数値")


リスト7-14
=SUMIF(A2:A10, "東京", B2:B10)


リスト7-15
=AVERAGEIF(A2:A10, "東京", B2:B10)


リスト7-16
=COUNTIF(A2:A10, ">=75")


リスト7-17
=MAXIFS(B2:B10, A2:A10, "東京")


リスト8-1
=FILTER(A2:D5, C2:C5="東京")


リスト8-2
=FILTER(A2:D5, C2:C5="東京", D2:D5>=5000)


リスト8-3
=FILTER(A2:D5, C2:C5="北海道")


リスト8-4
=IFERROR(FILTER(A2:D5, C2:C5="北海道"),"データなし")


リスト8-5
=LOOKUP(A7, A2:A4, B2:B4)


リスト8-6
=LOOKUP(A6, A2:A4, B2:B4)


リスト8-7
=VLOOKUP(A6, A2:C4, 2, FALSE)


リスト8-8
=HLOOKUP(A4, A1:D2, 2, FALSE)


リスト8-9
=XLOOKUP(A6, A2:A4, B2:B4, "見つかりません")


リスト8-10        B6～B7セル
=MATCH(A6, A2:A4, 0)
=MATCH(A7, B2:B4, 0)


リスト8-11
=INDEX(A2:C4, A8)


リスト8-12
=INDEX(A2:C4, MATCH(A9, B2:B4, 0))


リスト8-13
=INDEX(B2:C4, MATCH(A11, A2:A4))


リスト8-14
=MAX(INDEX(B7:D9, MATCH(A11, A2:A4)))


リスト8-15
=INDEX(B6:D6, MATCH(C12, INDEX(B7:D9, MATCH(A11, A2:A4)), 0))


リスト8-16
=FILTER(A2:E8, E2:E8<=A11)


リスト8-17
=XLOOKUP(A21, A2:A8, B2:B8, "見つかりません")
=XLOOKUP(A21, A2:A6, D2:D6, "見つかりません")


リスト8-18
=FILTER(A2:D8, C2:C8=A31)


リスト8-19
=INDEX(B2:E8, MATCH(A41, A2:A8, 0), MATCH(B41, B1:E1, 0))


リスト9-1        C2
=HYPERLINK(B2, A2 &"のサイト")


リスト9-2        C3
=HYPERLINK(B3, A3 &"のサイト")


リスト9-3
=HYPERLINK("mailto:"&B2, A2&"にメール")
=HYPERLINK("mailto:"&B3, A3&"にメール")
=HYPERLINK("mailto:"&B4, A4&"にメール")


リスト9-4
=IF(ISURL(A2), HYPERLINK(A2, "URLを開く"), "URLではありません")


リスト9-5
=HYPERLINK("https://ja.m.wikipedia.org/wiki/"&B2, A2&"のWiki")


リスト9-6
=IMPORTDATA("https://people.sc.fsu.edu/~jburkardt/data/csv/addresses.csv")


リスト9-7
=IMPORTDATA("https://raw.githubusercontent.com/plotly/datasets/master/2014_apple_stock.csv")


リスト9-8
=IMPORTFEED("https://news.google.com/rss?hl=ja", "items", TRUE, 10)


リスト9-9
=IMPORTFEED("https://news.google.com/rss?hl=ja", "items title", TRUE, 10)


リスト9-10
=IMPORTHTML("https://tenki.jp/forecast/3/16/4410/13102/3hours.html","table", 1)


リスト9-11
=IMPORTXML("https://tenki.jp/forecast/3/16/4410/13102/","//table")


リスト9-12
=IMPORTXML("https://tenki.jp/forecast/3/16/4410/13102/","//tbody")


リスト9-13
=IMPORTXML("https://tenki.jp/forecast/3/16/4410/13102/","//tr")


リスト9-14
=IMPORTRANGE("…コピーしたURL…", "シート1!A1:B5")


リスト10-1
=DAVERAGE(A1:D21, "購入金額", F1:F2)


リスト10-2
=DAVERAGE(表_1[#ALL], "購入金額", F1:F2)


リスト10-3
=DAVERAGE(A1:D21, 4, F1:F2)


リスト10-4
=IFERROR(DAVERAGE(表_1[#ALL], 4, F1:F2), "ありません。")


リスト10-5
=DCOUNT(表_1[#ALL], "年齢", F1:F2)


リスト10-6
=DGET(表_1[#ALL], "購入金額", F1:F2)


リスト10-7
=DMAX(A1:D21, "購入金額", F1:F2)


リスト10-8
=DPRODUCT(表_1[#ALL], "購入金額", F1:F2)


リスト10-9
=DSTDEV(表_1[#ALL], "購入金額", F1:F2)


リスト10-10
=DVAR(表_1[#ALL], "購入金額", F1:F2)


リスト10-11
=DAVERAGE(A1:E6, "売上", G1:H2)


リスト10-12
=DAVERAGE(A1:E6, "売上", G1:H3)


リスト10-13
=DSUM(表_1[#ALL], "購入金額", F1:G3)


リスト10-14
=DSTDEV(表_1[#ALL], "年齢", F1:F2)


リスト10-15
=DAVERAGE(A1:D6, "所要時間", F1:F2)


リスト10-16
=DCOUNTA(A1:D21, "タスク名", F1:G2)


リスト11-1
=LAMBDA(x, x * 2)(A1)


リスト11-2
=LAMBDA(a, b, a + b)(A2, B2)


リスト11-3
=LAMBDA(x, IF(x > 0, "正", "負またはゼロ"))(A3)


リスト11-4
=LAMBDA(price, price * 1.1)(A4)


リスト11-5
=LAMBDA(sales, profit, (profit / sales) * 100)(売上, 利益)

リスト11-6
=LAMBDA(price, IF(price >= 10000, "高価格", "通常"))(価格)


リスト11-7
=LAMBDA(sales, IF(sales >= 500000, sales * 0.1, IF(sales >= 300000, sales * 0.05, 0)))(売上)


リスト11-8
=LAMBDA(range, AVERAGE(OFFSET(range, -2, 0, 3, 1)))(セル)


リスト11-9
=OFFSET(C5, -1, -1, 3, 3)


リスト11-10
=LAMBDA(range, category, SUM(FILTER(range, OFFSET(range, 0, 1) = category)))(範囲, カテゴリ)


リスト11-11
=LAMBDA(n, IF(n <= 1, 1, n * FACTORIAL2(n - 1)))(値)


リスト11-12
=LAMBDA(n, IF(n<2, FALSE, IF(n=2, TRUE, IF(n=3, TRUE, IF(SUM(ARRAYFORMULA(IF(MOD(n, ROW(INDIRECT("2:" & INT(SQRT(n)))))=0, 1, 0)))=0, TRUE, FALSE)))))(値)


リスト12-1
function DOUBLE(input) {
  return input * 2;
}


リスト12-2
function GREETING(name) {
  return "こんにちは、" + name + "さん！";
}


リスト12-3
function APPLY_DISCOUNT(amount) {
  // 入力が数値かチェック
  if (isNaN(amount) || amount < 0) {
    throw new Error("金額は0以上の数値を入力してください");
  }
  let discountRate = 0; // 割引率（初期値：0%）


  // 条件分岐で割引率を決定
  if (amount >= 30000) {
    discountRate = 0.2; // 30,000円以上で20%割引
  } else if (amount >= 10000) {
    discountRate = 0.1; // 10,000円以上で10%割引
  }


  // 割引後の金額を計算
  return Math.round(amount * (1 - discountRate));
}


リスト12-4
function SUM_SCORES(scores) {
  // 入力が配列かチェック
  if (!Array.isArray(scores)) {
    throw new Error("点数の範囲を指定してください");
  }


  let total = 0; // 点数を加算していくためのもの


  // 範囲の各値を繰り返し処理
  for (let row of scores) {
    for (let score of row) {
      
      // 数値かチェック
      if (isNaN(score) || score < 0) {
        throw new Error("点数は0以上の数値を入力してください");
      }
      total += score;
    }
  }
  return total;
}


リスト12-5
function SUM_SCORES(scores) {
  if (!Array.isArray(scores)) {
    throw new Error("点数の範囲を指定してください");
  }
  return scores.flat().reduce((total, score) => {
    if (isNaN(score) || score < 0) {
      throw new Error("点数は0以上の数値を入力してください");
    }
    return total + score;
  }, 0);
}


リスト12-6
function FORMAT_JAPANESE_DATE(input) {
  // 日付オブジェクトに変換
  let date;


  if (typeof input === "string") {
    date = new Date(input);
  } else if (input instanceof Date) {
    date = input;
  } else {
    throw new Error("有効な日付を入力してください");
  }


  // 日付が無効かチェック
  if (isNaN(date.getTime())) {
    throw new Error("有効な日付を入力してください");
  }


  return getJapaneseDate(date);
}


function getJapaneseDate(date) {
 // 年、月、日を取得
  const year = date.getFullYear();
  const month = date.getMonth() + 1; // getMonthは0-11を返すので+1
  const day = date.getDate();


  // 曜日を取得（補助関数を呼び出し）
  const weekday = getJapaneseWeekday(date);


  // フォーマットして返す
  return `${year}年${month}月${day}日 (${weekday})`;
}


function getJapaneseWeekday(date) {
  const weekdays = ["日", "月", "火", "水", "木", "金", "土"];
  return weekdays[date.getDay()];
}


リスト12-7
function CONVERT_USD_TO_JPY(dollars) {
  // 数値かどうかチェック
  if (isNaN(dollars)) {
    throw new Error("数値を入力してください。");
  }
  return dollars * getJpyRate();
}


function getJpyRate() {
  var apiKey = "……API……"; // ここにAPIキーを入力
  var url = "https://v6.exchangerate-api.com/v6/" + apiKey + "/latest/USD";
  
  try {
    // 指定URLにアクセス
    var response = UrlFetchApp.fetch(url);
    // JSONデータを取得
    var data = JSON.parse(response.getContentText());


    // アクセスに成功したかチェック
    if (data.result === "success") {
      // 日本円のレートを返す
      return data.conversion_rates.JPY;
    } else {
      throw new Error("レート取得に失敗しました。");
    }
  } catch (e) {
    throw new Error("アクセスに失敗しました。");
  }
}


リスト12-8
function MYFUNCTION(input) {
  Logger.log("入力値: " + input);
  return input * 2;
}

リスト13-1
={1,2,3;4,5,6}


リスト13-2
={"りんご","バナナ";"オレンジ","ぶどう"}


リスト13-3
={A10:A12,A13:A15,A16:A18}


リスト13-4
={{A21:A23, A24:A26};{"合計",SUM(A24:A26)}}


リスト13-5
={A21:A23, A24:A26;"合計",SUM(A24:A26)}


リスト13-6        男子合計
=AVERAGE({B30:C30,B32:C32})


リスト13-7        女子合計
=AVERAGE({B31:C31, B33:C33})


リスト13-8
=ARRAYFORMULA({B2:B5 * C2:C5, B2:B5 * C2:C5 * 1.1})


リスト13-9
=ARRAYFORMULA(IF(A1:A3>=70, "合格", "不合格"))


リスト13-10
=FLATTEN(A10:C12)


リスト13-11
=UNIQUE(A21:A25)


リスト13-12
=TOROW(A31:C33)
=TOCOL(A31:C33)


リスト13-13
=TOROW(A31:C33)
=TOROW(A31:C33,0,1)
=TOCOL(A31:C33)
=TOCOL(A31:C33,0,1)


リスト13-14
=TRANSPOSE(A50:E53)


リスト13-15
=CHOOSECOLS(B55:E59,1,3)
リスト13-16
=MAKEARRAY(3, 4, LAMBDA(row, col, row*col))
リスト13-17
=MAKEARRAY(4, 4, LAMBDA(row, col, INDEX({"A", "B", "C", "D"}, MOD(row+col-2, 4)+1)))


リスト13-18        B79セ
=BYCOL(B76:D78, LAMBDA(col, SUM(col)))        
リスト13-19        E71用
=BYROW(B76:D78, LAMBDA(col, SUM(col)))


リスト13-20
=MAP(A81:A85, LAMBDA(x, x*x))


リスト13-21
=REDUCE(0, A81:A85, LAMBDA(acc, val, acc+val))


リスト13-22
=SCAN(0, A81:A85, LAMBDA(acc, val, acc+val))


リスト14-1        すべて表示
=QUERY(A1:C10, "SELECT *")


リスト14-2        商品と売上のみ表示
=QUERY(A1:C10, "SELECT A,B")


リスト14-3        みかんの売上だけ表示
=QUERY(A1:C10, "SELECT * WHERE A = 'みかん'")


リスト14-4        5000円以上の売上のみ表示
=QUERY(A1:C10, "SELECT * WHERE B >= 5000")


リスト14-5        東京都大阪の売上を表示
________________
=QUERY(A1:C10, "SELECT * WHERE C = '東京' or C = '大阪'")


リスト14-6        東京のリンゴの売上を表示
=QUERY(A1:C10, "SELECT * WHERE C = '東京' and A = 'りんご'")


リスト14-7        売上の大きい順に表示
=QUERY(A1:C10, "SELECT A,B ORDER BY B DESC")


リスト14-8        売上の少ないもの３つを表示
=QUERY(A1:C10, "SELECT A,B ORDER BY B ASC LIMIT 3")


リスト114-9        売上の３～５番目を表示
=QUERY(A1:C10, "SELECT A,B ORDER BY B ASC LIMIT 3 OFFSET 2")


リスト14-10        バナナの売上を集計する
=QUERY(A1:C10, "SELECT SUM(B) WHERE A = 'バナナ'")


リスト14-11        商品ごとに売上を合計する
=QUERY(A1:C10, "SELECT A,SUM(B) GROUP BY A")


リスト14-12        地域ごとに売上の平均を得る
=QUERY(A1:C10, "SELECT C,AVG(B) GROUP BY C")


リスト14-13
=GOOGLEFINANCE("TOPIX", "price")
=GOOGLEFINANCE("NI225", "price")


リスト14-14
=GOOGLEFINANCE("AAPL", "price", "2025-01-01", "2025-01-31", "DAILY")


リスト14-15
=GOOGLEFINANCE("CURRENCY:USDJPY")
=GOOGLEFINANCE("CURRENCY:EURJPY")


リスト14-16
=IMPORTFEED("https://news.google.com/rss?hl=en", "items summary", TRUE, 1)


リスト14-17
=GOOGLETRANSLATE(A21, "en", "ja")