diff --git a/locales/ja.yml b/locales/ja.yml
index 4ce8caaa18..1b4fc15071 100644
--- a/locales/ja.yml
+++ b/locales/ja.yml
@@ -257,6 +257,7 @@ common/views/widgets/posts-monitor.vue:
 
 common/views/widgets/hashtags.vue:
   title: "ハッシュタグ"
+  count: "{}人が投稿"
 
 common/views/widgets/server.vue:
   title: "サーバー情報"
diff --git a/src/client/app/common/views/widgets/hashtags.vue b/src/client/app/common/views/widgets/hashtags.vue
index 9d523f321f..f6fd091b79 100644
--- a/src/client/app/common/views/widgets/hashtags.vue
+++ b/src/client/app/common/views/widgets/hashtags.vue
@@ -9,6 +9,7 @@
 				<div v-for="stat in stats" :key="stat.tag">
 					<div class="tag">
 						<router-link :to="`/tags/${ stat.tag }`">#{{ stat.tag }}</router-link>
+						<p>{{ '%i18n:@count%'.replace('{}', stat.usersCount) }}</p>
 					</div>
 					<x-chart class="chart" :src="stat.chart"/>
 				</div>
@@ -83,10 +84,16 @@ root(isDark)
 
 				> .tag
 					flex 1
+					font-size 14px
+					color isDark ? #9baec8 : #65727b
 
 					> a
-						font-size 14px
-						color isDark ? #9baec8 : #65727b
+						color inherit
+
+					> p
+						margin 0
+						font-size 75%
+						opacity 0.7
 
 				> .chart
 					height 30px
diff --git a/src/server/api/endpoints/hashtags/trend.ts b/src/server/api/endpoints/hashtags/trend.ts
index 443d7d2034..07317d1db2 100644
--- a/src/server/api/endpoints/hashtags/trend.ts
+++ b/src/server/api/endpoints/hashtags/trend.ts
@@ -18,49 +18,48 @@ module.exports = (params, user) => new Promise(async (res, rej) => {
 		$unwind: '$tags'
 	}, {
 		$group: {
-			_id: '$tags',
-			count: {
-				$sum: 1
-			}
-		}
-	}, {
-		$group: {
-			_id: null,
-			tags: {
-				$push: {
-					tag: '$_id',
-					count: '$count'
-				}
-			}
-		}
-	}, {
-		$project: {
-			_id: false,
-			tags: true
+			_id: { tags: '$tags', userId: '$userId' }
 		}
 	}]) as Array<{
-		tags: Array<{
-			tag: string;
-			count: number;
-		}>
+		_id: {
+			tags: string;
+			userId: any;
+		}
 	}>;
 
 	if (data.length == 0) {
 		return res([]);
 	}
 
-	const hots = data[0].tags
+	const tags = [];
+
+	data.map(x => x._id).forEach(x => {
+		const i = tags.findIndex(tag => tag.name == x.tags);
+		if (i != -1) {
+			tags[i].count++;
+		} else {
+			tags.push({
+				name: x.tags,
+				count: 1
+			});
+		}
+	});
+
+	const hots = tags
 		.sort((a, b) => b.count - a.count)
-		.map(tag => tag.tag)
+		.map(tag => tag.name)
 		.slice(0, 5);
 
-	const countPromises: Array<Promise<number[]>> = [];
+	const countPromises: Array<Promise<any[]>> = [];
 
-	for (let i = 0; i < 10; i++) {
-		// 10分
-		const interval = 1000 * 60 * 10;
+	const range = 20;
 
-		countPromises.push(Promise.all(hots.map(tag => Note.count({
+	// 10分
+	const interval = 1000 * 60 * 10;
+
+	for (let i = 0; i < range; i++) {
+
+		countPromises.push(Promise.all(hots.map(tag => Note.distinct('userId', {
 			tags: tag,
 			createdAt: {
 				$lt: new Date(Date.now() - (interval * i)),
@@ -71,9 +70,17 @@ module.exports = (params, user) => new Promise(async (res, rej) => {
 
 	const countsLog = await Promise.all(countPromises);
 
+	const totalCounts: any = await Promise.all(hots.map(tag => Note.distinct('userId', {
+		tags: tag,
+		createdAt: {
+			$gt: new Date(Date.now() - (interval * range))
+		}
+	})));
+
 	const stats = hots.map((tag, i) => ({
 		tag,
-		chart: countsLog.map(counts => counts[i])
+		chart: countsLog.map(counts => counts[i].length),
+		usersCount: totalCounts[i].length
 	}));
 
 	res(stats);